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

Commit-carrying SNARK #14

Open
weikengchen opened this issue Dec 13, 2020 · 0 comments
Open

Commit-carrying SNARK #14

weikengchen opened this issue Dec 13, 2020 · 0 comments
Labels
T-design Type: discuss API design and/or research

Comments

@weikengchen
Copy link
Member

This issue describes the branch commit-carrying.

According to LegoSNARK, Groth16 is a commit-carrying SNARK with weak binding. With a small modification below, Groth16 can become a full-fledged commit-carrying SNARK. Note that Groth16 is commit-carrying, but not commit-and-prove because the commitment's parameters are relation-dependent.

The modification is as follows:

  • Augment the QAP so that the first n columns of the A matrices have a rank at least n, where n is the number of input elements. This step is done by simply adding n+1 constraints. A discussion is here: https://github.com/arkworks-rs/groth16/blob/commit-carrying/src/augmented_qap.rs#L1
  • Modify the data structures of proving keys and verifying keys accordingly.
  • Modify the proof generation and verification accordingly.

This issue is, very likely, not going to be merged into the master branch since its interface is drastically different.

@Pratyush Pratyush added the T-design Type: discuss API design and/or research label Sep 9, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
T-design Type: discuss API design and/or research
Projects
None yet
Development

No branches or pull requests

2 participants