⚖️Tendermint Consensus Algorithm

Tendermint is the default consensus algorithm designed specifically for secure and efficient Byzantine fault-tolerant consensus. It leverages a combination of Practical Byzantine Fault Tolerance (PBFT) and Proof of Stake (PoS) concepts.

In the Tendermint consensus mechanism, a set of validators is responsible for proposing and validating new blocks. Validators are chosen based on their stake in the network, incentivizing them to act honestly to maintain the security and stability of the blockchain. The consensus process involves a series of rounds where validators propose blocks, reach agreement on the next block, and then confirm the block through a voting process.

The Tendermint consensus mechanism operates through a series of rounds, each of which involves proposing and confirming a new block. Here's a step-by-step overview of the Tendermint consensus process:

  • Validators: A set of validators is selected to participate in the consensus process. Validators are chosen based on their stake in the network, typically determined by the number of tokens they hold or have delegated to them.

  • Proposal: In each round, one validator is designated as the block proposer. The proposer is responsible for creating a new block containing a batch of proposed transactions. The selection of the proposer is typically determined by a deterministic algorithm that takes into account the validators' stakes.

  • Prevote: Once the block is proposed, all validators independently validate the block and cast their prevote messages. A prevote is a tentative vote indicating that the validator has validated the proposed block and believes it is valid.

  • Precommit: After receiving a threshold of prevote messages for a particular block, validators proceed to precommit. Precommit messages serve as a stronger commitment to the proposed block, indicating that the validator has validated the block and is willing to include it in the blockchain.

  • Commit: Once a validator receives a threshold of precommit messages for a specific block, it moves to the commit stage. The commit message represents the final confirmation of the block, and once a validator commits to a block, it is considered immutable and cannot be reversed.

  • Block Confirmation: Once a block is committed, it is appended to the blockchain, and the process repeats for the next round. The finality of the blocks ensures that they cannot be modified, providing security guarantees and enabling applications to rely on confirmed transactions.

Tendermint provides fast finality, which means that once a block is confirmed, it is considered immutable and cannot be reverted. This property is beneficial for applications that require immediate confirmation and security guarantees, such as financial transactions or decentralized exchanges.

Last updated