-
Notifications
You must be signed in to change notification settings - Fork 14
Open
Description
Given requirements for interoperating between axiom gate chips and standard halo2 chips (given with example of keccak rather than StandardPlonk, but same process):
- Do halo2-lib computations, make calls to KeccakChip to have keccak do witness generation, return all witness cells to be assigned in keccak part of the arithmetization
- Actually assign keccak part in vanilla halo2, returning AssignedCells: https://github.com/axiom-crypto/axiom-eth/blob/6d2a4acf559a8716b867a715f3acfab745fbad3f/src/keccak/mod.rs#LL751C35-L751C35
- Need to do some tricks to convert AssignedCells to AssignedValues (basically just some way to make copy constraints between halo2-lib and keccak cells): https://github.com/axiom-crypto/axiom-eth/blob/6d2a4acf559a8716b867a715f3acfab745fbad3f/src/keccak/mod.rs#L423
- Now assign halo2-lib AssignedValues into vanilla halo2, where it already has access to the assigned keccak cells, so it can do copy constraints appropriately: https://github.com/axiom-crypto/axiom-eth/blob/6d2a4acf559a8716b867a715f3acfab745fbad3f/src/keccak/mod.rs#LL778C18-L778C18
Likely requires a custom thread builder!
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels