OPOC

OPOC, or Optimistic Proof of Computation, is a mechanism designed to ensure the integrity and security of computational operations that occur outside the blockchain (offchain). This approach leverages both offchain and onchain elements to provide a tamper-proof system where certain operations are validated by multiple nodes to achieve consensus.

Key Concepts

  • Offchain Operations: These are processes that occur outside the blockchain environment. While they offer scalability and speed, they are susceptible to tampering by malicious nodes.

  • Onchain Operations: These are processes executed directly on the blockchain, ensuring tamper-proof and immutable records.

How OPOC Works

  1. User Interaction

    • A user initiates a request by calling a function in a Solidity contract, providing necessary parameters such as NFT_ID, INPUT_DATA, and INPUT_FILE_CID.

  2. Request Initialization

    • The contract generates a unique REQUEST_ID and invokes a specific function from a precompiled contract, passing critical parameters like REQUEST_ID and the other user parameters.

  3. Data Verification

    • The system checks the input data and retrieves associated NFT information.

    • It stores the request details in the Inputs storage and logs an event indicating the request has been accepted.

  4. Consensus Levels

    • Depending on the NFT specifications, the system start the assignment of the execution to a random node.

Security Mechanisms

During Block Validation:

  • Wasm and IPFS File Verification:

    • The system ensures the availability and validity of files required for the execution (the wasm of the AI Agent and the input file).

    • It checks the status of these files through the IPFS pallet, verifying their usability and expiration.

  • Node Assignment and Execution:

    • Nodes are assigned to process requests based on current load and execution requirements.

    • The system monitors the execution and consensus among nodes, escalating to higher levels of OPOC if discrepancies arise.

Consensus Verification:

  • Level 0: A single node executes the request.

  • Level 1: Multiple nodes are involved to achieve a higher consensus.

  • Level 2: Additional nodes are engaged if discrepancies are found, ensuring a majority consensus.

Request Completion and Rewards

  • The final result is stored in the Outputs storage.

  • Nodes are rewarded based on their participation and accuracy, with penalties for nodes in the OpocBlacklist or those with timeouts and errors.

Offchain Worker Execution

  • Nodes continually monitor and execute assigned tasks, ensuring timely processing and consensus.

  • Results are stored, and timeouts are managed to maintain system efficiency.

Last updated