Bitcoin btc
$ usd

Byzantine Fault Tolerance (BFT) Explained

9 mins
Updated by Ryan Glenn
Join our Trading Community on Telegram

The reliability of blockchain technology is one of the main reasons for its popularity. Experts see it as a way to improve the efficiency and transparency of traditional systems, which may be unreliable, costly, and prone to fraud. So, how are blockchains able to provide this reliability? This article will explain the concept behind Byzantine Fault Tolerance and what it means in the blockchain context.  

Want to get reviews on the best blockchains? Join BeInCrypto Trading Community on Telegram: read reviews, discuss crypto projects, ask for technical analysis on coins and get answers to all your questions from PRO traders & experts! Join now

What is Byzantine fault tolerance (BFT)?

What is Byzantine fault tolerance

Byzantine fault tolerance (BFT) is a decentralized permissionless system’s ability to identify and reject false information. A decentralized, permissionless system is said to be Byzantine fault tolerant if it has solved the Byzantine Generals’ Problem — a problem that Bitcoin finally solved in a distributed manner.

As it stands, anyone can join a decentralized, permissionless system and start broadcasting information. If this system is not Byzantine fault tolerant, a network member can feed false information to the system and compromise the network’s reliability. This is why Byzantine fault tolerance is so important. 

What is the Byzantine Generals’ Problem?

What is the Byzantine Generals’ Problem?

The Byzantine Generals’ Problem is a game theory analogy. Experts use it to describe decentralized parties’ challenges when trying to reach a consensus without relying on a trusted central party. This game theory issue was worked out in 1982 by computer scientists Leslie Lamport, Marshall Pease, and Robert Shostak. 

The Byzantine Generals’ Problem describes a situation where several divisions of a Byzantine army are camped at different positions outside a city they besiege. Each division is led by a general, who must collectively decide when to attack or retreat. Their decision is crucial because if they attack at different times, they will lose. Only if they attack at the same time will they win.

However, the generals have no secure line of communication without a trusted central party. This means the messages they send to each other could be intercepted, destroyed, and manipulated by traitors that emerge from among the city’s defenders. The message could also get lost during transmission. On the other hand, if a message arrives successfully, the question is: Can it be trusted? How does a general know that the message’s carrier has not been kidnapped and swapped with a traitor out to deceive the message-receiving general?

To solve this dilemma, the generals would need a way that would guarantee that: 

  • All loyal generals will agree and implement the same plan.
  • The loyal generals will follow specified rules. 
  • Honest generals must reach a consensus despite the actions the traitors decide to take. 
  • Loyal generals will not follow a wrong plan under the influence of disloyal generals. 

How does BFT apply to blockchain?

 Byzantine Byzantine fault tolerance: Generals’ Problem

A blockchain is a decentralized system without a trusted central authority that can solve this problem. Its network of nodes is similar to the generals in the game theory problem described above. They lack a trusted central party to help them communicate with each other securely, yet they must reach a consensus for the network to run smoothly. The same dilemma applies here since the nodes must agree on the same course of action and execute it simultaneously.

Satoshi Nakamoto offered a solution to the Byzantine Generals’ Problem when he published the Bitcoin whitepaper in October 2008. This solution came in the form of the proof-of-work (PoW) consensus mechanism. Here, network members declare a block valid if it has an authentic proof-of-work attached to it, represented by a hash. This declaration means that all nodes within the blockchain’s network have reached a consensus, and a mining node can add the block to the chain. A block is a place on the Bitcoin blockchain that stores transaction data.

The PoW hash proves that work was used to produce a block. This work is in the form of the capital that Bitcoin miners invest in electricity and equipment to run mining operations and produce a block. Therefore, this investment discourages them from acting maliciously against the network. The cost-intensive mining process makes the Bitcoin blockchain very secure and reliable.

Other blockchains solve the Byzantine Generals’ Problem with different consensus algorithms. For instance, the Ethereum blockchain uses proof-of-stake (PoS), where network members put up a stake of 32 ETH or less (depending on the staking method), thereby discouraging them from acting against the network. Stakers may lose all of their stake if they act dishonestly.

What is practical Byzantine fault tolerance?

How does BFT apply to blockchain?

Practical Byzantine Fault Tolerance (pBFT) is a consensus algorithm that seeks to tolerate Byzantine faults (node failures). Barbara Liskov and Miguel Castro introduced it in a 1999 academic paper titled “Practical Byzantine Fault Tolerance.”

pBFT improved on previous Byzantine fault-tolerant algorithms. This model assumes that independent node failures exist. It also presumes that independent nodes may broadcast false messages. 

How practical Byzantine fault tolerance works

How practical Byzantine fault tolerance works

In pBFT, nodes must prove that a message came from a specific peer node. The algorithm rules also require nodes to verify that a message was unaltered during transmission. In other words, pBFT works on the assumption that the number of malicious nodes cannot be equal to or more than one-third of the total number of nodes in the network. A system with many nodes becomes mathematically unlikely to approach a scenario where one-third of the total nodes are malicious. 

A pBFT-based system has one primary node, also called a leader node. The rest of the nodes are secondary or backup nodes. Any node in the system can become a primary node. For example, if the primary node fails, a secondary node can become a primary node. The primary node is changed with every pBFT consensus round. A majority of the honest nodes can also vote to remove a faulty existing primary node and replace it with the next node in line.

pBFT consensus takes place as follows:

  • A client sends a request to the leader node.
  • The leader node broadcasts the message to backup nodes.
  • All the nodes (primary and secondary) execute the client request. Next, they send the client a reply.
  • The request is successful if the client receives “m+1” replies, where m represents the maximum number of permitted faulty nodes. 

Hyperledger Fabric, Zilliqa, and Tendermint are blockchain platforms that use the pBFT consensus algorithm. Hyperledger Fabric uses a permissioned variant of pBFT, while Zilliqa uses both PoW and pBFT. Tendermint utilizes delegated PoS and pBFT.

Types of Byzantine failures

There are two types of Byzantine failures: fail-stop and arbitrary node. Fail-stop failures occur when a node fails and stops working. On the contrary, arbitrary node failures can occur when:

  • A node replies with a false result.
  • Nodes fail to return an outcome. 
  • A node intentionally replies with an incorrect outcome.
  • Nodes respond with differing results to different parts of the network.

Advantages of practical Byzantine fault tolerance

pBFT offers a few merits compared to other consensus algorithms, particularly PoW. These advantages include the following:

  • Transaction finality: The pBFT model provides transaction finality without requiring confirmations. If the nodes agree on the validity of a proposed block, then the transactions in that block are final. This differs from PoW, where each node individually verifies a transaction before a mining node adds it to the chain. Bitcoin confirmations, for example, take around 10 to 60 minutes, depending on the number of nodes confirming the block.
  • Low energy use: Unlike PoW, pBFT isn’t energy intensive since it doesn’t require nodes to solve complex mathematical problems. Bitcoin miners require electricity to expend proof-of-work, which can result in high electricity consumption.
  • Even payouts: In pBFT, all nodes implement the client request, which means they all receive a reward.

Limitations of practical Byzantine fault tolerance

How practical Byzantine fault tolerance works

pBFT-based blockchains don’t scale well due to the constant communication between nodes. This means networks with many nodes will take a long time to respond to a client request. 

Furthermore, blockchains based on the practical Byzantine Fault Tolerance are vulnerable to Sybil attacks. This is a type of attack where a single entity takes control of numerous nodes to disrupt the network’s consensus. However, Sybil attacks are less likely to happen as the number of nodes expands. Still, the scaling issues of the pBFT model may require developers to combine it with a different consensus mechanism, as is the case with the Zilliqa project, for example.

Importance of Byzantine fault tolerance

Byzantine fault tolerance is important because blockchain networks can operate normally even if some nodes broadcast false information or have stopped working. Crypto users should understand the Byzantine fault tolerance of the blockchains whose coins they have invested in because it tells them how secure their crypto transactions will be.

Variations of Byzantine fault tolerance

The Byzantine fault tolerance of a blockchain will depend on the consensus algorithm the developers decide to use. That means that not all blockchains have the same Byzantine fault tolerance.

Some of the most common consensus algorithms include:

  • Proof-of-work
  • Proof-of-stake
  • Delegated proof-of-stake (DPoS)
  • practical Byzantine Fault Tolerance (pBFT)
  • Leased proof-of-stake (LPoS)
  • Proof-of-importance (PoI)
  • Proof-of-authority (PoA)
  • Direct Acyclic Graph (DAG)
  • Delegated Byzantine Fault Tolerance (dBFT)
  • Proof-of-capacity (PoC)
  • Proof-of-identity (PoI)
  • Proof-of-activity (PoA)
  • Proof-of-elapsed-time (PoET)

Consensus mechanisms are the key

Blockchain networks need good consensus mechanisms to be efficient and successful. There are many consensus algorithms in the market, each operating slightly differently. While no blockchain network is perfect, PoW and PoS BFT systems have emerged as great approaches to solving the Byzantine Generals’ Problem.

Frequently asked questions

What is a Byzantine fault tolerant system?

Why is it called Byzantine fault tolerance?

What is the Byzantine process?

Is Ethereum Byzantine fault tolerance?

Is Bitcoin Byzantine fault tolerant?

What is Byzantine in blockchain?

Disclaimer

In line with the Trust Project guidelines, the educational content on this website is offered in good faith and for general information purposes only. BeInCrypto prioritizes providing high-quality information, taking the time to research and create informative content for readers. While partners may reward the company with commissions for placements in articles, these commissions do not influence the unbiased, honest, and helpful content creation process. Any action taken by the reader based on this information is strictly at their own risk.

Alex-Lielacher-BIC.png
Alex Lielacher
Alex Lielacher is the founder & CEO of Rise Up Media, a content marketing agency that works with bitcoin businesses that are changing the world. He first came across bitcoin...
READ FULL BIO
Sponsored
Sponsored