Expand description
proof-cat: sumcheck-based proving backend for plonkish-cat.
Given a ConstraintSet (the
output of plonkish_cat::compile) and a satisfying
Witness, this crate produces a
cryptographic Proof that the witness is
valid, without the verifier needing to know the witness.
§Architecture
plonkish_cat::compile(graph, path) -> ConstraintSet<F>
|
proof_cat::prove(constraints, witness)
|
Proof<F>
|
proof_cat::verify(constraints, proof)
|
Ok(true)Internally the proof uses the sumcheck protocol over multilinear polynomials, with a Merkle tree commitment for the witness values.
§Modules
field–BabyBearprime field and serialization trait.poly– Multilinear polynomial evaluation tables.transcript– Fiat-Shamir non-interactive transcript.commit– Merkle tree commitment scheme.sumcheck– Sumcheck prover and verifier.- [
prove] – End-to-end proof generation and verification.
Re-exports§
pub use error::Error;pub use field::BabyBear;pub use field::FieldBytes;pub use poly::MultilinearPoly;pub use poly::NumVars;pub use prove::Proof;pub use prove::Witness;pub use prove::prove;pub use prove::verify;pub use sumcheck::SumcheckClaim;pub use sumcheck::SumcheckProof;pub use sumcheck::sumcheck_prove;pub use sumcheck::sumcheck_verify;pub use transcript::Transcript;