Delegated Byzantine Fault Tolerance
Delegated Byzantine fault tolerance (dBFT) is the consensus protocol of NEO. It is a proposed alternative to Proof of Work (PoW) and Proof of Stake (PoS). Created by NEO co-founder and core developer Erik Zhang, the dBFT algorithm differs from PoW and PoS in that consensus is not achieved through an economic approach. Instead, consensus is reached under certain conditions.
dBFT takes its name from the fact that it is a solution to the Byzantine generals’ problem. Essentially, this problem imagines a group of Byzantine generals and their armies. They’re planning an attack on a castle but know that there is a traitor among them. In order to stand a good chance of being successful, the armies have to attack at the same time. This is made difficult knowing that there is a bad actor in the system. This very problem occurs across some computer networks. In this case, there’s a collective group who are deciding how to act and there’s a chance of a traitor or bad agent telling one group one thing and another group another thing, making consensus hard to reach.
dBFT and the Blockchain
In a blockchain environment made up of multiple users, applications or nodes, unreliable actors could cause the network to become fractured, making consensus harder to achieve. There is no central authority in a blockchain and approving transactions and the like requires consensus. This is why Byzantine faults are a problem for the blockchain and why dBFT is so important.
NEO’s dBFT algorithm acknowledges two types of people in its blockchain: the average user and professional node operators or bookkeeping nodes. Bookkeeping nodes are appointed by ordinary nodes through a delegated voting process. In every verification round, one of the bookkeeping nodes is randomly appointed to broadcast its version of the blockchain to the network. As long as two thirds of the of the remaining nodes agree with this version, consensus is achieved. If not, a different node is appointed and until consensus is established.