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

Create separate VerifyingKey structures for pre- and post-optimisation circuits #643

Open
str4d opened this issue Aug 24, 2022 · 2 comments

Comments

@str4d
Copy link
Contributor

str4d commented Aug 24, 2022

The current VerifyingKey represents the post-optimisation circuit; however it does so in a way that isn't reproducible without access to the circuit. This causes issues with e.g. defining a stable serialization format (#449).

Separately, we also need a well-defined VerifyingKey suitable for passing into a circuit gadget for verifying a proof (#435, #436).

We should refactor the VerifyingKey structure to separate pre- and post-optimisation concerns, to make it very clear what is needed in the latter case and enable us to start defining more concretely how we want to encode it in the various consuming contexts.

@str4d
Copy link
Contributor Author

str4d commented Jun 6, 2023

We made some exploratory code changes in Halo 2 Office Hours today, to figure out how to approach the post-optimisation VerifyingKey structure. The resulting changes are in #781, along with the conclusions we drew from them about how the real refactor should work.

@daira
Copy link
Contributor

daira commented Jul 6, 2023

The VerifyingKey structure should include the number of public input elements.

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

2 participants