Skip to main content

Crate p3_commit

Crate p3_commit 

Source
Expand description

§p3-commit

A framework for cryptographic commitment schemes, including non-hiding variants. This crate defines the traits that connect proof systems to their commitment backends.

Key items:

  • Pcs / MultilinearPcs — polynomial commitment scheme interfaces used by the STARK provers and verifiers
  • Mmcs — “Mixed Matrix Commitment Scheme”, a vector-commitment abstraction over batches of matrices of differing heights
  • PolynomialSpace and TwoAdicMultiplicativeCoset — evaluation-domain abstractions
  • periodic — periodic-column evaluation helpers
  • testing — mock instantiations for downstream tests

Implementations live in p3-merkle-tree (Mmcs), p3-fri, p3-circle and p3-whir (Pcs).

Part of Plonky3, dual-licensed under MIT and Apache 2.0.

Modules§

testing

Structs§

BatchOpening
A Batched opening proof.
BatchOpeningRef
A reference to a batched opening proof.
ExtensionMmcs
A wrapper to lift an MMCS from a base field F to an extension field EF.
LagrangeSelectors
Given a PolynomialSpace, S, and a subset R, a Lagrange selector P_R is a polynomial which is not equal to 0 for every element in R but is equal to 0 for every element of S not in R.
PeriodicLdeTable
Compact storage for periodic column values on the LDE domain.

Traits§

BuildPeriodicLdeTableFast
Optional fast path for building the periodic LDE table (e.g. via coset LDE). Implement for PCS backends that can avoid evaluating at every quotient point.
Mmcs
A “Mixed Matrix Commitment Scheme” (MMCS) is a generalization of a vector commitment scheme.
MultilinearPcs
Polynomial commitment scheme for multilinear polynomials over the Boolean hypercube.
Pcs
A polynomial commitment scheme, for committing to batches of polynomials defined by their evaluations over some domain.
PeriodicEvaluator
Evaluates periodic polynomials for a given domain system.
PolynomialSpace
Fixing a field, F, PolynomialSpace<Val = F> denotes an indexed subset of F^n with some additional algebraic structure.

Type Aliases§

OpenedValues
OpenedValuesForMatrix
OpenedValuesForPoint
OpenedValuesForRound
Val