2.2 Key Components

2.2.1 Observer:

Fig.2.2. observation flowProtocolObservation Pipeliness'watcherState-Transition DetectorState BufferRecord-GeneratorΔS(s,s’)→δH(s,e)→h  T(s,i)→s’[e, s'][e,s,s']  s[e,s,s']s'



















The Observer is a service that monitors & records the state-changes of specific protocols in real-time. It is comprised of the following modules:

  1. Watcher: Watches the network for signals (e.g. event emissions) by protocols that indicate a state-change has occured.

    It requires protocol-specific components ( adapter & parser ) in order to interface with the protocol at the network level.

    It is possible to have a 1 to 1 implementation of the watcher module for each protocol, or a single watcher module that can be configured to monitor multiple protocols via pluggable adapters & parsers.

  2. State Transition Detector: Identifies and validates the state transitions signalled by the watcher module.

    The Detector is notified of the state-change by the watcher module. In response, it attemps to rebuild a representation of the state from data cached in the state buffer.

    The state buffer is a ring-buffer for efficient caching of new states and quick retrieval of old states.

    And then compares the current state with the previous state usung the protocol’s state comparator function:

    Where indicates a state transition.

  3. Record Generator: Creates cryptographic records of state transitions, defined as the tuple:

    Where:

    • is the unique identifier of the protocol instance
    • is the reference to the state transition event (i.e. the block number, transaction hash)
    • is the pre-state hash
    • is the post-state hash
    • Where & is computed by a state-hash function:

2.2.2 Categorization Engine:

Fig.2.3. Categorization FlowObserverCategorization PipelineR QueueB queueFeature-Extractorsclassifierscategorizers  [categories][features]RRB















The Categorization Engine is crucial to the ASP’s ability in supporting compliance mechanisms & allow end-users to generate “Associaiton Sets”.

The objective of the categorization is to correctly identify attributes or properties (expressed as categories) of the state-transition event which are relevant to the compliance requirements specified by the protocol (or other entities)

Visit the classification & categorization and feature extraction sections for more details on the categorization process.

The Categorization Engine executes a FIFO pipeline of feature-extraction, classification & categorization algorithms to categorise the state-transition event referenced by the record .

The output is a 256-bit vector termed “category bitmap” or , where each bit represents a specific category.

The Category Pipeline is the sequential execution of:

  1. Feature Extractors: Analyzes records to extract relevant features for classification.

  2. Classifiers: Categorizes records based on extracted feature sets.

  3. Categorizers: Generates a 256-bit category bitmap to reflect the record’s category/s

2.2.3 On-Chain Instances:

  1. Public Registry: Set of on-chain smart contracts for storing & querying ASP onchain data.

More details can be found in the public registry section.

The onchain public registry supports on-chain intergration with the ASP, allowing for the following:

  • Generation of Association Sets whilst preserving end-user privacy.
  • Direct integration with protocol contracts for compliance verification.
  • Serve public input directly to onchain verifies during a transaction that requires compliance verification.
  1. ZKP Verifier: OnChain component that verifies zero-knowledge proofs of compliance.

See Zero-Knowledge Proofs section for more details