Paper
Constant-Size Commitments to Polynomials and Their Applications
Authors: Aniket Kate, Gregory M. Zaverucha, and Ian Goldberg
Date: 2010
0. Paper vs Practice
Symmetric & Asymmetric Pairing Types
- In the paper, it uses symmetric pairing (Type 1)
- In practice, asymmetric pairing is used for more efficiency
- KZG supports both symmetric and asymmetric pairing
Pairing & Bilinear Group
- The most popular family of elliptic curves for pairings is BLS (e.g. BLS12-381)
- Pairing operates over prime order subgroups of composite order curve groups
- Although a bilinear group doesn’t specify an elliptic curve, an elliptic curve is the only method we know of constructing a bilinear group
Additive Notation vs Multiplicative Notation
- KZG commitment actually uses an Elliptic Curve Group, so in reality, it actually uses an additive group, which implies additive notation might be more suitable
- However, the KZG paper uses multiplication notation
- Regardless of the notation, the calculations are actually done by additive rules**
References
- elliptic curves - In the Kate/KZG Polynomial Commitment Scheme, in which Polynomial Ring should the polynomial to be committed be? - Cryptography Stack Exchange
- zero knowledge proofs - What is the difference between those two KZG Polynomial Commitment Schemes? - Cryptography Stack Exchange
1. Overview
- Homomorphic CS have a commitment size linear in the degree of the committed polynomial
- KZG is a PCS where
- Commitments are of constant size (single elements**): size
- Opening a commitment is constant time**: time
- Opening multiple commitments is also constant time**: time
- PCS can apply to 4 problems in cryptography:
- Verifiable secret sharing
- Zero-knowledge sets
- Credentials
- Content extraction signatures.
- Hiding property based on the DL assumption
- Binding property is proven under the SDH assumption
Hash | Pedersen | (Batch) | (Batch) | |||
---|---|---|---|---|---|---|
Commitment size | ||||||
-opening overhead | random values | witnesses | random + witnesses | random + witness | ||
Total overhead | ||||||
Total overhead when |
Table 1: Comparison of commitment scheme communication overhead. A commitment to messages is created, then later messages must be revealed.
Commitment Schemes
”Naive” Commitment Scheme
- let be a random generator of a group of prime order
- A committer can commit a message simply as
- Unconditionally binding
- Computationally hiding under the assumption that the discrete logarithm (DL) problem is hard in
Pedersen Commitment
- Let and be two random generators of a group of prime order
- , where
- Unconditionally hiding
- Computationally hiding under the assumption that the discrete logarithm (DL) problem is hard in
Collision-Resistant Hash (CRH)
- The committer may publish or for any one-way function
Hiding - Drawback of the Existing Scheme
- If we commit the string representation of a polynomial, then opening it requires revealing the entire polynomial
- This is not ideal, especially for secret sharing, which requires opening (i.e. calculating for ) to different parties at different points in the protocol
- One solution is to commit the coefficients (e.g. ), but the size of the commitment is now elements of
2. Hardness Assumption
Additional Reference
Discrete logarithm (DL) Assumption
- Hiding property requires this assumption
- Discrete Logarithm Problem (DLP)
t-Diffie-Hellman inversion assumption (t-DHI) assumption
- introduced as a weak Diffie-Hellman assumption by Mitsunari, Sakai and Kasahara but renamed to t-DHI by Boneh and Boyen as it is actually stronger than Diffie-Hellman assumption for large values of
t-polynomial Diffie-Hellman (t-polyDH) Assumption
- a generalization of t-DHI
t-Strong Diffie-Hellman (t-SDH) Assumption
- Binding property requires this assumption
- t-SDH implies computational Diffie-Hellman and DL Assumption
- related to t-DHI but stronger
- has exponentially many non-trivial, acceptable, different solutions
t-Bilinear Strong Diffie-Hellman (t-BSDH) Assumption
- Bilinear version of the t-SDH assumption
- KZG batch opening extension relies on this assumption
3.1. Algorithms
- PCS is composed of the following six algorithms:
Setup
- generates an appropriate algebraic structure and a commitment to a public-private key pair to commit to a polynomial of degree ≤
- For simplicity, we add to the public key
- Setup is run by a trusted or distributed authority
- is not required in the rest of the scheme for the given
Commit
- Outputs a commitment to a polynomial for the public key , and some associated decommitment information d. (In some constructions, d is null.)
Open
- Outputs the polynomial used while creating the commitment, with decommitment information
VerifyPoly
- Verify that C is a commitment to , created with decommitment information
- If so, it outputs 1; otherwise, it outputs 0.
CreateWitness
- Outputs 〈i, \phi(i), wi〉, where wi is a witness for the evaluation \phi(i) of \phi(x) at the index i and d is the decommitment information.
CreateWitnessBatch
- batched version of **CreateWitness
VerifyEval
- verifies that is indeed the evaluation at the index of the polynomial committed in
- If so, it outputs 1, otherwise, it outputs 0
VerifyEvalBatch
- batched version of **VerifyEval
3.2.
- PCS based on the Discrete Log problem
- Key idea:
Setup
Output: PK
- Computer 2 groups and of prime order
- There is a symmetric bilinear pairing
- Define bilinear pairing group as
- Choose a generator
- Generate a -tuple
-
- (multiplication notation)
- (addition notation)
Commit - Prover
Input: PK, Output: C
- is a polynomial of degree
- Calculate the commitment :
Ensure Degree of Polynomial < Length of PK
- PK has a length of
- A polynomial has a maximum degree
Open
Output:
- outputs the committed polynomial
CreateWitness - Prover
Input: Output: proof
- compute
- compute witness (proof) :
VerifyPoly - Verifier
Input: Output: True / False
- Verify the committed polynomial
VerifyEval - Verifier
Input: , Output: True / False
3.3.
- PCS uses a technique similar to Pedersen Commitments
3.4. Features
Homomorphism
- both KZG () and are homomorphic
Unconditional Hiding for
- if evaluations have been revealed, unconditionally hides any unrevealed evaluations
Indistinguishability of Commitments (Randomized)
- Given that one wants to commit
- When a PCS is randomized, an adversary cannot distinguish commitments to chosen sets of key-value pairs
- for to be randomized, set one message to a random value
- is inherently randomized and can be used directly
Trapdoor Commitment
- VerifyEval can be run easily
Batch Opening
- Open multiple evaluations by batching them to reduce computation and communication between the committer and verifier
- KZG - Batch Proofs
Strong Correctness
- It should not be possible to commit to a polynomial of degree greater than
- used for a verifiable secret sharing application