pub trait AccountableSafety:
ProofSoundness
+ ConflictCompleteness
+ ChainAuditability
+ CommitAgreement { }Expand description
Theorem (Accountable safety). For every chain and height, one of the following holds:
- at most one block is committed there (
CommitAgreement); or - two conflicting confirmed certificates exist, and then — from those certificates alone,
with no further observation of the network — validators of total weight at least
Committee::validity_thresholdare convictable by proofs thatEquivocationProof::checkaccepts, every one of them genuinely faulty (ProofSoundness); or - a certificate’s justification chain is unsound, and then its attesters are convictable
(
ChainAuditability) with no conflict required at all.
Proof. Case 1 is CommitAgreement, which holds whenever
MaxByzantineWeight does. If it fails,
there are conflicting confirmed certificates; if both carry sound chains, case 2 is
ConflictCompleteness together with ProofSoundness, and otherwise case 3 is
ChainAuditability. ∎
Case 2 convicts strictly more weight than the fault bound permits — f⁺ against a permitted
f⁺ − 1 — so a conviction set is itself evidence that the assumption underpinning
CommitAgreement was violated, rather than merely that some validator misbehaved.