Skip to content

[TRACKER]: Implement proof aggregation #2551

@bkolad

Description

@bkolad

Description

The goal of this workstream is to implement a circuit for proof aggregation.
The work will be divided into two parts:

  1. Implement proof aggregation as a standalone circuit.
  2. Integrate it into the prover-service workflow.

Checklist

1. Implement proof aggregation as a standalone circuit

To develop the aggregated circuit, we will first generate a set of per-block proofs, store them in files, and then use those proofs as inputs for aggregation (only for the development phase).

  • Examine ProverClient::builder().mock() usage in SP1 adapter (I think this should be controlled by a separate flag)
  • Updated the SP1Host and SP1Verifier implementations to support SP1 v6.
  • Update test_proof_generation to work with SP1
  • Update test_proof_generation to save generated proofs to files along with relevant metadata
  • Migrate crates/full-node/sov-aggregated-proof to SP1
  • Update sov-aggregated-proof to aggregate the proofs saved by test_proof_generation
  • Port the following algorithm to SP1:
    https://github.com/Sovereign-Labs/sovereign-ibc-types/blob/main/src/aggregated_proof_verifier.rs
  • Extract the generic part of the circuit to rollup-interface
  • Implement the above algorithm in sov-aggregated-proof.

2. Integrate proof aggregation into the prover-service workflow

Once the standalone proof aggregation is working in sov-aggregated-proof, integrate the circuit in prover-service

  • The proving service currently runs as an internal process within the full node. Consider separating it into its own node. In that setup, the proving service would act as an HTTP client communicating with an external proving server.
  • TODO Create subissues for the above.
  • Resolve the following issue:
    https://github.com/Sovereign-Labs/sovereign-sdk-wip/issues/316

Relevant code from the old repository

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions