Protocol Architecture
The Succinct Prover Network is a protocol for generating zero-knowledge proofs. This protocol implements a two-sided marketplace that connects requesters and provers; in this marketplace, requesters can procure their proofs from provers who compete to generate them at the lowest price. The protocol architecture enables verifiable matching between requesters and provers and a high performance user experience that makes the network suitable for all applications.
The protocol is architected as a verifiable application (vApp), with off-chain components that manage the auction process and proof assignment (akin to an L2 sequencer) and on-chain smart contracts that settle state roots and proofs of correct execution to Ethereum. This design pattern is similar to an L2, which separates execution from settlement.
The architecture enables a unified deployment that avoids the limitations in transaction throughput of existing chains. Users do not have to deal with the block latency of any current blockchain and instead face a real-time experience with low latency. At the same time, users can check their deposits on Ethereum and independently verify the state of the network.
In this section, we will cover the participants of the network and outline the key network components.
Participants
The network consists of two main participants: Requesters (applications that need zero-knowledge proofs) and Provers (entities that generate these proofs).
Requesters
Requesters, or applications seeking zero-knowledge proofs, submit proof requests to the network. These applications might include ZK rollups, ZK bridges, AI agents, games, and more. A proof request typically includes:
- Program: A Rust program representing the computation to be proven
- Inputs: The public or private inputs to the program
- Maximum prover gas: An upper bound on the computational complexity of generating the proof, in prover gas units (PGUs)
- Maximum PROVE fee: The maximum amount the requester is willing to pay for the proof
- Minimum PROVE stake: The minimum amount of stake required for a prover to be eligible to participate in an auction for the request
- Deadline: The maximum amount of time the requester is willing to wait for the proof's delivery after assignment
- Verification key: The key required to verify the proof on-chain or off-chain
Provers
Provers are participants who generate proofs in response to requests by bidding in auctions called proof contests:
- They stake PROVE to become eligible for bidding in auctions for proofs.
- They run node software that listens for new requests, places bids, and generates proofs.
- They compete with other provers in auctions by offering bids to generate the requested proofs at the lowest prices.
- The winning prover for each request is obligated to deliver the proof by the given deadline, or risk having part of their stake slashed if they fail.
Provers can support specialized hardware and can run proving in clusters of hundreds of GPUs, depending on the requirements of the requesters and the network.
Network Components
The network has two primary components:
- Off-chain auctioneer service – the auctioneer service is the main off-chain entity responsible for matching user requests to provers. Requesters submit proof requests and payments and provers submit bids to the auctioneer; requesters receive proofs and provers receive payments in return. Because requesters interact with the auctioneer directly through RPC calls, they face a high performance, real-time system.
- On-chain settlement contracts – the settlement contracts settle state roots and ZK proofs periodically submitted by the auctioneer. These proofs contain the updates that the auctioneer makes to the state of the network, via incoming requests, cancellations, and fulfillments. The settlement contracts also allows users to withdraw their funds directly from Ethereum and manage staking.
Because the auctioneer service is responsible for processing requests and proof fulfillments, users face a real-time experience with low latency. The settlement contract ensures the verifiability of the network and the security of user deposits. In particular, the auctioneer does not custody any user funds. Funds live on Ethereum, where they can be withdrawn directly by the user.
Auctioneer Service and Verifiable Database
The network makes use of a backend architecture that can allow anyone to independently verify updates of balances and proof fulfillments made in the network with the performance of a normal web application. The auctioneer service is the main actor that holds user state and periodically posts proofs of state updates to Ethereum. The auctioneer service is composed of two pieces:
-
A verifiable database that stores user balances, pending proof requests, and proof fulfillments. This database is made commitment-friendly via Merkle proofs of read and write operations that are posted to Ethereum.
-
A prover that reads from the database and computes a ZK proof of the new state of the network. The prover is composed of an SP1 program that contains the state transition function of the network. The state transition function tracks balance updates, proof assignments, and proof fulfillments. The prover then executes and generates proofs of this program and periodically settles these proofs on Ethereum, which can be used by anyone to independently verify the state of the network.
Data Availability Layer
The network currently ephemeral storage to store proof request data; as on-chain data availability becomes increasingly abundant, the network will move to persistent data storage. This data availability layer can store proof data and provide fast retrieval of the data for verifiation.
Ethereum Smart Contracts
Smart contracts on Ethereum provide a trust-minimized settlement layer for the Succinct Prover Network. These contracts handle:
- Deposits and withdrawals: Requesters deposit PROVE tokens to pay for proof requests. Requesters can easily withdraw their funds from Ethereum, even if the auctioneer is not live, enabling trust-minimized payments. To read more about how payments work, see the payments docs.
- Staking and slashing: Provers stake PROVE tokens in order to be eligible to participate in auctions in the network. Their stake acts as economic security to cover the costs of missed deadlines and griefing. If a winning prover fails to deliver a valid proof in time, part or all of their collateral may be slashed according to protocol rules. Provers can also have their stake delegated to them by third parties; to read more about how PROVE staking is implemented, see the staking docs.
- Payments and value distribution: Payments and fees for requesters and provers.
- Network governance: Enables decentralized governance of the parameters related to the vApp, staking, slashing, and auctions. To learn more about how the network is governed, see the governance docs.
These contracts ensure that economic guarantees for deposits, withdrawals, and slashing are enforced without relying on any centralized entity.