Oct 8, 2024

Tendermint Consensus Explained

Tendermint is a Byzantine Fault Tolerant (BFT) consensus protocol used by many proof‑of‑stake chains. It combines deterministic finality with a clear round‑based structure, making it popular for permissioned and permissionless networks with a known validator set per epoch.

Below is a practical overview, plus a colored comparison table to highlight where data availability, ordering, finality, and execution occur.

Tendermint in one paragraph

Tendermint runs in rounds with a single proposer per round. Validators exchange Prevote and Precommit messages to decide on a block. If a validator sees enough matching precommits (2f+1), the block is finalized. When the network is unstable, timeouts trigger a move to the next round.

Core phases

  1. Propose: the proposer suggests a block.
  2. Prevote: validators vote on the proposed block (or nil if they reject).
  3. Precommit: validators confirm their prevote choice. Block height is fundamental — consensus progresses one height at a time, and each height must be finalized before moving to the next.
  4. Commit: with 2f+1 precommits, the block finalizes.

Key tradeoffs

  • Fast finality: blocks are final once committed — no reorgs under assumptions.
  • Higher messaging overhead: round-based voting means more messages than PoW.
  • Partial synchrony: liveness depends on eventual network stability.
  • Strong safety: tolerates up to f Byzantine validators in n >= 3f + 1.

Where each responsibility happens

ResponsibilityTendermint (BFT)
Data availabilityAt proposal + gossip before prevote locks
OrderingDefined per round by the proposer’s block
FinalityAt 2f+1 precommits (deterministic)
ExecutionAfter commit, deterministic and immediate
What is "consensus" here?Prevote + Precommit quorum for a single block
Failure handlingTimeouts + round changes if proposer is faulty

Tendermint vs. PBFT (quick intuition)

  • Similar: both are BFT with deterministic finality and round-based voting.
  • Different: Tendermint formalizes timeouts and locking rules that work well for blockchain block production.

Summary

Tendermint is a practical BFT protocol with strong finality and a clean mental model. It shines when you have a known validator set and want fast, irreversible blocks. The cost is higher coordination overhead and reliance on partial synchrony.


Thanks for reading! If you want to see future content, you can follow me on Twitter or get connected over at LinkedIn.


Support My Content

If you find my content helpful, consider supporting a humanitarian cause (building homes for elderly people in rural Terai region of Nepal) that I am planning with your donation:

Ethereum (ETH)

0xB62409A5B227D2aE7D8C66fdaA5EEf4eB4E37959

Thank you for your support!