aztec-packages
aztec-packages copied to clipboard
feat: Prepare protocol circuits for batch rollup
First run at creating new rollup circuits for batch block proving (see this PR for details).
~Please note the e2e tests will fail miserably as the circuits are not yet linked up to the sequencer/prover/L1! Pushing for visibility.~
EDIT: Added support for verifying block-root proofs on L1. Though we don't currently have an L1 verifier (so tests would pass whatever public inputs we had), the method now accepts the new inputs until we have batch rollups integrated.
Changes complete:
- Rename
root
toblock_root
and change outputs - Add
block_merge
circuit and associated types/structs - Add new
root
circuit and associated types/structs (NB Github doesn't realise that old root -> block_root because of this new circuit, so the comparison is hard to read!) - Added new tyes ^ to
circuits.js
and useful methods tobb-prover
,circuit-types
, andnoir-protocol-circuits-types
- Made minor changes to
prover-client
(orchestrator.ts
andblock-building-helpers.ts
) to use the newblock_root
public outputs -
Rollup.sol
now verifies ablock_root
proof and storesblockHash
-- TODOs:
- When adding fees in a
block_merge
orroot
, merge fees with the same recipient - Miranda - ~Edit publisher and L1 to accept a
block_root
proof with new public inputs (for testing, so e2es will pass)~ Complete! - Teach the prover/sequencer to prove many blocks and submit a
root
proof - Miranda + Phil's team? - ~Make final L1 changes to verify batch proofs~ - Complete! Currently not tested with real solidity verifier, but bb verifier passes