← Lessons

quiz vs the machine

Gold1490

Concurrency

Tendermint BFT Consensus

A round based Byzantine protocol with locking that underpins many blockchains.

6 min read · core · beat Gold to climb

Consensus for open blockchains

Tendermint is a Byzantine fault tolerant consensus protocol used by many blockchain systems. Like PBFT it tolerates up to one third faulty voting power among 3f plus 1 equivalent stake, but it organizes agreement into clean repeating rounds with a rotating proposer.

Propose, prevote, precommit

Each height of the chain is decided through rounds, and each round has three steps.

  • Propose: the round proposer broadcasts a block.
  • Prevote: validators broadcast a prevote for the block or for nothing.
  • Precommit: after seeing more than two thirds prevotes for a block, validators precommit it. After more than two thirds precommits, the block is committed.

Locking for safety

If a round fails to commit, a new round starts with a new proposer. To stay safe, a validator that precommits a block becomes locked on it and will only prevote a different block if it sees a valid newer proof. This lock and unlock rule prevents two different blocks at the same height, giving Tendermint immediate finality rather than probabilistic confirmation.

Key idea

Tendermint reaches Byzantine consensus in propose prevote precommit rounds, and validator locking on precommitted blocks gives immediate, non reverting finality.

Check yourself

Answer to earn rating on the learn ladder.

1. What fraction of voting power must prevote a block before precommit?

2. What does locking on a precommitted block prevent?