在进入正题前,这篇文章笔者对方案的解析理解思路,叙述和理解过程可能存在一些错误,欢迎大家留言讨论。
基于内积定理(Inner Product Argument)实现的多项式承诺方案,为了方便,简称为IPA多项式承诺方案。在阅读承诺方案前,需要掌握Pedersen承诺、内积和 Σ \Sigma Σ 协议相关知识,Pedersen承诺在前文已介绍。此外,还需掌握一些常见方法来缩小证明大小。
内积
对于 a = ( a 0 , a 1 , ⋯ , a n − 1 ) \pmb{a}=(a_0,a_1,\cdots,a_{n-1}) a=(a0,a1,⋯,an−1)和 G = ( G 0 , G 1 , ⋯ , G n − 1 ) \pmb{G}=(G_0,G_1,\cdots,G_{n-1}) G=(G0,G1,⋯,Gn−1)的内积计算公式为
< a , G > = a 0 G 0 + a 1 G 1 + ⋯ + a n − 1 G n − 1 <\pmb{a},\pmb{G}>=a_0G_0+a_1G_1+\cdots+a_{n-1}G_{n-1} <a,G>=a0G0+a1G1+⋯+an−1Gn−1
内积满足以下性质
-
乘法交换律: ∀ b ∈ F , < b a , G > = < a , b G > = b < a , G > \forall b \in F,<b\pmb{a},\pmb{G}>=<\pmb{a},b\pmb{G}>=b<\pmb{a},\pmb{G}> ∀b∈F,<ba,G>=<a,bG>=b<a,G>
-
乘法分配律1: ∀ a , b , G ∈ F n \forall\pmb{a,b,G} \in F^{n} ∀a,b,G∈Fn , < a + b , G > = < a , G > + < b , G > <\pmb{a+b} , \pmb{G}>=<\pmb{a},\pmb{G}>+<\pmb{b},\pmb{G}> <a+b,G>=<a,G>+<b,G>
-
乘法分配律2: ∀ a , b , G 1 , G 2 ∈ F n , < a + b , G 1 + G 2 > = < a , G 1 > + < a , G 2 > + < b , G 1 > + < b , G 2 > \forall\pmb{a,b,G_1,G_2} \in F^{n}, <\pmb{a+b},\pmb{G_1+G_2}>=<\pmb{a},\pmb{G_1}>+<\pmb{a},\pmb{G_2}>+<\pmb{b},\pmb{G_1}>+<\pmb{b},\pmb{G_2}> ∀a,b,G1,G2∈Fn,<a+b,G1+G2>=<a,G1>+<a,G2>+<b,G1>+<b,G2>
对于多项式 f ( X ) = a 0 + a 1 X + ⋯ + a n − 1 X n − 1 f(X)=a_0+a_1X+\dots+a_{n-1}X^{n-1} f(X)=a0+a1X+⋯+an−1Xn−1在 z z z点的值为 f ( z ) = a 0 + a 1 z + ⋯ + a n − 1 z n − 1 f(z)=a_0+a_1z+\dots+a_{n-1}z^{n-1} f(z)=a0+a1z+⋯+an−1zn−1,可以写成内积的形式,即 f ( z ) = < a , b > f(z)=<\pmb{a},\pmb{b}> f(z)=<a,b>,其中 a = ( a 0 , a 1 , ⋯ , a n − 1 ) \pmb{a}=(a_0,a_1,\cdots,a_{n-1}) a=(a0,a1,⋯,an−1), b = ( 1 , z , ⋯ , z n − 1 ) \pmb{b}=(1,z,\cdots,z^{n-1}) b=(1,z,⋯,zn−1)。
如何将多个验证等式合并为一个验证等式?–随机线性化组合
举个例子,假设证明者声明 P 1 , P 2 P_1,P_2 P1,P2由 < a , G > <\pmb{a},\pmb{G}> <a,G>和 < b , G > <\pmb{b},\pmb{G}> <b,G>计算的两个内积,其中 G \pmb{G} G是公开的, a , b \pmb{a,b} a,b只有证明者知道。证明者将 a , b \pmb{a,b} a,b发送给验证方进行如下验证。
P 1 = < a , G > P 2 = < b , G > P_1=<\pmb{a},\pmb{G}>\\ P_2=<\pmb{b},\pmb{G}> P1=<a,G>P2=<b,G>
验证等式成立,则证明 P 1 , P 2 P_1,P_2 P1,P2通过 < a , G > <\pmb{a},\pmb{G}> <a,G>和