Skip to main content

Crate proof_cat

Crate proof_cat 

Source
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

  • fieldBabyBear prime 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;

Modules§

commit
Polynomial commitment schemes.
error
Project-wide error type.
field
Field implementations and serialization.
poly
Polynomial representations.
prove
End-to-end proof generation and verification.
sumcheck
The sumcheck interactive proof protocol.
transcript
Fiat-Shamir transcript for non-interactive proofs.