aztec-packages
aztec-packages copied to clipboard
feat: blob batching methods
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-circuitsto 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/bumptemporarily 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
finalizeas a separate fn once accumulators are complete (the only thing finalize actually does is hash the finalgamma_accwithz).
TODOs which can only be completed once batching is integrated:
- [ ] Remove temp
pubs all over the place - [ ] Remove old
BlobCommitmenttype and replace entirely with the properties ofBatchingBlobCommitment
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