Expand description
The commit rule: what it takes for a block to become final, and what a node does about it.
The protocol has a two-step commit rule outside the fast round — validate, then confirm — and a one-step rule inside it. This module pins down both, and connects “a confirmed block certificate exists” to the observable state a node reaches.
Traits§
- Certified
Block WasExecuted - Lemma (Every certified block was executed by a correct validator). If a valid
ValidatedBlockCertificatefor a blockBexists, then some correct validator executedB’sProposedBlockitself and obtainedB’sBlockExecutionOutcome. The same follows for aConfirmedBlockCertificateoutside the fast round, byCommitRestsOnValidation; inside the fast round it holds directly, a fast proposal carrying no outcome. - Commit
Rests OnValidation - Lemma (A commit outside the fast round rests on a validated block certificate). If a
ConfirmedBlockCertificateforBis certified in a roundrother thanRound::Fast, then a validValidatedBlockCertificateforBin the same roundrexists. - Committed
Block - Definition (Committed block). A block
Bat heighthof a chain is committed when aConfirmedBlockCertificateforB, valid for the committee of its epoch, exists — that is, when a quorum has cast confirmation votes forB. - Event
Reads Resolve Locally - Lemma (Event reads resolve against the validator’s own storage). When a correct validator
votes on a proposal that reads an event, the value it votes for is the one in its own storage
under the
EventIdthe block cites — resolved locally, exactly as an oracle call is, and never taken from the proposer. - Incoming
Bundles Match TheLocal Inbox - Lemma (Incoming bundles are matched against the validator’s own inbox). A correct
validator casts a validation or fast-confirmation vote for a block only if every
IncomingBundlethe block consumes is already present in its own inbox for that origin, and is equal to the bundle it holds there. - TipAdvances
Only OnValid Certificate - Lemma (The tip advances only on a verified certificate). A correct validator’s
ChainTipState::next_block_heightpasses fromhtoh + 1, and itsblock_hashesrecords a hash ath, only for a block carried by aConfirmedBlockCertificatethat has passedcheckagainst the committee of the block’s epoch.