pub trait CommitAgreement:
LockPreservation
+ CommitRestsOnValidation
+ OneConfirmationVotePerRound
+ CorrectValidatorInIntersection
+ CertificateEmbedsQuorum
+ CorrectSignerCastItsVote
+ ConflictingBlocks
+ EpochAgreement
+ TipAdvancesOnlyOnValidCertificate { }Expand description
Theorem (Commit agreement). For a given chain and height, all valid
ConfirmedBlockCertificates certify the same block. Equivalently: no two conflicting blocks
(ConflictingBlocks) are ever both committed.
Proof. Let valid confirmed certificates for A in round r and for B in round s
exist, with r ≤ s after renaming.
- If
r = s: byEpochAgreementboth are judged against the same committee, and byCertificateEmbedsQuorumtheir signer sets are quorums of it, so byCorrectValidatorInIntersectiona correct validatorvsigned both. ByCorrectSignerCastItsVote,vcast confirmation votes forAand forBin roundr. ByOneConfirmationVotePerRound,A = B. - If
r < s: thensis notRound::Fast, soCommitRestsOnValidationgives a validValidatedBlockCertificateforBin rounds. ByLockPreservation, applied to the commit ofAin roundrand tos > r, that certificate certifiesA. HenceB = A. ∎
In observable terms. Combining with TipAdvancesOnlyOnValidCertificate: if any correct
validator’s ChainTipState records a block hash at height h, then no correct validator
ever records a different hash at h — whatever the network does, and whatever the faulty
validators sign.