Crate snarkvm_polycommit[−][src]
Expand description
A crate for polynomial commitment schemes.
Re-exports
pub use data_structures::*;
pub use error::*;
Modules
Data structures used by a polynomial commitment scheme.
Errors pertaining to query sets.
The core [KZG10] construction.
Polynomial commitment scheme from [KZG10] that enforces strict degree bounds and (optionally) enables hiding commitments by following the approach outlined in [CHMMVW20, “Marlin”].
A random number generator that bypasses some limitations of the Rust borrow checker.
Polynomial commitment scheme based on the construction in [KZG10], modified to obtain batching and to enforce strict degree bounds by following the approach outlined in [MBKM19, “Sonic”] (more precisely, via the variant in [Gabizon19, “AuroraLight”] that avoids negative G1 powers).
Macros
Helper macro to forward all derived implementations to the ToBytes and FromBytes traits
Structs
A proof of satisfaction of linear combinations.
An allocated version of Evaluations
.
A labeled point variable, for queries to a polynomial commitment.
An allocated version of LinearCombination
.
A collection of random data used in the polynomial commitment checking.
Stores a polynomial in coefficient form.
An allocated version of QuerySet
.
Enums
A coefficient of LinearCombination
.
Traits
Describes the interface for a gadget for a PolynomialCommitment
verifier.
Describes the interface for a polynomial commitment scheme that allows
a sender to commit to multiple polynomials and later provide a succinct proof
of evaluation for the corresponding commitments at a query set Q
, while
enforcing per-polynomial degree bounds.
Define the minimal interface of prepared allocated structures.
Functions
Evaluate the given polynomials at query_set
.
Type Definitions
Evaluations
is the result of querying a set of labeled polynomials or equations
p
at a QuerySet
Q
. It maps each element of Q
to the resulting evaluation.
That is, if (label, query)
is an element of Q
, then evaluation.get((label, query))
should equal p[label].evaluate(query)
.
QuerySet
is the set of queries that are to be made to a set of labeled polynomials/equations
p
that have previously been committed to. Each element of a QuerySet
is a (label, query)
pair, where label
is the label of a polynomial in p
, and query
is the field element
that p[label]
is to be queried at.