aztec-packages icon indicating copy to clipboard operation
aztec-packages copied to clipboard

feat: blob batching methods

Open MirandaWood opened this issue 9 months ago • 0 comments

Note: merging ts methods into this branch because many nr tests use the same inputs and process as the ts versions. It's useful (to me!) to have them side by side in the same branch.

Hopefully it's not too difficult to review - the new unreviewed files in this PR are .nr code only, ignore all .ts. If that's not useful, I can recommit the ts files to mw/blob-batching, leaving only the nr ones here.

TODOs:

  • [x] Remove copied/pasted fns by bumping bigcurve and noir-protocol-circuits to bignum 0.7.0 (blocked by bignum/bigcurve)
  • [x] Remove visibility warnings (blocked by mostly bigcurve, as required imports are marked as private in the repo) EDIT 16.5: my bigcurve branch mw/bump temporarily resolves these
  • [ ] Explore whether it's safe to use the output of a BN Poseidon2 hash as part of gamma (the 'challenge' for a random linear combination on BLS12 elts) - #13608 (not blocked, but requires some cryptography thinking)
  • [x] Decide whether to keep finalize as a separate fn once accumulators are complete (the only thing finalize actually does is hash the final gamma_acc with z).

TODOs which can only be completed once batching is integrated:

  • [ ] Remove temp pubs all over the place
  • [ ] Remove old BlobCommitment type and replace entirely with the properties of BatchingBlobCommitment

PR Stack

  • [ ] mw/blob-batching <- main feature
  • [x] ^ mw/blob-batching-bls-utils <- BLS12-381 bigcurve and bignum utils (noir)
  • [ ] ^ mw/blob-batching-bls-utils-ts <- BLS12-381 bigcurve and bignum utils (ts)
  • [ ] ^ mw/blob-batching-integration <- Integrate batching into noir protocol circuits
  • [ ] ^ mw/blob-batching-integration-ts-sol <- Integrate batching into ts and solidity

MirandaWood avatar Apr 15 '25 19:04 MirandaWood