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

Support batch verification of JoinSplit Groth16 proofs #3127

Closed
conradoplg opened this issue Dec 1, 2021 · 4 comments
Closed

Support batch verification of JoinSplit Groth16 proofs #3127

conradoplg opened this issue Dec 1, 2021 · 4 comments
Assignees
Labels
C-enhancement Category: This is an improvement I-slow Problems with performance or responsiveness
Projects

Comments

@conradoplg
Copy link
Contributor

Motivation

For #322 we added JoinSplit on Groth16 verification, but without batch support. The reason for this is that zcash_proofs does not return the verification key in a format suitable for batching (we need a VerificationKey, and not a PreparedVerificationKey).

Add support to batch verification, probably by submitting a PR to zcash_proofs to make it return the JoinSplit Groth16 verification key as required. See discussion

Specifications

Designs

Related Work

Follow up to #322

@conradoplg conradoplg added C-enhancement Category: This is an improvement S-needs-triage Status: A bug report needs triage labels Dec 1, 2021
@zfnd-bot zfnd-bot bot added this to To Do in 🦓 Dec 1, 2021
@mpguerra
Copy link
Contributor

@conradoplg
Copy link
Contributor Author

I believe this is is nice-to-have but not that important right now:

  • I suspect most JoinSplits are pre-Canopy and thus don't need to be verified due to the checkpoint verifier
  • The performance gain with the remaining JoinSplits won't be too great since there won't be too many of them.

I'm not 100% sure though. In any case it seems this could be moved out of the sprint if needed.

@teor2345
Copy link
Contributor

teor2345 commented Dec 13, 2021

  • I suspect most JoinSplits are pre-Canopy and thus don't need to be verified due to the checkpoint verifier

If we want to skip even more JoinSplits, we can increase the default checkpoint height to just before NU5 activation. (So we don't have to worry about the testnet NU5 rollback.)

@mpguerra mpguerra removed the S-needs-triage Status: A bug report needs triage label Dec 15, 2021
@conradoplg conradoplg added the I-slow Problems with performance or responsiveness label Mar 15, 2022
@conradoplg
Copy link
Contributor Author

Tracked in #3153. Can be done if we detect it's a bottleneck.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
C-enhancement Category: This is an improvement I-slow Problems with performance or responsiveness
Projects
No open projects
🦓
  
To Do
Development

No branches or pull requests

3 participants