-
Notifications
You must be signed in to change notification settings - Fork 326
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
feat: translation evaluations: refactor + soundness fix (#12051)
In the ECCVM, we have a special sub-protocol to prove the univariate evaluations of `Op`, `Px`, `Py`, `z1`, and `z2`. The corresponding logic used to be un-rolled in `execute_pcs_rounds()` and `verify_proof()`. I isolated this logic into separate methods for the following reasons: * It improves the readability of the main methods * This sub-protocol will be saturated by extra steps needed for ZK translation evaluations * There's a cleaner correspondence between the Prover and Verifier steps The following Goblin soundness issue has been discovered: * The unvariate evaluation challenge `evaluation_challenge_x` sampled in ECCVM would be propagated from the `ECCVMProver` to the `TranslatorProver` and **sent** to the `TranslatorVerifier` meaning that a malicious `GoblinProver` was free to send any field element and choose `accumulated_result`. * Moreover, the extra batching challenge sampled **after** (by `ECCVMProver`/`TranslatorVerifier`) the translation evaluations proof seemed redundant and would have blocked the further changes. Namely, in the fix being implemented, we must enforce that the batching challenge used to compute the batched claim is the batching challenge used by the Translator. * Now `TranslatorVerifier` retrieves `evaluation_challenge_x` and `batching_challenge_v` as class members of ECCVMVerifier.
- Loading branch information
1 parent
107c41c
commit 5359310
Showing
19 changed files
with
235 additions
and
160 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.