Closed tumberger closed 1 year ago
@tumberger That makes sense. Can you make a PR that upstreams the fix in your fork to gnark?
@tumberger That makes sense. Can you make a PR that upstreams the fix in your fork to gnark?
Drafted a quick PR that ports your suggestions + some consolidating/perf work on the pairing side.
Great, sounds good to me! Anything you'd like me to still add?
Great, sounds good to me! Anything you'd like me to still add?
I think we're good to close this issue. Thanks!
Following the PR #561 from @gbotrel;
Problem
Currently, the Groth16 verifier for recursion over 2-Chains of elliptic curves only exposes
Verify()
andAssign()
. Assigning the proof requires access to the internal package in the master branch.561 addresses this issue to make third party workflow and integration easier.
However, from a developer perspective, it's still required to work with curve specific variables.
Solution
I'd suggest additionally exposing an API for proof assignment, as follows:
This would allow for simple usage of the generic
Groth16
object rather than curve specific libraries. I believe that this would improve the usability of the provided tools for recursion in other libraries. It also removes the need for the developer to understand Groth16 inner workings.Forked the library and made the quick fix here. Also, added
FillG1K
to remove the need to use any curves specific library, i.e.groth16_bls12377
.Proposition
In summary, instead of exposing
do sth like