Byzantine Consensus: The Billion Dollar Problem Solved
By Hermione Daguin
In the world of cryptocurrency and blockchains, there are multitudes of networks, users, and applications working together. Whenever a new transaction is taking place, nodes may either approve or reject it. There’s always a risk that one or more of the nodes will reject the common decision and disrupt the environment. This is why in order for either of these decisions to be made, the majority of nodes involved must win. If a majority of nodes fail to make a decision (deliver the same message to the servers), the transaction will fail. Consensus must be reached for any transaction to work. A cryptocurrency environment can only be sufficiently reliable if it can independently reach consensus and this is achieved by being Byzantine Fault Tolerant(BFT).
The Byzantine Generals’ Problem
Before explaining Byzantine Fault Tolerance (BFT), we need to dive into the Byzantine Generals’ Problem. In 1982, researchers Leslie Lamport, Robert Shostak and Marshall Pease described it in their published academic paper The Byzantine Generals Problem. It is most commonly explained through the metaphoric use of military Generals, hence the name.
In the metaphor, a group of Generals are preparing to attack an enemy’s camp. For the attack to be successful, all of the Generals and their armies have to attack at the same time. If they don’t they will lose. The catch is that one of the Generals is a traitor and will lie to the other Generals about the decision made. Now, the other Generals are facing the problems of attacking with a traitor in their midst. They can choose to retreat but the traitor can also lie about that.
The goal of the Generals is not to attack or to retreat, it is to come to a consensus before acting. The Byzantine Generals’ Problem deals with the ability of the majority of the Generals to reach one decision together. There’s not a specific decision they are required to take, as long as it is the same made by the majority, they will succeed.
However, it is not necessary for all of the Generals to agree for a consensus to be reached. As long as at least ⅔ of them agree and reach the same decision, it will go through. If more Generals are lied to than told the truth, a consensus cannot be reached. The misinformation will infiltrate the armies and create trouble for the loyal Generals, crashing the entire operation.
Byzantine Fault Tolerance
Byzantine Fault Tolerance (BFT) is one of the most crucial concepts of the blockchain world. In order to keep records of transactions in a tamper-free environment, blockchains need to be able to tolerate “Byzantine Failures.” In a Byzantine Failure, an unreliable actor (the defective node or General) can lie and make any decision (transaction) seem harmless while posing as a honest actor. It is the most difficult type of node failure, and the behavior can not be predicated. That is why it is crucial for the digital environment to be tolerant against it.
Relations to Cryptocurrency
Cryptocurrencies are transferred through blockchains. Those blockchains store and record large amounts of value, thus they are enticing to hackers. There’s a great amount of wealth to be made by causing faults in those systems.
Blockchains rely heavily on community consensus. The number of systems and users involved increase the risks of not achieving consensus. It is impossible to trust everybody in the environment. One should assume that some of the users involved within the community and each blockchain are not always trustworthy. Therefore, decentralized blockchains need to be Byzantine Fault Tolerant to work against anyone who tries a malicious transaction. Cryptocurrency blockchains are rather more vulnerable than other blockchains because they have no central authority to take over and repair any damages. For these reasons, there’s a desperate need for a solution to the Byzantine Generals’ Problem for blockchains.
There’s not a single solution to the Byzantine Generals’ Problem. Rather, different blockchains may try to develop their individual solutions. For example, Bitcoin and other influential blockchain systems have been using the Proof-of-Work (PoW) solution.
PoW requires users who desire to add to a particular blockchain to perform a work-intensive task to solve it. Then, the nodes use the information that already exist in the blockchain to verify it. PoW systems require significant amount of time and work for any data to be added on the blockchain. This means that if a malicious party was to get involved, it would demand them to exert a very large amount of time and work to undermine the group consensus and to make any meaningful changes. The PoW system acts as a guard against these threats and serves as the Byzantine Fault Tolerance (BFT). Nonetheless, they have their limitations. A PoW system in a blockchain requires everyone solving the PoW to expend large computational effort in order to amend any minimal change in the name of fault tolerance.
There are alternative solutions which require less computational power. Tendermint is one that relies on node votes and majority consensus to find and eliminate the malicious orders. This solution, however, only works if the majority of the nodes remain loyal. If there are more traitors than loyal nodes, it will fail. The consensus regarding the legitimate nodes will become more unclear as the number of rogue nodes increase.
BFT is essential for a decentralized blockchain system to perform efficiently. There is more than one way to implement it in order to solve the Byzantine Generals’ Problem. Each of these solutions should be weighed carefully and chosen based on the architecture of the blockchain system. The good news is that there are alternatives that may prove to be more fruitful than PoW.