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

feat: implement Plonk verifier in-circuit #847

Closed
4 tasks done
ivokub opened this issue Oct 5, 2023 · 0 comments · Fixed by #880
Closed
4 tasks done

feat: implement Plonk verifier in-circuit #847

ivokub opened this issue Oct 5, 2023 · 0 comments · Fixed by #880
Labels
new feature P1: High Issue priority: high

Comments

@ivokub
Copy link
Collaborator

ivokub commented Oct 5, 2023

With #840 it becomes easier to implement generic Plonk verifier in-circuit for emulated and native fields (2-chains).

This requires:

  • hash-to-field. Hash to field is used to map the commitment as a public input. Right now we use the standard hash-to-field but this is too expensive as uses SHA2 internally. We should consider using MiMC directly.
  • for that, we need emulated MiMC hashing.
  • we also compute a Fiat-Shamir challenge which right now is hardcoded with SHA2. We need to make the hash function for the FS and hash-to-field configurable. This means that we need to add prover/verifier options in gnark which allows to change the implementations.
  • add batch KZG verification to gadget. We have implemented KZG verification in refactor: generic KZG and Groth16 verifier #840, but for a single instance. Using folding it is possible to make the verification more efficient.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
new feature P1: High Issue priority: high
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant