Blockchain allows computers and people to agree on things without needing to trust each other. This network of people and computers simply need to trust that the rules they are all following are reliable. Byzantine Fault Tolerance (BFT) is one of the fundamental properties of creating reliable blockchain rules or protocols.
But before we can understand what byzantine fault tolerance is, we need to take a step back and work out what peers, nodes, and consensus means and what military tactics have to do with it all.
What are peers and nodes?
Most blockchain or cryptocurrencies operate as networks where all computers in the network have equal access and rights, and directly communicate with each other. Each single computer in this network is known as a peer or a node. In a truly decentralized system, no peer or node has more authority or power than the next. This means that there are no managers, coordinators, or directors to enforce the rules, determine what is true, or punish misbehavior. Instead, the system relies on the fact that all nodes must follow the same rules or protocol in order to come to an agreement.
What is consensus?
Consensus simply means a general agreement. In a decentralized system where there are no authorities, achieving consensus is one of the most important and most difficult things to do. For the system or network to function correctly, the majority of nodes must agree on what is true, reaching consensus at regular intervals. The problem is that some nodes will inevitably fail, misbehave, or just disagree with the consensus of the other nodes so the system must be designed in such a way that deals with this inevitability.
What is a Byzantine Fault Tolerance?
A system has Byzantine Fault Tolerance (BFT) when it can keep functioning correctly as long as two-thirds of the network agree or reaches consensus. BFT is a property or characteristic of a system that can resist up to one-third of the nodes failing or acting maliciously.
All decentralized blockchains run on consensus protocols or rules that all the nodes in the blockchain must follow in order to participate. Consensus protocols such as Proof-of-Work and Proof-of-Stake are Byzantine Fault Tolerant and are thus able to resist up to one-third of the nodes disagreeing.
Who Invented Byzantine Fault Tolerance?
The Byzantine General’s Problem was invented in 1982 by Leslie Lamport, Robert Shostak, and Marshall Pease and is the inspiration for the concept of Byzantine Fault Tolerance.
Byzantine General’s Problem
The concept of BFT comes from the Byzantine General’s Problem, which is a logical thought experiment where there are several generals that need to attack a city.
- The generals are all in different locations and can only communicate by messenger, one message at a time.
- They must all coordinate the same action in order to successfully attack or retreat.
- If they all attack, they will be fine. If they all retreat, they will be fine.
- The problem occurs when some generals attack while others retreat, in which case it will be a bad result for everyone.
- The twist is that some generals are disloyal and will try to confuse the other generals.
The problem to solve is: how will all the generals agree on the same action even in the face of treachery and deceit?
What’s so special about it?
A consensus protocol that is Byzantine Fault Tolerant can still coordinate and come to consensus despite some amount of disagreement among the nodes. This is vital for decentralized blockchains such as Ethereum or Bitcoin. One of the essential innovations of Satoshi Nakamoto when he/she/they created Bitcoin was in solving the Byzantine General’s Problem by applying proof-of-work to the Bitcoin network. By having the property of BFT, the Bitcoin network is protected from up to one-third of the nodes being malicious.
Systems that require BFT are also used in industries beyond blockchain such as aviation, space, and nuclear power. These industries all highly prioritize safety and security as well as work with a large number of interconnected sensors or computers, which act as nodes. These nodes need to communicate with each other reliably and BFT comes into play when a portion of these nodes become faulty yet the system is still able to continue functioning as intended.Did you know?
What can you do with BFT?
The most common consensus protocols used in blockchain networks such as proof-of-work, proof-of-stake, and proof-of-authority all have some property of BFT. By applying BFT, systems can be designed that are not controlled by a single authority and do not rely on trusting certain parties. It is fundamental to building a decentralized network.
The Future
The principle of BFT will continue to play a major role in blockchain networks. As more people and organizations explore distributed and decentralized systems, more innovated ways to design BFT systems will be discovered and implemented.