Practical Byzantine Fault Tolerance

jimjim
3 min read

Generally Byzantine fault tolerance is a concept where a computer system keeps working (operating) regardless of if some of the Nodes develop faults or if there happens to be malicious activity amongst the nodes. I believe that Byzantine fault-tolerant algorithms will be increasingly important in the future because malicious attacks and software errors are increasingly common and can cause faulty nodes to exhibit arbitrary behavior.

Byzantine fault tolerance stems from the concept which has to do with Byzantine Generals with an army and in a location surrounded by a fortress, if the generals all agree to attack the fortress at once then it's successful, but if some generals retreat, then there's no agreement between them.

BFT Analogy

From the analogy above, we can liken the generals with armies to be Nodes on a computer system, The Nodes have to be in consensus (Agreement) for an activity or state transition to be effected successfully, but even in the case whereby there is no consensus or some of the Nodes fail, then the computer system keeps operating because of the BFT algorithm implemented.

In a Blockchain context, Byzantine fault tolerance algorithms are implemented because in cryptocurrency trading for a transaction to be completed successfully, Block Nodes have to validate and consent that transaction for it to actually pass and be added to the block as a successful transaction, Now what happens if that fails? that is where Byzantine Fault tolerance comes into play.

BFT Initial UseCase

Bitcoin was the first blockchain to implement the BFT Algorithm using a Proof of Work consensus algorithm, in the POW Consensus algorithm, validators had to solve complex equations using specialized computer equipment. the first miner to solve an equation correctly, earns a right to add a block of transactions and earn rewards, if you don't produce the correct data, you've spent energy and time for nothing.

Currently, we have other blockchains like Cosmos, and Ethereum implementing the Proof of Stake consensus algorithms which implement BFTs.

Pros of Byzantine fault tolerance

  • No need to solve complex equations

  • Ease of validation, transactions don't require multiple confirmations, once all the nodes agree, a transaction is validated immediately

  • Since all nodes can get in on the action, they can all share in the rewards. There isn't much variance between which nodes earn rewards as there can be proof of work and proof of stake.

Cons of Byzantine fault tolerance

  • Vulnerable to Sybil attacks

  • It requires communication between nodes at every step of the process. This takes time, which can be a problem from a scalability standpoint

For more indepth study on a paper related to the Byzantine Algorithm generation see a sample from an MIT resource https://pmg.csail.mit.edu/papers/osdi99.pdf

10
Subscribe to my newsletter

Read articles from jim directly inside your inbox. Subscribe to the newsletter, and don't miss out.

Written by

jim
jim

Software Engineer • Blockchains • Kernels