Merged
Conversation
No content, just documentation for the lookup relation in the ECCVM Co-authored-by: notnotraju <raju@aztec-labs.com>
Context: To achieve a fully CIVC zero-knowledge proof, the size of the EccOpQueue must be capped to a fixed size (correlated to the maximum size of Translator). We achieve this by appending the last ecc op subtable at a fixed offset. In turn, this implies that the translator circuit builder has to handle a sequence of no-ops when building the accumulation trace to show the evaluation of the batched ecc op polynomial at the random point, performed non-natively within the Translator circuit, is consistent to what is produced by ECCVM. The check is done between the result from ECCVM and what is produced in the Translator circuit at `RESULT_ROW` (pointed to by a lagrange polynomial during proving and residing at the begining at Translator trace). In Translator, when encountering a genuine ecc op, the accumulation result is update at an even row and then copied across the odd row. In the case of no-ops, we want to not change the accumulation result but we still need to continue passing it across even and odd rows and assert this was done properly via relations to ensure RESULT_ROW contains the correct result.
wNAF relations audited, including a sketch of the argument of why the inductive logic works to constrain `round` (rather than range checking). (note that the bound of the degrees of the relations is 5 here, while range is in the range [0, 8), so this seems advantageous, especially as we need the multiset matching for other purposes.) --------- Co-authored-by: notnotraju <raju@aztec-labs.com>
…ate (#16854) Default behavior uses tmpfs mounted at /tmp with configurable size. Set USE_HOME_TMP=1 to mount $HOME/tmp instead of tmpfs. This helps to test the low meomry mode as it needs more storage to map memory to files.
This is a big current performance sink. Saves over a minute in prover/full Closes #15043
More cycle_group cleanup: - Simplify type aliasing based on the fact that cycle_group is only used to represent grumpkin points - Introduce shared method for nearly identical `unconditional_add`/`subtract` (fixes small performance bug) - Add `const` and eliminate use of `auto` in a number of places - Temporary ASSERT protecting against use of mixed-sized scalars in `batch_mul` which is ostensibly supported but broken, plus a test. (Will likely remove the option for mixed sized scalars in a follow on since its not working and not currently used) - Remove unnecessary duplicate computation of `scalar_slices` in `_variable_base_batch_mul_internal` (Note: this removes ~12 gates per scalar and is the reason for the VK change).
Collaborator
Author
|
🤖 Auto-merge enabled after 4 hours of inactivity. This PR will be merged automatically once all checks pass. |
This file contains hidden or 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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
BEGIN_COMMIT_OVERRIDE
chore: audit of lookup relations in the ECCVM (#16712)
feat: translator handles no-op range (#16628)
chore: audit wnaf relations in the ECCVM (#16573)
feat: add option to choose between tmpfs and $HOME/tmp in docker_isolate (#16854)
refactor(bb-prover): don't use --write_vk in yarn-project (#16834)
chore: cycle group cleanup (#16830)
END_COMMIT_OVERRIDE