Expand description
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).
Structs§
- BatchLC
Proof - A proof of satisfaction of linear combinations.
- Batch
Proof - Evaluation proof at a query set.
- Committer
Key CommitterKey
is used to commit to, and create evaluation proofs for, a given polynomial.- Committer
Union Key CommitterUnionKey
is a union ofCommitterKey
s, useful for multi-circuit batch proofs.- Labeled
Commitment - A commitment along with information about its degree bound (if any).
- Labeled
Polynomial - A polynomial along with information about its degree bound (if any), and the maximum number of queries that will be made to it. This latter number determines the amount of protection that will be provided to a commitment for this polynomial.
- Labeled
Polynomial With Basis - Linear
Combination - A labeled linear combinations of polynomials.
- Polynomial
Info - SonicKZ
G10 - Polynomial commitment based on [KZG10], with degree enforcement and batching taken from [MBKM19, “Sonic”] (more precisely, their counterparts in [Gabizon19, “AuroraLight”] that avoid negative G1 powers). The (optional) hiding property of the commitment scheme follows the approach described in [CHMMVW20, “Marlin”].
Enums§
- LCTerm
- A term in a linear combination.
- Polynomial
With Basis
Functions§
- evaluate_
query_ set - Evaluate the given polynomials at
query_set
.
Type Aliases§
- Commitment
Commitment
is the commitment for the KZG10 scheme.- Evaluations
Evaluations
is the result of querying a set of labeled polynomials or equationsp
at aQuerySet
Q
. It maps each element ofQ
to the resulting evaluation. That is, if(label, query)
is an element ofQ
, thenevaluation.get((label, query))
should equalp[label].evaluate(query)
.- Polynomial
Label - Labels a
LabeledPolynomial
or aLabeledCommitment
. - Query
Set QuerySet
is the set of queries that are to be made to a set of labeled polynomials/equationsp
that have previously been committed to. Each element of aQuerySet
is a(label, query)
pair, wherelabel
is the label of a polynomial inp
, andquery
is the field element thatp[label]
is to be queried at.- Randomness
Randomness
is the randomness for the KZG10 scheme.- Universal
Params UniversalParams
are the universal parameters for the KZG10 scheme.