Skip to content

Proof of Resources Using RISC-0 zkVM

In the Sonaric Network, ensuring the accurate reporting of node resources is crucial for maintaining network integrity and optimal resource allocation. To achieve this, Sonaric employs a sophisticated proof of resources mechanism leveraging RISC-0 zkVM. This system is designed to verify that nodes possess the computational capabilities they claim, preventing misreporting and ensuring fair participation in the network.

The proof of resources mechanism provides critical information about each node:

  1. Online status and network connectivity

  2. Ability to run containers on demand

  3. Proper implementation of Sonaric software

  4. Capacity to perform intensive computations within reasonable time frames

By validating these aspects, Sonaric can maintain a reliable and efficient network of nodes, crucial for hosting multiple blockchain networks and optimizing resource allocation.

Challenge-Response Algorithm

The core of this mechanism is a challenge-response protocol between a verifier (currently centralized, with plans for decentralization) and the nodes under test. Here's how it works:

  1. Nodes send signed heartbeats to the verifier at regular intervals.

  2. Upon receiving a heartbeat, the verifier may randomly decide to issue a challenge.

  3. If a challenge is issued, the verifier sends two random numbers to the node and marks the challenge start time.

  4. The node executes a predefined container image containing zkVM host and guest programs prepared by Sonaric.

  5. The zkVM guest computes a mathematical formula using the provided random numbers as inputs.

  6. The node signs and sends the resulting zkVM receipt to the verifier.

  7. The verifier checks the node signature, deserializes the receipt, verifies it using zkVM, and compares the computation result against the original random numbers.

  8. The verifier marks the challenge end time upon successful verification.

  9. The challenge duration, node ID, and hardware details are recorded.

Importance of zkVM

The use of zkVM is critical in this process as it guarantees that the node must have actually executed the challenge computation on the provided random numbers. This prevents nodes from synthesizing or reusing responses, ensuring the integrity of the proof.

Resource Validation

By analyzing the time taken to complete the challenge, the system can statistically evaluate whether a node's reported hardware specifications are realistic. If a node consistently underperforms relative to its claimed specifications, it may be flagged as suspect. This approach allows for:

  • Identification of temporarily overloaded nodes, prompting challenge repetition at a later time.

  • Detection of nodes reporting more resources than they actually possess.

The system compares challenge completion times against those of nodes with similar reported specifications to make these determinations.

Ongoing Development

This algorithm is subject to continuous refinement and improvement to enhance the accuracy and reliability of resource verification in the Sonaric Network. As the network evolves, so too will the mechanisms for ensuring its integrity and performance.

Future developments may focus on enhancing the challenge complexity, improving the assessment of sustained performance, and addressing potential vulnerabilities that may arise. We are also exploring ways to make the system more robust against various forms of gaming or misrepresentation.