• Top
    • Documentation
    • Books
    • Boolean-reasoning
    • Projects
      • Apt
      • Zfc
      • Acre
      • Milawa
      • Smtlink
      • Abnf
      • Vwsim
      • Isar
      • Wp-gen
      • Dimacs-reader
      • Pfcs
      • Legacy-defrstobj
      • Proof-checker-array
      • Soft
      • C
      • Farray
      • Rp-rewriter
      • Riscv
      • Instant-runoff-voting
      • Imp-language
      • Sidekick
      • Leftist-trees
      • Java
      • Taspi
      • Bitcoin
      • Des
      • Ethereum
      • X86isa
      • Sha-2
      • Yul
      • Zcash
      • Proof-checker-itp13
      • Regex
      • ACL2-programming-language
      • Json
      • Jfkr
      • Equational
      • Cryptography
      • Poseidon
      • Where-do-i-place-my-book
      • Axe
      • Bigmems
      • Builtins
      • Execloader
      • Aleo
        • Aleobft
          • Correctness
            • Unequivocal-dags-def-and-init
            • Same-committees-def-and-implied
            • Dag-omni-paths
            • Signer-records
            • Unequivocal-dags-next
            • Quorum-intersection
            • Dag-previous-quorum-def-and-init-and-next
            • Unequivocal-signed-certificates
            • Signed-previous-quorum
            • Nonforking-anchors-def-and-init-and-next
            • Successor-predecessor-intersection
            • Fault-tolerance
            • Last-anchor-voters-def-and-init-and-next
            • Signer-quorum
            • Committed-redundant-def-and-init-and-next
            • Nonforking-blockchains-def-and-init
            • Blockchain-redundant-def-and-init-and-next
            • No-self-endorsed
            • Last-anchor-present
            • Anchors-extension
            • Nonforking-blockchains-next
            • Backward-closure
            • Last-blockchain-round
            • Dag-certificate-next
            • Omni-paths-def-and-implied
            • Ordered-blockchain
            • Simultaneous-induction
            • System-certificates
            • Last-anchor-def-and-init
            • Last-anchor-next
            • Dag-previous-quorum
            • Signed-certificates
            • Committed-anchor-sequences
            • Omni-paths
            • Last-anchor-voters
            • Unequivocal-dags
            • Nonforking-blockchains
            • Nonforking-anchors
            • Committed-redundant
            • Same-committees
            • Blockchain-redundant
          • Definition
          • Library-extensions
        • Leo
      • Solidity
      • Paco
      • Concurrent-programs
      • Bls12-377-curves
    • Debugging
    • Std
    • Community
    • Proof-automation
    • Macro-libraries
    • ACL2
    • Interfacing-tools
    • Hardware-verification
    • Software-verification
    • Math
    • Testing-utilities
  • Aleobft

Correctness

Correctness proofs of the AleoBFT labeled state transition system.

We formulate and prove a number of properties of the protocol, culminating in the main property that we are interested in, namely the non-forking of blockchains.

We formulate the correctness properties of AleoBFT mainly as state invariants, which we show to hold in the initial states to be preserved by state transitions, and to hold in every state reachable from an initial state.

Subtopics

Unequivocal-dags-def-and-init
Invariant that DAGs are unequivocal: definition and establishment.
Same-committees-def-and-implied
Invariant that correct validators calculate the same committees: definition, and proof that it is implied by other invariants.
Dag-omni-paths
Property that certain certificates in DAGs are reachable from all the certificates in later rounds, also in different DAGs.
Signer-records
Invariant that each correct signer of each certificate has a record of the certificate.
Unequivocal-dags-next
Invariant that DAGs are unequivocal: preservation.
Quorum-intersection
Quorum intersection.
Dag-previous-quorum-def-and-init-and-next
Invariant that each certificate in a DAG has references to previous certificates that form a non-zero quorum in the committee for the previous round, unless the round is 1, in which case there are no references to previous certificates: definition, establishment, and preservation.
Unequivocal-signed-certificates
Invariant that the certificates signed by a correct validator are unequivocal.
Signed-previous-quorum
Invariant that each certificate signed by a correct validator has references to previous certificates that form a non-zero quorum in the committee for the previous round, as calculated by that signing validator, unless the round is 1, in which case there are no references to previous certificates.
Nonforking-anchors-def-and-init-and-next
Invariant that committed anchors do not fork: definition, establishment, and preservation.
Successor-predecessor-intersection
Intersection of successors and predecessors.
Fault-tolerance
Fault tolerance.
Last-anchor-voters-def-and-init-and-next
Invariant that the last committed anchor has at least a certain stake of successors: definition, establishment, and preservation.
Signer-quorum
Invariant that each certificate in the DAG of a validator has signers that form a quorum in the committee.
Committed-redundant-def-and-init-and-next
Invariant that the set of committed certificates is redundant: definition, establishment, and preservation.
Nonforking-blockchains-def-and-init
Invariant that blockchains do not fork: definition and establishment.
Blockchain-redundant-def-and-init-and-next
Invariant that the blockchain is redundant: definition, establishment, and preservation.
No-self-endorsed
Invariant that the recorded author-round pairs of endorsed certificates are from other validators.
Last-anchor-present
Invariant that the last committed round, if non-zero, has an anchor certificate.
Anchors-extension
Extension of anchor sequences.
Nonforking-blockchains-next
Invariant that blockchains do not fork: preservation.
Backward-closure
Invariant that DAGs are backward-closed.
Last-blockchain-round
Invariant that the last round in the blockchain of a validator is the last committed round of the validator.
Dag-certificate-next
Invariant that retrieving an existing certificate from a DAG always returns the same result under all transitions.
Omni-paths-def-and-implied
Invariant that the last committed anchor in a validator is also present and reachable from later certificates in any validator: definition, and proof that it is implied by other invariants.
Ordered-blockchain
Invariant that blocks in validators' blockchains have strictly increasing, even round numbers.
Simultaneous-induction
Proof by simultaneous induction for certain invariants.
System-certificates
Certificates in the system.
Last-anchor-def-and-init
Last anchor committed by a validator: definition and initial result.
Last-anchor-next
Last anchor committed by a validator: how events change the result.
Dag-previous-quorum
Invariant that each certificate in a DAG has references to previous certificates that form a non-zero quorum in the committee for the previous round, unless the round is 1, in which case there are no references to previous certificates: proof that it holds in every reachable state.
Signed-certificates
Certificates signed by validators.
Committed-anchor-sequences
Sequences of anchors committed by validators.
Omni-paths
Invariant that the last committed anchor in a validator is also present and reachable from later certificates in any validator: proof that it holds in every reachable state.
Last-anchor-voters
Invariant that the last committed anchor has at least a certain number of successors: proof that it holds in every reachable state.
Unequivocal-dags
Invariant that DAGs are unequivocal: proof that it holds in every reachable state.
Nonforking-blockchains
Invariant that blockchains do not fork: proof that it holds in every reachable state.
Nonforking-anchors
Invariant that committed anchors do not fork: proof that it holds in every reachable state.
Committed-redundant
Invariant that the set of committed certificates is redundant: proof that it holds in every reachable state.
Same-committees
Invariant that correct validators calculate the same committees: proof that it holds in every reachable state.
Blockchain-redundant
Invariant that the blockchain is redundant: proof that it holds in every reachable state.