Attestation Center

Overview

The Attestation Center is a critical system designed to ensure the integrity and efficiency of AVS operations by bridging off-chain execution with on-chain verification and maintaining a transparent history of all activities involved.

AVS Operators attest to the execution and validity of tasks through the consensus process. Operators claims are being recorded when the network comes to a consensus on arbitrary compute and auxiliary datasets, which allows the AVS to perform various functionalities on top of the verified results.

Contract Address

Run the othentic-cli network contracts command in your project folder to get the deployed Attestation Center contract address. The same address can also be obtained from the AttestationCenterDeployed event, emitted in the contracts deployment transaction on L2.

Features

Task submission and verification - allows AVS Operators to submit their off-chain tasks and verify them on-chain, ensuring that the tasks lifecycle can be tracked, recorded, and validated.

Rewards and penalties distribution - stores detailed information about individual Operator work, which allows the AVS protocol to calculate and distribute rewards, slashing, and penalties.

Aggregated view of AVS activities - maintains a comprehensive view and historical data of the AVS footprint, including all activities and tasks performed by the AVS.

Verified auxiliary datasets - As part of the task submission, Operators also agree on auxiliary info about the task and make it available on-chain (via the TaskInfo.data property). These datasets could be used to trigger AVS logic and complex mechanisms.

  • For example, zk proofs can use the proofOfTask field for SNARK proofs while using the TaskInfo.data for public inputs and outputs to the circuit.

  • For example, price oracle can be used TaskInfo.data as a timestamp for fetched data feeds.

Creation of new Tasks - configure diverse types of tasks with different corresponding rewards and penalties. You can also define a policy of bare requirements for specific clusters of operators.

Operator interface - interface for AVS Operators, facilitating their interaction with the system and allowing Operators to manage tasks, view history, and interact efficiently with the AVS.

Core Functions

Submit Task

The submitTask function is responsible for handling the submission of tasks in a decentralized system, with multiple steps to ensure the validity and proper handling of task data, signatures, and rewards. It performs the following key actions:

  1. Pre-Processing (Optional): If an avsLogic hook is set, it calls beforeTaskSubmission for pre-processing.

  2. Task Validation: Validates the task's signature and checks if the task has already been signed.

  3. Signature Verification: Verifies the taskPerformer's signature and checks the aggregated signature.

  4. Task Definition validation: Validates the task definition and checks for any restrictions.

  5. Fee Calculation: Calculates base reward fees for attesters, performers, and aggregators using the fee calculator system. If a fee calculator is set, it computes the appropriate rewards based on the task's definition and submission details.

  6. State Update: Marks the task as "signed" and optionally calls afterTaskSubmission for post-processing.

 _submitTask(TaskInfo calldata _taskInfo, TaskSubmissionDetails memory _taskSubmissionDetails) 
Property
Type
Description

TaskInfo.taskDefinitionId

uint16

The ID of specific Task definition

TaskInfo.proofOfTask

string

TaskInfo.data

bytes

Any auxiliary/metadata required by the AVS or the service consumer to be verified.

TaskInfo.taskPerformer

address

The address of the Task Performer.

TaskSubmissionDetails._isApproved

bool

Indicate if a task has been approved or rejected by the Attesters.

TaskSubmissionDetails._tpSignature

bytes

Task Performer ECDSA signature.

TaskSubmissionDetails._taSignature

uint256[2]

Task Attesters BLS aggregated signature.

TaskSubmissionDetails._operatorIds

uint256[]

Task Attesters IDs

Create Task Definitions

Othentic Stack enables AVS developers to configure tasks for operators to execute, each with customizable parameters, rewards, security levels, number of operators, and operator clusters.

Attestation Center contract is used to create and update Task Definitions. Find more details in the Task and Task Definition section.

Last updated