Distributed Proof Generation

Distributed Proof Generation Specification on top of a consensus protocol like Ethereum

Overview

This specification defines a distributed proof generation protocol integrated with Ethereum (or any consensus protocol), introducing two distinct roles:

  • Validators: Existing Ethereum validators who participate in block consensus and verify submitted zk-proofs.
  • Provers: A new role, separate from validators, responsible for generating zk-proofs using GPUs. Provers are required to stake separately from Ethereum validators.

The system is designed to ensure timely, redundant, and verifiable proof generation through an incentivized multi-phase protocol (T1–T5).

Variables

// Numbers needs to be adjusted, they are just some initial ideas.PROVERS_PER_PROOF = 200PROVERS_PER_AGGPROOF = 5REWARD_FULL_PROOF_PROVER_T1 = 9000 // Reward received by each selected prover in T1 if a valid FullProof is submitted.REWARD_FULL_PROOF_SENDER_T1 = 50 // Reward received by the prover who sends a valid FullProof in T1.REWARD_FULL_PROOF_VALIDATOR_T1 = 1000REWARD_T1_VALIDATOR = 3PENALTY_T1_PROVER = -1REWARD_FULL_PROOF_PROVER_T2 = 8000REWARD_FULL_PROOF_SENDER_T2 = 40REWARD_FULL_PROOF_VALIDATOR_T2 = 900REWARD_T2_VALIDATOR = 3PENALTY_T2_PROVER = -3REWARD_PROVER_REUSING_T3 = 40REWARD_PROVER_REUSED_T3 = 40REWARD_PROVER_T3 = 50REWARD_VALIDATOR_T3 = 1PENALTY_PROVER_T3 = -1PENALTY_PROVER_NOTREUSED_T3 = -1REWARD_PROVER_REUSING_T4 = 30REWARD_PROVER_REUSED_T4 = 30REWARD_PROVER_T4 = 40REWARD_VALIDATOR_T4 = 1PENALTY_PROVER_T4 = -2PENALTY_PROVER_NOTREUSED_T4 = -1REWARD_PROVER_REUSING_T5 = 20REWARD_PROVER_REUSED_T5 = 20REWARD_PROVER_T5 = 40REWARD_VALIDATOR_T5 = 1PENALTY_PROVER_T5 = -4PENALTY_PROVER_NOTREUSED_T5 = -1REWARD_AGG_PROOF_PROVER = 50REWARD_AGG_PROOF_VALIDATOR = 3

Prover Selection and Assignment

  • For each new block, a deterministically random subset of provers is selected using a mechanism such as RANDAO.
  • The number of selected provers depends on the block’s gas usage:
num_provers_selected = Min(PROVERS_PER_PROOF, availableProvers / 2)
  • Each selected prover is randomly assigned a set of partial proofs (sub-tasks) to generate, distributed with a redundancy factor:
num_airs_assigned = (num_of_partial_proofs / num_provers_selected) * redundancy_factor
  • The assigned partial_proofs of each selected prover are determined random-deterministically after the count & plan phase.
  • Provers with a strong history of valid submissions may have an increased (but bounded) probability of being selected in future rounds.
  • A prover may only be assigned to one proof at a time.

Multi-phase Proof Generation

T1: Challenge Commitment Phase

  • All selected provers must:

    • Commit to the signed challenge (e.g., a polynomial commitment of the sub-AIRs they are responsible for constructing).
    • Optionally submit a full proof.
  • Only one transaction per prover is allowed. The proof must include the prover’s public key as a public output to prevent proof stealing.

Incentives:

  • If a valid full proof is submitted in T1:

    • REWARD_FULL_PROOF_PROVER_T1 for each selected prover.
    • REWARD_FULL_PROOF_VALIDATOR_T1 for the validator.
    • REWARD_FULL_PROOF_SENDER_T1 extra for the prover submitting it.
  • Otherwise:

    • REWARD_T1_VALIDATOR × valid commitments for validators.
    • PENALTY_T1_PROVER for provers who fail to commit.

T2: Partial Proof Submission Phase

  • All selected provers must:
    • Submit their partial proof, referencing the challenges from T1.
    • Optionally submit a full proof.

Incentives:

  • If a valid full proof is submitted:

    • REWARD_FULL_PROOF_PROVER_T2 for each selected prover.
    • REWARD_FULL_PROOF_VALIDATOR_T2 for validators.
    • REWARD_FULL_PROOF_SENDER_T2 extra for the submitting prover.
  • Otherwise:

    • REWARD_T2_PROVER for provers submitting valid partial proofs.
    • PENALTY_T2_PROVER for failed submissions.
    • REWARD_T2_VALIDATOR × valid partials for validators.

T3: Full Proof Aggregation Phase

  • Any prover may submit a full proof, including a BloomHash summarizing reused partial proofs.

Rewards:

  • REWARD_PROVER_REUSING_T3 × reused partials
  • REWARD_PROVER_REUSED_T3 × times reused by others
  • PENALTY_PROVER_NOTREUSED_T3 × times not reused by others
  • If many valid full proofs are submitted, the above rewards are averaged among them.
  • REWARD_PROVER_T3 for the submitting prover.
  • REWARD_VALIDATOR_T3 × valid full proofs
  • PENALTY_PROVER_T3 for non-participation.

T4 / T5: Fallback Aggregation Phases

  • If T3 fails to finalize a valid proof:
    • Enter T4, then T5 if needed.
    • Retry with the same or new prover set (if T5 fails).
    • Rewards/Penalties are as in T3 but adjusted (decreased/increased) by a defined percentage.

Extension for Multiple Sub-blocks (Gigagas)

  • The number of sub-blocks is limited by system caps and prover availability.
  • One prover set is assigned per sub-block. The protocol above applies independently per sub-block.
  • A group of PROVERS_PER_AGGPROOF provers is also selected to aggregate sub-blocks into a full block.

In T1:

  • Selected provers may submit an AggProof for the block.

Incentives:

  • REWARD_AGG_PROOF_PROVER per aggregator prover.
  • REWARD_AGG_PROOF_VALIDATOR per validator including an AggProof.

Source
Disclaimer: The content above is only the author's opinion which does not represent any position of Followin, and is not intended as, and shall not be understood or construed as, investment advice from Followin.
Like
Add to Favorites
Comments