Pomegra Wiki

Proof Aggregation

A proof aggregation is a cryptographic process that combines many zero-knowledge proofs into one smaller proof, which can be verified on-chain in roughly the same gas cost as verifying a single proof. This amortises the verification cost across all aggregated proofs, reducing per-transaction on-chain fees for zero-knowledge rollups.

The verification cost problem

In a typical zero-knowledge rollup, the zkVM generates one proof per block (say, 1,000 transactions). That proof is posted to Ethereum, verified by a smart contract, and costs roughly 300,000 gas to verify. Across 1,000 transactions, that’s about 300 gas of on-chain verification per transaction—a fixed overhead.

But this cost doesn’t scale with throughput. If the rollup generates blocks faster (say, every second), it posts more proofs, paying the 300,000 gas per block repeatedly. If the rollup is truly high-throughput—thousands of transactions per second—it might post proofs constantly, and the total on-chain verification cost becomes the bottleneck.

Proof aggregation solves this by batching: instead of posting a proof every block, the rollup batches multiple blocks’ proofs (say, 10 blocks worth) and aggregates them into a single proof. That single aggregated proof still costs ~300,000 gas to verify on-chain, but it now covers 10,000 transactions instead of 1,000. Per-transaction verification cost drops to 30 gas.

The user-facing effect: lower L2 fees, because the sequencer amortises the fixed on-chain cost across more transactions.

How aggregation works mathematically

Proof aggregation relies on the recursive structure of zero-knowledge proofs. A SNARK proof says: “I computed some function F and got output Y.” A recursive SNARK can prove: “I checked other proofs and they were all valid.”

Here’s the flow:

  1. Proof generation (off-chain): The zkVM generates proofs for blocks 1–10. Each proof is a SNARK or STARK showing “block N transitioned state correctly.”
  2. Aggregation (off-chain): An aggregator circuit takes all 10 proofs as input and generates a new proof saying: “All 10 of these proofs are valid.” This aggregation proof is itself a SNARK, just over a different computation.
  3. Verification (on-chain): A smart contract checks the aggregation proof. If it passes, all 10 block proofs are guaranteed valid.

The mathematics works because a SNARK can be designed to verify other SNARKs. The aggregator circuit doesn’t re-execute the blocks; it just checks the cryptographic validity of the previous proofs. This is efficient because verifying a proof is cheaper than re-executing the computation it represents.

The catch: the aggregation proof itself is still a SNARK (or STARK), so it still costs ~300,000 gas to verify on-chain. But it covers 10 original proofs, so the cost-per-original-proof drops by a factor of 10.

Recursion limits and aggregation depth

In theory, you could aggregate proofs forever: prove the aggregation proofs are valid, then aggregate those proofs, then aggregate those aggregations. In practice, recursion depth is limited by:

  1. On-chain verification complexity: Deeper recursion creates larger or more complex aggregation proofs, which can become expensive to verify. Most production systems keep recursion to 2–3 levels.
  2. Latency: Each aggregation level requires computation. Going N-deep adds N aggregation steps, increasing time-to-finality.
  3. Circuit size: The aggregator circuit must verify previous proofs, and each layer of recursion grows the circuit. Larger circuits are slower to prove.

Most deployed systems use one level of aggregation: transaction proofs → aggregated proof. Some research systems explore two levels (transaction proofs → intermediate proofs → final aggregated proof), but the latency and complexity tradeoff limits adoption.

Practical latency and user experience

Aggregation introduces a batching delay. Instead of finalising proof and posting it immediately (which happens in non-aggregated systems), the rollup waits to accumulate several blocks’ worth of proofs, then aggregates them.

For example, if Rollup X generates one proof per 15 seconds (one block per 15 seconds), a non-aggregated system posts a proof every 15 seconds. An aggregated system might wait 150 seconds (10 blocks), batch the proofs, aggregate, and post once. The user sees:

  • Without aggregation: Final on-chain confirmation in ~15 seconds (proof generation time) + Ethereum block time.
  • With aggregation: Final confirmation in ~150 seconds (batching) + proof generation time + Ethereum block time.

This latency is often acceptable because the block is still “finalized” on-chain (no rollback possible) even before the aggregation proof is posted. Only the final on-chain signature is delayed.

However, for applications requiring sub-second confirmation (like frequent-trading bots), the batching delay is unacceptable. Aggregation is a throughput lever, not a latency lever.

Gas savings and economics

The on-chain cost of aggregation proof verification is fixed at ~300,000 gas (depending on the aggregator circuit). The rollup amortises this across N transactions:

  • 100 transactions: ~3,000 gas per transaction (overhead).
  • 1,000 transactions: ~300 gas per transaction.
  • 10,000 transactions: ~30 gas per transaction.

For a rollup with average transaction size of ~200 bytes, posted to a data availability layer at ~1 wei/byte, the transaction cost is primarily data availability fees plus amortised verification cost. Aggregation cuts the verification overhead, making very cheap transactions economical.

This is why high-throughput rollups aggressively pursue aggregation: every order of magnitude reduction in per-transaction on-chain cost directly lowers user fees.

Challenges and limitations

Circuit complexity: Aggregator circuits are complex and security-critical. A bug in the circuit could allow invalid proofs to pass aggregation. Auditing and formal verification are essential.

Hardware dependency: Aggregating many proofs requires computational resources. A rollup must run powerful hardware to aggregate quickly. This concentrates proving power and creates a supply-chain risk (see zkVM Architecture).

Proof system constraints: Not all proof systems are equally amenable to recursion. SNARKs are recursive but require trusted setups. STARKs avoid trusted setups but have larger proofs, making aggregation less efficient. Newer systems (like Binius) are exploring smaller fields and better recursion properties.

Finality delay: As noted, aggregation batches proofs, which delays finality. Some applications prefer immediate finality (even if on-chain verification cost is high) to aggregation’s batch latency.

Despite these tradeoffs, aggregation is increasingly standard in production zero-knowledge rollups. It directly improves scalability and user economics, which are the main selling points of L2s.

See also

Wider context

  • Rollup — broader L2 scaling context
  • Ethereum Blob — works with aggregation to amortise both proof and data costs
  • Blockchain Fundamentals — foundation concepts