Uses proof_system crate and implements type serialization for net comms #1
Open
gpestana wants to merge 6 commits intoimeckler:masterfrom
Open
Uses proof_system crate and implements type serialization for net comms #1gpestana wants to merge 6 commits intoimeckler:masterfrom
gpestana wants to merge 6 commits intoimeckler:masterfrom
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The goal of this PR is to refactor current PoC from using
marlintoproof_system, which implements serde serialization out of the box.The steps taken so far have been (split by commits):
Note: Currently using
1.56.0-x8664-apple-darwinCommit 1 -- Update Cargo.toml to use proof_system and latest zexe
Remove all dependencies from
marlin(submodule) and replace them with impls onproof_systemcrate.Remove
5_wiresnaming from plonk dlog and circuit dependencies and useproof_systemimplementationResult: 80 compilation errors due to different APIs between
marlinandproof_systemand latestzexe.Commit 2 -- Fix dependencies names
Result: About 70 compilation errors due to most of
proof_systemdependencies relying on a different algebra implementation.Commit 3 -- Replace algebra dependencies for ark and mina curves dependencies
Due to PR refactor zexe -> arkworks renaming imports, replace all algebra instances in
bbaimplementation forark_*when using cratescircuits/plonk,curves,dlog/commitment,dlog/plonk,groupmap,oracle. In addition, usemina::curvesinstead ofalgebracurves.Result: trait
CommitmentFieldis not implemented forark_ec::AffineCurve, as required byplonk_protocol_dlog::index::IndexCommit 4 -- Add trait bounds to high level types
Commit 5 -- Use algebra_core::FftField instead of ark_ff in fft.rs
Result:
ProverCommitmentsstructure changed from :However, kimchi prover is similar to used plonk_5_wires
However, kimchi circuit gate enum is similar to used plonk_5_wires
CompleteAddinstead ofAdd, etcCommit 6 -- Use kimchi PLONK
Current state:
@imeckler, since you have a much deeper understanding of the crates used, do you have tips/guidance on how to proceed from here? Thanks!