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

Resolve "(de)serialization of preprocessing" #616

Open
wants to merge 9 commits into
base: main
Choose a base branch
from

Conversation

protoben
Copy link

Modify high-level Jolt SDK to allow preprocessing to be de/serialized and performed separately for prover/verifier

This PR implements the changes to the high-level Jolt API described in #585. The main features are as follows:

  • Separate steps for compilation of the guest program, preprocessing, and proving/verifying
  • Separate preprocessing types and generated functions for the prover and verifier
  • Implement CanonicalSerialize and CanonicalDeserialize for preprocessing, along with helper functions to save/read it in the target directory
  • Remove input/output from the proof and make verify take it as an argument directly (as discussed in the issue)

A couple of other points to mention:

  • Implementing CanonicalSerialize and CanonicalDeserialize on the preprocessing involved making a PR to ark-algebra to provide implementations of these for signed integers. That work will probably need to be merged into https://github.com/a16z/arkworks-algebra/ before this can be merged. I'll go ahead and make a PR for that. The arkworks PR is here: Implement CanonicalSerialize and CanonicalDeserialize for signed integers arkworks-rs/algebra#953
  • This PR separates the prover and verifier preprocessing, but it doesn't currently try to pare the verifier's preprocessing down to the minimum necessary. I wasn't sure how deep to go there, so it seemed best to limit the scope of this PR to API changes, and leave the latter for a separate PR.

Closes #585

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

Successfully merging this pull request may close these issues.

(de)serialization of preprocessing
1 participant