Introduction


Motivations

In previous upgrades we tried to lower the costs of committing data to L1, by supporting data-availability via an EIP-4844 blob-carrying transaction and furthermore encoding (compressing) the data being made available. In the next planned upgrade, our goal is to lower verification costs.

Currently every batch's proof is verified on-chain (L1 EVM) which finalizes the state root post-batch. A batch already aggregates proofs from multiple chunks, essentially not requiring each of those chunk proofs to be verified on-chain. We are now pushing these verification costs even lower by recursively bundling those batches into a single bundle that can be verified on-chain. As opposed to the aggregation scheme used from a list of chunks to a single batch (where we have an upper bound to the number of chunks we can aggregate), the current recursive aggregation scheme is not bound by such a limit to the number of batches we can aggregate. Instead, the number of rounds of recursion can solely be defined by the latency we wish to achieve on L1 for those batches.

Terminology

In terms of multiple layers at which proofs are generated, we have:

Scope

Pull Request including all the circuit-side code changes listed below: https://github.com/scroll-tech/zkevm-circuits/pull/1352