• 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
      • Instant-runoff-voting
      • Imp-language
      • Sidekick
      • Leftist-trees
      • Java
      • Taspi
      • Bitcoin
      • Riscv
      • 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
          • Aleobft-static
          • Aleobft-stake2
          • Aleobft-dynamic
          • Aleobft-stake
          • Aleobft-proposals
            • Correctness
            • Definition
              • Initialization
              • Transitions
                • Transitions-accept
                • Transitions-certify
                • Transitions-propose
                • Events-possiblep
                • Elections
                • Events-next
                • Event-possiblep
                • Event-next
                • Transitions-commit
                • Transitions-augment
                • Dags
                • Transitions-endorse
                • Transitions-advance
                • Blockchains
                • Anchors
              • States
              • Events
              • Reachability
          • Library-extensions
        • Leo
      • Solidity
      • Paco
      • Concurrent-programs
      • Bls12-377-curves
    • Debugging
    • Std
    • Proof-automation
    • Macro-libraries
    • ACL2
    • Interfacing-tools
    • Hardware-verification
    • Software-verification
    • Math
    • Testing-utilities
  • Definition

Transitions

Transitions of the AleoBFT labeled state transition system.

We define predicates that say which events are possible in which states, and functions that say, for such combinations of events and states, which new states the events lead to. In other words, we define the transitions of the state transition system that models AleoBFT.

Both the predicates and the functions are mostly executable; they only use a few constrained functions. This means that, given an initial state and a list of events, it is possible to simulate the execution of the system in ACL2 by running each event in turn, starting with the initial state; all of this, assuming executable attachments for the constrained functions. The execution is not necessarily fast, because the definition of the labeled state transition system prioritizes clarity over efficiency.

Subtopics

Transitions-accept
Transitions for certificate acceptance.
Transitions-certify
Transitions for proposal certification.
Transitions-propose
Transitions for proposal creation.
Events-possiblep
Check if a sequence of events is possible.
Elections
Leader elections.
Events-next
New state resulting from a sequence of events.
Event-possiblep
Check if an event is possible.
Event-next
New state resulting from an event.
Transitions-commit
Transitions for anchor commitment.
Transitions-augment
Transitions for proposal augmentation.
Dags
DAGs.
Transitions-endorse
Transitions for proposal endorsement.
Transitions-advance
Transitions for round advancement.
Blockchains
Blockchains.
Anchors
Anchors.