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

Load KZG setup parameters from file #270

Open
huitseeker opened this issue Jan 17, 2024 · 0 comments
Open

Load KZG setup parameters from file #270

huitseeker opened this issue Jan 17, 2024 · 0 comments
Assignees
Labels
help wanted Extra attention is needed

Comments

@huitseeker
Copy link
Member

This is a copy of microsoft/Nova#270

With #145, and #172, #206, #207, #231, #242, #260, we've added MLKZG & Zeromorph support, which depend on a universal trusted setup. We have a weirder shape of the Universal trusted setup struct :
https://github.com/lurk-lab/arecibo/blob/aaa13396cdb8776b11a68e7bccce4654399e52c8/src/provider/non_hiding_kzg.rs#L24-L33

.. when compared to upstream nova, to accommodate the shape required by Zeromorph. It's expected we would simply make the lenght of the powers_of_h field equal to 2 when using a garden-variety KZG trusted setup, which would make it work just as well (see the upstream struct for comparison).

Note the setup is "as is" in production: if deserialized and then found to be lacking (e.g. at the call of a trim function that generates proof-specific ProverKey, VerifierKey and finds the number of bases insufficient), there is no remedy but an irrecoverable error.

Note

We can use our knowledge of abomonation/deabomonation, along with serialziation, in order to make the loading of these parameters faster.

Tip

We could also perform the same thing for Pedersen public parameters, since they are generated deterministically, and a cached file would be a quality of life improvement.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
help wanted Extra attention is needed
Projects
None yet
Development

No branches or pull requests

2 participants