“BFT consensus mechanism” is a term that gets used quite often. Byzantine Fault Tolerance in Blockchain, or BFT, is a problem in computer systems that have been around since long before Bitcoin.
But many blockchain-based protocols are working to solve the problems caused by Byzantine fault tolerance. This article takes a closer look at the situation and everything that comes from it.
The Byzantine Generals Problem Explained
The Byzantine General’s Problem is one of the theoretical situations that gets talked about the most when the subject of consensus comes up.
In 1982, Leslie Lamport, Robert Shostak, and Marshall Pease wrote a paper called The Byzantine Generals Problem, which was the first time the problem was talked about. Reads the paper:
A reliable computer system must be able to cope with the failure of one or more of its components. A failed component may exhibit a type of behavior that is often overlooked – namely, sending conflicting information to different parts of the system. The problem of coping with this type of failure is expressed abstractly as the Byzantine General’s Problem.
The name derives from a paper comparison. The authors imagine multiple Byzantine divisions entrenched outside an enemy city. Each division has its own general and camp. The commanders must agree on what to do (attack or flee) via signals. Some generals could be traitors and prevent loyal generals from agreeing (consensus).
So, the generals must figure out a way to make sure:
- All of the loyal generals come up with the same plan.
- The good generals won’t follow a bad plan just because a few of them are traitors.
Byzantine fault tolerance describes a system that can handle all of the above (BFT). The BFT consensus algorithm comes from this. Byzantine Fault Tolerance is, at its core, a condition that keeps the system from being hurt by people who aren’t loyal to it.
Solving the Problem of the Byzantine General
For Byzantine Fault Tolerance (BFT), the generals must agree on a plan.
This is done based on the system’s needs. Both proof-of-work and proof-of-stake can achieve Byzantine fault tolerance in blockchain, although their approaches differ.
Also Read: 10 Signs you are investing in a bad ICO
Most proof-of-stake blockchains can accept one-third of their nodes as being faulty, allowing the 3f+1 rule, where F is the number of unloyal nodes and the formula gives the number of loyal nodes the system needs.
In a system with 4 nodes, 3f+1 can be incorrect.
Miguel Castro and Barbara Liskov from MIT’s Computer Science Laboratory published a paper in February 1999 describing a solution dubbed Practical Byzantine Fault Tolerance.
How Does Blockchain Solve the Byzantine Generals Problem?
The Byzantine General’s Problem can be solved in many ways with blockchain technology. Both Proof-of-Work and Proof-of-Stake can solve problems, but their approaches to BFT and the consensus algorithm are different.
How does Bitcoin fix the problem of the Byzantine Generals?
Surprisingly, Satoshi Nakamoto didn’t talk about the Byzantine General’s Problem in the original whitepaper. However, when the Bitcoin Network was created, the pseudonymous creator solved it with the Proof-of-Work (PoW) consensus algorithm.
Satoshi came up with a way for a digital network to use both cryptographic security and public-key encryption. Hashing is used for cryptographic security to prevent any changes to the data, and a user’s public key is used to verify their identity.
Blocks protect transactions. Hash values link each block to others. The blockchain uses a Merkle Tree to check genesis block hashes. After genesis, all blocks are legitimate. Miners tackle cryptographic tasks to make blocks as part of the consensus procedure.
Bitcoin’s blockchain provides explicit, objective rules to follow to solve the Byzantine General’s Problem. A network participant must produce proof of work to add to the blockchain (hence, proof of work). This costs the member money and makes them less likely to disseminate inaccurate information, as other state members will correct them.
Rules are explicit and fact-based, so they can’t be modified.
How does Proof-of-Stake solve the problem with the Byzantine Generals?
Proof-of-stake networks are staked, not mined. Before becoming a network validator, a user must stake funds. Larger shares can validate more blocks and earn more. Those that modify the data risk losing their bet.
System responses vary. Ethereum 2.0 uses Casper. At least two-thirds of nodes must agree to create a block before it may be added to the network.
Depending on the system’s needs and the team’s methodology, there are many ways. dPoS speeds up consensus, for example. Some systems use Byzantine fault tolerance.