Skip to content

Polynomial Commitment

In previous section, we enable to check whether computation was done correctly by the knowledge of polynomial which can be devided by minimal polynomial Z(x) as following.

However, we can create equation easily because Z(x) is public information. Then we need to verify whether L(x), R(x), O(x) are created by using valid input. To do so, we are going to use Polynomial Commitment.

Abstract

The Polynomial Commitment check whether the prover know polynomials L(x), R(x), O(x) and these comes from valid input.

Details

To know polynomials L(x), R(x), O(x) means having knowledge of coefficients of them.

Combination

First of all, we combine these polynomials to one in order to make check process easier. Let's say degree of polynomials L(x), R(x), O(x) as d, we can combine them into one as following and let combined polynomial as F(x).

In polynomial F(x), the coefficients of 0~d degree expresses L(x) coefficients, d+1~2d is R(x) and 2d+1~3d is O(x) as well. The polynomial F(x) degree is 3d and when we denote coefficients as k, it would be following.

Verification

The verification processes are following.

  1. Bob choses random α, (a_0,...,a_{3d}) ∈ F and compute (b_0,...,b_{3d}) = α(a_0,...,a_{3d}).
  2. Bob sends Alice to (a_0,...,a_{3d}) and (b_0,...,b_{3d}).
  3. Alice computes following.
  4. Bob checks following.

If Alice don't know the coefficients, she couldn't do step 3. With using this step, we can know that the prover know polynomials L(x), R(x), O(x) and these comes from valid input.

Next

In this section, we understood how to check the prover polynomials comming from valid input but these information would be known by verifier. To hide these information from verifier, we are using homomorphic encryption.