Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ECCVM prover optimizations #1249

Open
iakovenkos opened this issue Feb 11, 2025 · 0 comments
Open

ECCVM prover optimizations #1249

iakovenkos opened this issue Feb 11, 2025 · 0 comments

Comments

@iakovenkos
Copy link
Contributor

iakovenkos commented Feb 11, 2025

  • Commitment phase optimizations: ECCVM wires come from 3 different transcripts, and their sizes are generally bounded by the sizes of the corresponding transcripts. This could be used to reduce the commitment time.
  • Sumcheck optimizations:
    • Several relations use the max upper bound on length instead of actual subrelations' lengths. E.g. TranscriptRelation, which has 25 subrelations. Now each subrelation length is set to 8, most of the subrelations are of lower degrees. Use shorter accumulators, re-use computed values, and so on.
    • Improve extend_edges logic: ideally, every entity is extended to the corresponding subrelation's length. This would save a lot of unnecessary ops. Although extend_edges is cheap on its own, if we are extending 100 entities to length 24 all the time, it translates into $24\times 100 \times$ circuit_size muls per sumcheck run. In the case of ECCVM it is more painful than in other flavors, because of the high degree in SetRelation (23), which is not needed in the most relations' subrelations.
    • Investigate skipping: right now, the relations are quite chunky, and producing a skipping condition in, say, TranscriptRelation, leads to a system of linear equations that has no solutions.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant