Byzantine Fault Tolerance (BFT)

From CryptoWiki

Byzantine Fault Tolerance (BFT) is highly technical in nature (like the other consensus algorithms presented); a good explanation can be found here. In general, the BFT consensus algorithms employed by cryptocurrency projects allow generals (validators) to each manage the state of a chain and share messages between each other to arrive at the correct transaction record and to ensure honesty. Again, this topic is fairly nuanced and further additional information regarding the problem and implementation details can be found here. BFT is notably implemented by Ripple (where validators are pre-selected by the Ripple foundation) and Stellar (where anyone can be a validator and trust is established by the community). BFT is advantageous because it presents scalability and low cost transactions, but DPoS introduces a component of centralisation.

  1. PBFT. The gold standard for BFT SMR. Highly recommend to see this video of Barbara Liskov from 2001. Here is the PBFT project page.
  2. Tendermint. A modern BFT algorithm that also uses peer-to-peer gossip protocol among nodes. Here is the github repository.
  3. SBFT. A BFT system that builds on PBFT for better scalability and best-case latency. Here isgithub repository that implements the SBFT protocol.
  4. HotStuff. A new BFT protocol that provides both linearity and responsiveness. The recent LibraBFT is based on HotStuff. 

"Well, Byzantine Fault Tolerance is the ability of a distributed computer network to function as desired and correctly reach a sufficient consensus despite malicious components (nodes) of the system failing or propagating incorrect information to other peers. The main objective is to defend against any catastrophic system failures by mitigating the influence that these malicious nodes may have on the correct function of the network. As a result, the right and correct consensus is reached by the honest nodes which are still in the system.

Circling back to the Byzantine Generals’ Problem, which is what set this system in motion, there have been many specifications and improvements made to the overall algorithm since the overarching problem has been studied and analyzed for years now. Practical Byzantine Fault Tolerance (pBFT) is one of these optimizations and was introduced by Miguel Castro and Barbara Liskov in an academic paper in 1999 titled “Practical Byzantine Fault Tolerance.” It aims to improve upon original BFT consensus mechanisms and has been implemented and enhanced in several modern distributed computer systems, including some popular blockchain platforms."