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 the Byzantine Generals’ Problem?
- How does BFT apply to blockchain?
- What is practical Byzantine fault tolerance?
- How practical Byzantine fault tolerance works
- Types of Byzantine failures
- Advantages of practical Byzantine fault tolerance
- Limitations of practical Byzantine fault tolerance
- Importance of Byzantine fault tolerance
- Variations of Byzantine fault tolerance
- Consensus mechanisms are the key
- Frequently asked questions
What is Byzantine fault tolerance (BFT)?
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?
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?
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?
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
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
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:
- 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?
A Byzantine fault tolerance system is one in which distributed nodes can detect and reject incorrect information. It is also a system that can continue to work normally even if certain nodes have stopped working or are providing false information. Blockchain networks achieve Byzantine fault tolerance through consensus algorithms like proof-of-work and proof-of-stake.
Why is it called Byzantine fault tolerance?
Byzantine Fault Tolerance is the ability of a decentralized system to continue working reliably even if a few nodes act maliciously or fail. The term comes from a game theory analogy called the Byzantine Generals’ Problem. In this analogy, several Byzantine army divisions are positioned at different locations around a city with the goal of attacking. The generals of each division rely on a messenger to communicate with each other. However, city defenders could intercept the message and alter or destroy it. The messenger could also lose the message while in transit. Moreover, disloyal generals could change the message upon successfully receiving it. Therefore, these obstacles may impede the generals from collectively executing an attack or retreating at the same time.
What is the Byzantine process?
The Byzantine process seeks to make a system tolerant to failure by solving the Byzantine Generals’ Problem. Blockchains do this by implementing different consensus algorithms that discourage nodes from acting maliciously in different ways.
Is Ethereum Byzantine fault tolerance?
Yes. Ethereum uses the proof-of-stake consensus mechanism to become Byzantine fault tolerant. PoS requires stakers to lock 32 ETH or less — depending on the method of staking — thereby deterring them from acting maliciously against the network. Dishonest nodes or nodes that face downtime or act maliciously on purpose could lose a portion or all of their staked ETH.
Is Bitcoin Byzantine fault tolerant?
Yes. Bitcoin utilizes the proof-of-work consensus algorithm to become Byzantine fault tolerant. Network nodes cannot declare a block as valid unless it contains a proof-of-work hash, indicating that work was done to produce it. Miners do this work through the bitcoin mining process, where they invest a lot of money in hardware and electricity to produce new blocks. This high investment encourages miners to act honestly because their money is on the line.
What is Byzantine in blockchain?
Similar to the Byzantine army generals in the Byzantine Generals’ Problem analogy, developers attempt to create consensus mechanisms that require blockchain nodes to follow rules which make the network as tolerant as possible to prevent failure. That means a suitable consensus mechanism can allow the network to continue running even if there are a few nodes that aren’t working correctly or are deliberately disseminating false information.
All the information contained on our website is published in good faith and for general information purposes only. Any action the reader takes upon the information found on our website is strictly at their own risk.
At Learn, our priority is to provide high quality information. We take our time to identify, research and create educative content that is useful to our readers.
To maintain this standard and to continue creating awesome content, our partners might reward us with a commission for placements in our articles. However, these commissions don't affect our processes for creating unbiased, honest and helpful content.