Skip to main content

Crate proof_cat

Crate proof_cat 

Source
Expand description

proof-cat: PLONKish bridge to sumcheck proving.

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 to the witness. The sumcheck protocol, Merkle commitment, multilinear polynomial type, and Fiat-Shamir transcript all live in proof_cat_core so they can be shared with STARK-flavored downstreams.

§Modules

  • [prove] – End-to-end proof generation and verification.
  • error – The hand-rolled Error enum.

Field types live in field_cat. Sumcheck, multilinear polynomial, Merkle tree, and transcript primitives live in proof_cat_core.

Re-exports§

pub use error::Error;
pub use prove::Proof;
pub use prove::Witness;
pub use prove::prove;
pub use prove::verify;

Modules§

error
Project-wide error type.
prove
End-to-end proof generation and verification.