pub trait Accountability { }Expand description
Remark (Agreement failure is attributable). The converse of CommitAgreement: when
it fails, the failure is not silent. Two conflicting confirmed certificates are self-contained
evidence convicting validators of at least
validity_threshold weight, and
no correct validator is ever convictable.
This is stated and proved in crate::justification::proof rather than here, because its
assumption base is deliberately weaker: it must hold precisely when
MaxByzantineWeight has failed, which is
the one regime this module says nothing about. See
AccountableSafety for the theorem and
AccountabilityScope for what it excludes
— notably that incorrect block execution is not attributable.
It is worth stating here nonetheless, because it explains why certificates carry an unlocking
round (UnlockingRound) and a justification chain at all, given that CommitAgreement
uses neither: they buy accountability, not agreement.