Sumcheck protocol for Pedersen Commitment
--
In the previous blog, we introduced the definitions of Sumcheck protocol. Now we’ll describe Sumcheck argument based on Sumcheck protocol and Pedersen commitment.
Firstly, here we give a definition of Sumcheck-friendly commitments. A commitment scheme CM is Sumcheck friendly if
Comm(ck, m) = \sum_{w_1,…, w_l \in H} f(p_m (w_1, …, w_l), p_{ck}(w_1, …, w_l))
Of which the Comm(ck, m)’s commitment space C is an R-module[1], H is a subset of ring R, and message polynomial p_m(w) and key polynomial are both in M[X], M is R-module. The combination function is
Obviously that Pedersen Commitment `C = vG + rH` is Sumcheck-friendly. And the instance can be formally defined below in Sumcheck protocol (recall the definition in the previous post):
where the prover P use polynomial
. After the end of the Sumcheck protocol execution, the P learns r, and V learns (r, v). The P computes and sends p_a(r) to V, and the V calculates p_G(r), and checks that:
Now we need to prove that the above Sumcheck protocol for Pedersen Commitment is well-defined.
For instance, let
which satisfies:
and the products can be rewritten as:
which is a natural extension of the scalar multiplication operation of aG, mapping F X G -> G.
And in this construction, easy to find that the completeness is satisfied. For every `a` in F, C = <a, G>, Pr[ <P(G, C, a), V(G, C)> = 1] = 1, which means the commitment C binding to a generated by P in G, can be verified by V with high probabilities within same G. For the knowledge soundness, if the verifier accepts the commitments, one can efficiently extract an opening key a, such that C = <a, G>.
More proof explanations can be found in the paper[2].