Standalone HotStuff: Key Events, Variables, and Guarantees
Standalone HotStuff is the core HotStuff consensus protocol without extra layers (like execution engines or blockchain-specific tooling). It is leader‑based, Byzantine fault tolerant (BFT), and designed to be safe under asynchrony and live under partial synchrony.
This writeup explains the key events, variables, and state transitions that make HotStuff work: QC, highQC, lockedQC, lockedRound, finality rules, data availability, and execution timing.
Mental model
HotStuff advances in rounds. Each round has a leader who proposes a block. Replicas vote; votes aggregate into a Quorum Certificate (QC). The protocol always builds on the highest known QC (highQC) to preserve safety. Finality happens when the protocol forms a certified chain that proves consistent history.
Core variables (what each node tracks)
- QC (Quorum Certificate): a signed proof that
2f + 1replicas voted for a block in a specific round. - highQC: the highest‑round QC the node knows. This is the preferred parent for new proposals.
- lockedQC: the highest QC the node is currently locked on. A node will not vote for proposals that conflict with this lock (unless it sees a higher safe QC).
- lockedRound: the round number associated with
lockedQC. This makes the lock explicit. - commitQC (implicit): when a block has a certified grandchild, the block is committed (final).
These variables define the safety and liveness logic.
Key events in a round
-
Leader proposal
- Leader proposes a block
Bthat extendshighQC. - The proposal includes
QCfor the parent (this is the proof of safety).
- Leader proposes a block
-
Vote (Prepare / Pre‑commit / Commit phases)
- Nodes validate the proposal (parent QC, round number, safety rules).
- If safe, they vote for
B. - Votes are aggregated into a QC for
B.
-
QC formation
- Once
2f + 1votes are collected, a QC forBis created. - Each node updates
highQCif this QC is higher.
- Once
-
Lock update
- A node updates
lockedQCwhen it sees a QC for a block that is safe to lock. lockedRoundbecomes the round of that block.
- A node updates
-
Commit (finality)
- If a block
Xhas a certified grandchild, thenXis committed. - This gives deterministic finality for
Xand its ancestors.
- If a block
Safety rules (why forks do not finalize)
- Extend highQC: proposals must extend the highest known QC.
- Respect locks: a node only votes for a block that is either:
- on the chain of
lockedQC, or - carries a QC with a round higher than
lockedRound.
- on the chain of
This ensures a node cannot help two conflicting histories both reach finality.
Liveness rules (how the system makes progress)
- Partial synchrony: once the network stabilizes, leaders can gather votes in time.
- View change / round change: if the leader is faulty, timeouts trigger the next round, and the next leader proposes using the newest
highQC.
Data availability
Data availability is enforced by proposal + QC:
- A block is considered available when it is proposed and enough replicas have seen it to form a QC.
- If data is missing, replicas withhold votes, so a QC cannot form.
This keeps the system from finalizing data that only the leader saw.
Finality and execution
- Finality: deterministic. A block is final once it has a certified grandchild.
- Execution: happens after commit. The execution layer consumes the committed chain in order.
This separation is important: HotStuff decides ordering, the execution engine applies state changes.
Serial vs chained (standalone perspective)
Standalone HotStuff is often presented in chained form:
- Serial: 3 explicit phases per block.
- Chained: phases are pipelined, and finality happens when a grandchild is certified.
In both, the QC chain is the fundamental safety object, and highQC is the anchor for safe proposals.
Summary
Standalone HotStuff is built around three ideas:
- QC chain safety: QCs link certified blocks and prevent conflicting finality.
- highQC leadership: leaders always build on the highest certified block.
- Locks:
lockedQCandlockedRoundprevent unsafe votes.
With these variables and events, HotStuff provides deterministic finality and strong Byzantine fault tolerance while enabling efficient pipelining under stable network conditions.