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


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:
    1. Verifiable secret sharing
    2. Zero-knowledge sets
    3. Credentials
    4. Content extraction signatures.
  • Hiding property based on the DL assumption
  • Binding property is proven under the SDH assumption
HashPedersen(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

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

  1. Computer 2 groups and of prime order
    • There is a symmetric bilinear pairing
    • Define bilinear pairing group as
  2. Choose a generator
  3. Generate a -tuple
    • (multiplication notation)
    • (addition notation)

Commit - Prover

Input: PK, Output: C

  1. is a polynomial of degree
  2. 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.

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