Context
The aggchain proof requires 2 vkey hash:
- range vkey commitment
- aggregation vkey hash
Both referring to the FEP verified within the aggchain proof.
Before #183
- those vkey hash were hardcoded within the aggchain proof program, hence completely tied to the aggchain proof vkey/version.
After #183
- the vkeys are now in the aggchain proof public inputs, so no need to be hardcoded anymore.
Question
- How do we want to handle those vkey hashes?
Suggestions from @Freyskeyd:
I see multiple options here:
- Either we stick to have this vkey as constant in the docker image, meaning that if they're changing, we need to rebuild the docker image even if there are no changes
- Do a sanity check at the start of the
aggkit-prover to assert that we're aligned with the L1 vkeys by calling the contract that hold them. The vkeys are still "constant" in the docker image, and it's need to be rebuilt every time one of those key changes.
- For every aggchain-proof that we're generating, we retrieve those vkey hashs from L1 contract to use them, making the
aggkit-prover not dependant of those vkey
WDYT?
Originally posted by @Freyskeyd in #183 (comment)
Context
The aggchain proof requires 2 vkey hash:
Both referring to the FEP verified within the aggchain proof.
Before #183
After #183
Question
Suggestions from @Freyskeyd: