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

assert(!qap_wit.coefficients_for_H[qap_wit.degree()-2].is_zero()) needed? #185

Open
meilof opened this issue Mar 23, 2021 · 0 comments
Open

Comments

@meilof
Copy link

meilof commented Mar 23, 2021

I am using libsnark with the Groth16 proofs, and it seems to work fine, except that in some small examples, the assertion

assert(!qap_wit.coefficients_for_H[qap_wit.degree()-2].is_zero());

in r1cs_gg_ppzksnark_prover fires. This happens in particular with a constraint system like this:

x*x=y
x*y=z
0*0=z-a

I saw that some other users experienced the same error: pepper-project/pequin#55

I was wondering if this assertion is actually needed. I quickly scanned through Groth16 and it does not seem to mention that the degree of H has to be exactly qap_wit.degree()-2 or that the input constraint systems need to satisfy some kind of property? Do you have an explanation of why this assertion is there or exactly for what kinds of constraint systems it occurs?

Thanks!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant