Nov 12, 2024

Tendermint vs HotStuff (Serial and Chained)

Tendermint, Serial HotStuff, and Chained HotStuff are all Byzantine fault tolerant (BFT) consensus protocols. They share the same safety threshold (n >= 3f + 1) but differ in how they pipeline votes, where ordering is defined, and when finality is achieved.

This post compares them side by side with a color‑coded table for quick scanning.

One‑line intuition

  • Tendermint: round‑based prevote/precommit with deterministic finality per block; block height is fundamental.
  • Serial HotStuff: three explicit phases per block; QC chains are the safety backbone.
  • Chained HotStuff: blocks form a chain; QC chains are fundamental and finality happens when a grandchild is certified.

Comparison table

AspectTendermintHotStuff (Serial)HotStuff (Chained)
Data availabilityAt proposal + gossipAt proposal + Prepare QCAt proposal + QC per block
OrderingPer round (single proposer)Per round (single proposer)By chain (parent → child)
FinalityAt 2f+1 precommitsAfter 3 phasesAt certified grandchild
ExecutionAfter commitAfter commitAfter commit
Consensus stepPrevote + Precommit quorum3-phase vote on a blockQC chain progression
ThroughputMediumLowerHigher
LatencyMediumHigherLower

What to pick

  • Choose Tendermint if you want a clean round‑based protocol with fast deterministic finality and strong safety in permissioned or PoS settings.
  • Choose Serial HotStuff if you want maximum clarity and explicit phases, and can tolerate lower throughput.
  • Choose Chained HotStuff if you want better throughput/latency while keeping BFT finality.

Summary

All three provide strong safety under Byzantine faults, but they trade off pipelining efficiency and finality timing. Tendermint is stable and widely deployed, Serial HotStuff is conceptually simple, and Chained HotStuff is the performance‑optimized evolution.


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!