Consensus Algorithm

Practical Byzantine Fault Tolerance (PBFT)

  • Developed by Barbara Liskov and Miguel Castro and introduced in 1999

  • Proof of Stake chains like Cosmos and Polkadot have elements in their design inspired from PBFT

  1. A party will listen to numerous transactions until it can form a block of these transactions. We’ll refer to this party as a proposer, since they propose a block.

  2. Once a block has been proposed, everyone participates in a pre-vote to confirm that they heard the same block. It’s important to note that a block could be incorrect/malicious but still be valid in the pre-vote stage since everyone’s simply trying to come to consensus that they received the same data/block.

  3. Once more than ⅔ of the participants agree that they received the same block, they move to the pre-commit step. A pre-commit vote is then cast to determine whether this is a valid block and nothing malicious is going on.

  4. If more than ⅔ of the participants vote that the block is indeed valid and correct then we can successfully commit this block to the blockchain.

  5. The height of the blockchain is increased and steps 1–5 are repeated.

ATOMs held by users can be used to become validators in the system or to delegate ATOMs to a validator instead. The Cosmos blockchain will have 100 validators to begin with and plan to increase the limit via a governance parameter in the future.