3.1 Protocol Requirements

For a protocol to integrate with the ASP system, it must satisfy the following requirements:

  1. State Machine Representation

    The protocol must be representable as a state machine with the following tuple:

Where:

  • : Hash function to compute unique identifier of the protocol instance
    • Implementation of a protocol in a specific chain (i.e. Contract deployed in ethereum) is an instance of a protocol
    • The Scope function computes the unique identifier of the protocol instance
    • I.e. Keccak256 Hash of (address, chainID, contractCode)
  • : State space
    • The agreed upon state space of the protocol
  • : Input dictionary
    • The agreed upon inputs that can trigger a state transition in the protocol
  • : Output dictionary
    • The agreed upon outputs that are returned by the state transition function of the protocol
  • : Transition function,
    • s = the agreed upon prestate satisfying S,
    • s’ = the post state satisfying S,
    • i = the state transition inputs satisfying I
  • : State hash function,
    • = the state of the protocol
    • = reference to the state-transition event which can be a singular value or a tuple of values (i.e. block number, transaction number, log number)
    • = the hash of the state and must be a unique identifier of the state at
  • : Verification function,
    • A function that can verify that is the pre-image of at satisfying the transition function
  • : State comparator function,
    • A function that can compare two states and return the difference between them.
    • indicates a state transition
  1. Deterministic State Transitions: The protocol must have deterministic state transitions to ensure consistent record generation.

  2. Observable State: The protocol must expose sufficient information to reconstruct its state at any given epoch.

  3. Unique Identifiers: Each protocol instance must have a unique identifier computable by the function.

  4. Event Emission: The protocol should emit events for all state-changing operations to facilitate efficient monitoring.