Efficient Batch Zero-Knowledge Arguments for Low Degree Polynomials 学习笔记

1. 引言

Bootle和Groth 2018年论文《Efficient Batch Zero-Knowledge Arguments for Low Degree Polynomials》,发表于IACR-PKC-2018。


要点:
1)基于Bootle等人2016年论文 [7]《Efficient zero-knowledge arguments for arithmetic circuits in the discrete log setting》 的polynomial commitment scheme思想,扩展为了支持任意degree N = n m + d N=nm+d N=nm+d的情况。
在这里插入图片描述
2)抽象了relation 以多项式形式表示为 P ( a ⃗ , b ⃗ ) , Q ( a ⃗ , b ⃗ ) = v P(\vec{a},\vec{b}),Q(\vec{a},\vec{b})=v P(a ,b )Q(a ,b )=v,其中 a ⃗ \vec{a} a v v v为private info, b ⃗ \vec{b} b 为public info。引入了Lagrange polynomials l 1 ( X ) , ⋯   , l m ( X ) l_1(X),\cdots,l_m(X) l1(X),,lm(X),实现了 t = m n t=mn t=mn个same relation instances的batch proof protocol——batch protocol for low degree relations。且根据 t t t的选择以及目标不同,可选择调整相应的参数以达到最优。
3)详细说明了 Membership argument with public list、Polynomial Evaluation Argument 和 Range proof 这些应用场景下对应的多项式 P ⃗ , Q ⃗ \vec{P},\vec{Q} P ,Q 实现。通过不同的 n n n进制选择,可达到不同场景下的最优。详见第5节不同应用场景和目标下的参数选型信息。
如Polynomial Evaluation Argument 中有:

  • t = 1 t=1 t=1且我们的目标是a constant number of group elements时,采用 n = 4 n=4 n=4 n n n进制方式表示可具有lowest communication cost。
  • t = 1 t=1 t=1且目标是minimise the total number of elements communicated时,设置 n = log ⁡ 2 N log ⁡ 2 log ⁡ 2 N n=\frac{\log_2 N}{\log_2 \log_2 N} n=log2log2Nlog2N n n n进制表达方式具有the lowest communication cost。
  • t t t很大时,设置 n = 6 n=6 n=6 n n n进制表达方式具有the lowest communication cost。

  • 基于discrete logarithm assumption。

  • 本文主要关注对 relations between commitments and field elements 的zero-knowledge argument,具有constant-round和fewer group operations,其中构建的polynomials in the relation具有low degree。

  • 本文构建了a batch protocol,以支持 many copies of the same relation to be proved and verified in a single argument more efficiently with only a square-root communication overhead in the number of copies O ( N ) O(\sqrt{N}) O(N ),其中 N N N为相同relation的copy数。

  • 可实现membership proof,polynomial evaluation proof以及range proof。

1.1 本文主要贡献

如 Bayer和Groth 2013年论文[2]《Zero-Knowledge Argument for Polynomial Evaluation with Application to Blacklists》 中的用于prover membership 的polynomial evaluation argument和 Groth和Kohlweiss 2015年论文[28]《One-out-of-Many Proofs: Or How to Leak a Secret and Spend a Coin》 中的1-out-of-N membership argument,其witness为zeores of low-degree polynomial relations。

在Bootle等人2016年论文 [7]《Efficient zero-knowledge arguments for arithmetic circuits in the discrete log setting》中,将a polynomial evaluation argument for a polynomial of degree N N N 嵌入在 a low degree polynomial with log ⁡ N \log N logN inputs and degree log ⁡ N \log N logN,最终的argument具有 O ( log ⁡ N ) O(\log N) O(logN) communication using 3 moves,需要 O ( log ⁡ N ) O(\log N) O(logN) exponentiations in a suitably chosen cryptographic group。
另外,由于a polynomial of degree N N N需要 N N N multiplication gates to evaluate in general,因此当前最好的arithmetic circuit protocol [7] 仅能达成 O ( log ⁡ N ) O(\log N) O(logN) communication in O ( log ⁡ N ) O(\log N) O(logN) moves and uses O ( N ) O(N) O(N) group exponentiations。另外,由于discrete logarithm setting下的group exponentiation计算开销远高于 finite-field multiplications计算开销,因此,若能由 O ( N ) O(N) O(N) group exponentiations reduce为 O ( log ⁡ N ) O(\log N) O(logN) group exponentiations,则对整体性能的提升明显。

Bayer 2014年博士论文[1]《Practical zero-knowledge Protocols based on the discrete logarithm Assumption》中,利用Lagrange插值来embed many instances of the same relation into a single field element,提供了2种高效的batch proofs for multiplication and polynomial evaluation,其communication cost为 O ( t ) O(\sqrt{t}) O(t ) t t t为the number of proofs to be batched。
这种 利用Lagrange插值来embed many instances of the same relation into a single field element 的方法,也可用于本文的batch proofs for the low-degree relations。此外,结合本文第三章的polynomial commitment subprotocol,相应的batch proof的communication cost由 t c \sqrt{t}c t c 降为了 t c \sqrt{tc} tc ,其中 c c c为the communication cost of the original non-batched proof, t t t为a large number representing the number of proofs to be batched together。

  • 本文构建了新的 1-out-of-N membership argument和polynomial evaluation argument,可在保持原有的simple 3-move structure的同时,降低communication cost和reduce prover and verifier computation。
    实现了communication 效率最高的 ∑ \sum -protocols for membership or non-membership of a committed value in a public list, in the discrete logarithm setting。

  • 本文构建了an argument of range proofs。

  • 本文 对 Bootle等人2016年论文 [7]《Efficient zero-knowledge arguments for arithmetic circuits in the discrete log setting》中 的polynomial commitment 进行了改进,以支持the prover to commit to a polynomial so that the verifier can learn an evaluation of the polynomial in a secure manner。

1.2 性能对比

在这里插入图片描述
本文主要:

  • 改进了membership proof和 polynomial evaluation proof的communication效率,具有a constant number of group elements,但是better communication efficiency regardless of whether the proofs are instantiated in elliptic curve groups or multiplicative subgroups of finite fields。
  • 实现的polynomial evaluation argument的communication cost为 O ( log ⁡ N log ⁡ log ⁡ N ) O(\frac{\log N}{\log \log N}) O(loglogNlogN),优于之前的 O ( log ⁡ N ) O(\log N) O(logN)
  • 在Bayer 2014年博士论文[1]《Practical zero-knowledge Protocols based on the discrete logarithm Assumption》 的基础上,改进实现了put the log ⁡ N \log N logN cost inside a square root。

1.3 相关研究

(1)Zero Knowledge and Batching 相关研究:

本文主要关注的是describe languages defined by low degree polynomials,为此实现相应的zero-knowledge argument。

(2)Polynomial Commitment 相关研究:
polynomial commitment是本文zero-knowledge argument的重要组成部分,本文主要基于Bootle等人2016年论文 [7]《Efficient zero-knowledge arguments for arithmetic circuits in the discrete log setting》的polynomial commitment protocol进行了实现。

(3)相关应用研究:

1.4 相关应用

(1)membership proof 相关应用:
membership arguments的目的与zero-knowledge sets [39]类似。Membership arguments allow a prover to commit to a secret value and show that it lies in a public set, without leaking information on the value。而 zero-knowledge sets allow the prover to commit to a secret set, and handle membership and non-membership queries in a verifiable manner, without leaking information on the set。

同时Herranz [30] 利用a set membership argument for multiple values实现了attribute-based signatures。该argument基于discrete logarithm assumption,但是其communication complexity很高,为linear in the size of the set。
Camenisch等人[12] 提供了set membership proofs with logarithmic communication complexity。基于pairing-based assumption。
Fauzi等人[22]。实现了constant size arguments for more complex relations between committed sets。基于pairing-based assumption。

(2)Range argument 相关应用:
range argument可看成是membership argument的特例,其中 L \mathcal{L} L 为a list of consecutive integers。
许多构建是基于strong RSA assumption 并使用Lagrange’s Four-Square Theorem。

2. 基于的安全假设及定义

  • Discrete Logarithm assumption:
    在这里插入图片描述

  • commitment scheme的加法同态属性:
    C o m c k ( m 1 ; r 1 ) a ⋅ C o m c k ( m 2 ; r 2 ) b = C o m c k ( a m 1 + b m 2 ; a r 1 + b r 2 ) Com_{ck}(m_1;r_1)^a\cdot Com_{ck}(m_2;r_2)^b=Com_{ck}(am_1+bm_2;ar_1+br_2) Comck(m1;r1)aComck(m2;r2)b=Comck(am1+bm2;ar1+br2)

  • ∑ \sum -protocol基本流程:
    在这里插入图片描述

  • relation定义:
    Prover’s witness为:a secret vector a ⃗ \vec{a} a satisfying some conditions, and an opening to a commitment C C C which is computed from a ⃗ \vec{a} a
    如以polynomial P P P来表示the condition on a ⃗ \vec{a} a ,以polynomial Q Q Q 来计算the opening to C C C,同时引入randomness r r r来实现blinding commit,有:
    P ( a ⃗ ) = 0 ⃗ , C = C o m ( Q ( a ⃗ ) ; r ) P(\vec{a})=\vec{0}, C=Com(Q(\vec{a});r) P(a )=0 ,C=Com(Q(a );r)
    a ⃗ = ( a 0 , a 1 , a 2 ) \vec{a}=(a_0,a_1,a_2) a =(a0,a1,a2) 为 a secret vector of bits, P ( a ⃗ ) = a ⃗ ∘ ( 1 ⃗ − a ⃗ ) P(\vec{a})=\vec{a}\circ (\vec{1}-\vec{a}) P(a )=a (1 a ) Q ( a ⃗ ) = a 0 + 2 a 1 + 4 a 2 Q(\vec{a})=a_0+2a_1+4a_2 Q(a )=a0+2a1+4a2 用于compute the integer represented by the bits。
    可以再引入一个public vector b ⃗ \vec{b} b ,如设置 Q ( a ⃗ , b ⃗ ) = a ⃗ ⋅ b ⃗ Q(\vec{a},\vec{b})=\vec{a}\cdot \vec{b} Q(a ,b )=a b ,其中 b ⃗ = ( 1 , 2 , 4 ) \vec{b}=(1,2,4) b =(1,2,4)
    最终引申定义为:
    P ( a ⃗ , b ⃗ ) P(\vec{a},\vec{b}) P(a ,b ) Q ( a ⃗ , b ⃗ ) Q(\vec{a},\vec{b}) Q(a ,b )为length l P , l Q l_P,l_Q lP,lQ vectors of polynomials of degree d P , d Q d_P,d_Q dP,dQ respectively。 C C C为a commitment。 b ⃗ ∈ Z p l b \vec{b}\in\mathbb{Z}_p^{l_b} b Zplb为a public vector of field elements。Prover需give a zero-knowledge argument of knowledge of a ⃗ ∈ Z p l \vec{a}\in\mathbb{Z}_p^l a Zpl and r ∈ Z p r\in\mathbb{Z}_p rZp,使得:
    P ( a ⃗ , b ⃗ ) = 0 ⃗ , C = C o m ( Q ( a ⃗ , b ⃗ ) ; r ) P(\vec{a},\vec{b})=\vec{0}, C=Com(Q(\vec{a},\vec{b}); r) P(a ,b )=0 ,C=Com(Q(a ,b );r)
    然后扩展为支持同时处理 t t t instances at once的batch proofs:
    C 1 , ⋯   , C m C_1,\cdots, C_m C1,,Cm为commitments, t = m n t=mn t=mn b ⃗ 1 , 1 , ⋯   , b ⃗ m , n ∈ Z p l b \vec{b}_{1,1},\cdots,\vec{b}_{m,n}\in\mathbb{Z}_p^{l_b} b 1,1,,b m,nZplb 为public vectors of field elements。The b ⃗ I , j \vec{b}_{I,j} b I,j values allow a single instance to capture some variation in the statement。
    The batched argument为an argument of knowledge of values { a ⃗ i , j } i , j = 1 m , n \{\vec{a}_{i,j}\}_{i,j=1}^{m,n} {a i,j}i,j=1m,n and { r i } i = 1 m \{r_i\}_{i=1}^{m} {ri}i=1m such that P ( a ⃗ i , j , b ⃗ i , j ) = 0 ⃗ P(\vec{a}_{i,j},\vec{b}_{i,j})=\vec{0} P(a i,j,b i,j)=0 for i ∈ [ m ] , j ∈ [ n ] i\in [m],j\in [n] i[m],j[n],and the prover knows commitment openings:
    C 1 = C o m ( Q ( a ⃗ 1 , 1 , b ⃗ 1 , 1 ) , Q ( a ⃗ 1 , 2 , b ⃗ 1 , 2 ) , ⋯   , Q ( a ⃗ 1 , n , b ⃗ 1 , n ) ; r 1 ) C_1=Com(Q(\vec{a}_{1,1},\vec{b}_{1,1}), Q(\vec{a}_{1,2},\vec{b}_{1,2}), \cdots, Q(\vec{a}_{1,n},\vec{b}_{1,n}); r_1) C1=Com(Q(a 1,1,b 1,1),Q(a 1,2,b 1,2),,Q(a 1,n,b 1,n);r1)
    C 2 = C o m ( Q ( a ⃗ 2 , 1 , b ⃗ 2 , 1 ) , Q ( a ⃗ 2 , 2 , b ⃗ 2 , 2 ) , ⋯   , Q ( a ⃗ 2 , n , b ⃗ 2 , n ) ; r 2 ) C_2=Com(Q(\vec{a}_{2,1},\vec{b}_{2,1}), Q(\vec{a}_{2,2},\vec{b}_{2,2}), \cdots, Q(\vec{a}_{2,n},\vec{b}_{2,n}); r_2) C2=Com(Q(a 2,1,b 2,1),Q(a 2,2,b 2,2),,Q(a 2,n,b 2,n);r2)
    ⋮ \vdots
    C m = C o m ( Q ( a ⃗ m , 1 , b ⃗ m , 1 ) , Q ( a ⃗ m , 2 , b ⃗ m , 2 ) , ⋯   , Q ( a ⃗ m , n , b ⃗ m , n ) ; r m ) C_m=Com(Q(\vec{a}_{m,1},\vec{b}_{m,1}), Q(\vec{a}_{m,2},\vec{b}_{m,2}), \cdots, Q(\vec{a}_{m,n},\vec{b}_{m,n}); r_m) Cm=Com(Q(a m,1,b m,1),Q(a m,2,b m,2),,Q(a m,n,b m,n);rm)
    m = n = 1 m=n=1 m=n=1时, t = 1 t=1 t=1,及对应位zero-knowledge argument of knowledge for a single instance。

  • Lagrange 多项式定义:
    z 1 , ⋯   , z m z_1,\cdots, z_m z1,,zm位distinct points in some field,有Lagrange 多项式 l 1 ( X ) , ⋯   , l m ( X ) l_1(X),\cdots,l_m(X) l1(X),,lm(X) 为the unique polynomials of degree m − 1 m-1 m1 such that l i ( z j ) = δ i , j l_i(z_j)=\delta_{i,j} li(zj)=δi,j,其中 δ i , j \delta_{i,j} δi,j 为Kronecker-delta。在密码学中,Lagrange 多项式可用于secret-sharing。
    For j ∈ [ m ] j\in [m] j[m], l j ( X ) l_j(X) lj(X)可按如下方式计算:
    l j ( X ) = ∏ 0 ≤ m ≤ k , m ≠ j X − z m z j − z m = ( X − z 0 ) ⋅ ( X − z j − 1 ) ( X − z j + 1 ) ⋯ ( X − z k ) ( z j − z 0 ) ⋅ ( z j − z j − 1 ) ( z j − z j + 1 ) ⋯ ( z j − z k ) l_j(X)=\prod_{0\leq m\leq k, m\neq j}\frac{X-z_m}{z_j-z_m}=\frac{(X-z_0)\cdot (X-z_{j-1})(X-z_{j+1})\cdots (X-z_k)}{ (z_j-z_0)\cdot (z_j-z_{j-1})(z_j-z_{j+1})\cdots (z_j-z_k)} lj(X)=0mk,m=jzjzmXzm=(zjz0)(zjzj1)(zjzj+1)(zjzk)(Xz0)(Xzj1)(Xzj+1)(Xzk)

3. Polynomial commitment scheme

本文借助homomorphic commitment scheme,实现了polynomial commitment scheme。

Bootle等人2016年论文 [7]《Efficient zero-knowledge arguments for arithmetic circuits in the discrete log setting》 中提供了对constant term 为0的Laurent polynomial (其系数为single filed elements)的polynomial commitment scheme。本文采用类似的技术,将系数以vector 表示,且只考虑了positive powers以及忽略了对constant term的要求。本文的技术可直接扩展至类似[7]中Laurent polynomial 场景。

3.1 polynomial commitment scheme定义

polynomial commitment scheme 主要由GenPolyCommitPolyEvalPolyVerify算法组成,针对的场景为:
Prover commit to a secret vector of polynomials h ( X ) ∈ Z p l [ X ] h(X)\in\mathbb{Z}_p^l[X] h(X)Zpl[X] of some known degree N N N,然后Prover可choose to evaluate the committed point x ∈ Z p x\in\mathbb{Z}_p xZp and send an opening to the Verifier。【其中evaluation point x x x为public info。】
在这里插入图片描述

3.2 构建polynomial commitment scheme

degree N = ( n + 1 ) m − 1 N=(n+1)m-1 N=(n+1)m1的polynomial h ⃗ ( X ) = ∑ i = 0 N h ⃗ i X i \vec{h}(X)=\sum_{i=0}^{N}\vec{h}_iX^i h (X)=i=0Nh iXi,其系数 h ⃗ i \vec{h}_i h i为row vectors in Z p l \mathbb{Z}_p^l Zpl,可表示为 h ⃗ ( X ) = ∑ i = 0 N h ⃗ i X i = ∑ j = 0 n ( ∑ i = 0 m − 1 h ⃗ i , j X i ) X m j \vec{h}(X)=\sum_{i=0}^{N}\vec{h}_iX^i =\sum_{j=0}^{n}(\sum_{i=0}^{m-1}\vec{h}_{i,j}X^i)X^{mj} h (X)=i=0Nh iXi=j=0n(i=0m1h i,jXi)Xmj,系数 h ⃗ i , j ∈ Z p l \vec{h}_{i,j}\in\mathbb{Z}_p^l h i,jZpl,最终整个多项式的系数以 m × ( n + 1 ) l m\times (n+1)l m×(n+1)l 矩阵形式表示为:
在这里插入图片描述
基本思路为:

  • Prover 对以上矩阵中的每行进行commit,相应的commitment为 { H i } i = 0 m − 1 \{H_i\}_{i=0}^{m-1} {Hi}i=0m1
    Prover将这些commitments { H i } i = 0 m − 1 \{H_i\}_{i=0}^{m-1} {Hi}i=0m1发送给Verifier。
  • Verifier:发送evaluation point x x x给Prover。
  • Prover:计算每列 h ⃗ ˉ j = ∑ i = 0 m − 1 h ⃗ i , j x i \bar{\vec{h}}_j=\sum_{i=0}^{m-1}\vec{h}_{i,j}x^i h ˉj=i=0m1h i,jxi,这些值为the openings of the commitment ∏ i = 0 m − 1 H i x i \prod_{i=0}^{m-1}H_i^{x^i} i=0m1Hixi
    Prover 将这些field elements { h ⃗ ˉ j } j = 0 n \{\bar{\vec{h}}_j\}_{j=0}^{n} {h ˉj}j=0n 发送给Verifier。
  • Verifier:验证 ∏ i = 0 m − 1 H i x i = C o m ( h ⃗ 0 , ⋯   , h ⃗ n ) \prod_{i=0}^{m-1}H_i^{x^i}=Com(\vec{h}_0,\cdots, \vec{h}_n) i=0m1Hixi=Com(h 0,,h n) 是否成立,若成立,则计算 h ⃗ ( x ) = ∑ j = 0 n h ⃗ ˉ j x j m \vec{h}(x)=\sum_{j=0}^{n}\bar{\vec{h}}_jx^{jm} h (x)=j=0nh ˉjxjm值,即可认为其是the evaluation of h ( X ) h(X) h(X) at x x x

以上思路会导致 h ⃗ ( X ) \vec{h}(X) h (X)系数的泄露,需要引入random blinding vectors来保证zero-knowledge,同时,本文通过对矩阵第一列进行shift,以支持任意的polynomial degree N = m n + d N=mn+d N=mn+d,其中 0 ≤ d < m 0\leq d< m 0d<m
h ⃗ ( X ) = ∑ i = 0 m n + d h ⃗ i X i = ∑ i = 0 m h ⃗ i , 0 X i + ∑ j = 0 n ( ∑ i = 0 m − 1 h ⃗ i , j X i ) X ( j − 1 ) m + d \vec{h}(X)=\sum_{i=0}^{ mn+d }\vec{h}_iX^i =\sum_{i=0}^{m}\vec{h}_{i,0}X^i+\sum_{j=0}^{n}(\sum_{i=0}^{m-1}\vec{h}_{i,j}X^i)X^{(j-1)m+d} h (X)=i=0mn+dh iXi=i=0mh i,0Xi+j=0n(i=0m1h i,jXi)X(j1)m+d

与 Bootle等人2016年论文 [7]《Efficient zero-knowledge arguments for arithmetic circuits in the discrete log setting》 中的构建略有不同:
引入random blinders b ⃗ 1 , ⋯   , b ⃗ n ← Z p l \vec{b}_1,\cdots,\vec{b}_n\leftarrow \mathbb{Z}_p^l b 1,,b nZpl,定义如下的 ( m + 1 ) × ( n + 1 ) l (m+1)\times (n+1)l (m+1)×(n+1)l matrix { h ⃗ i , j } i = 0 , j = 0 m , n \{\vec{h}_{i,j}\}_{i=0,j=0}^{m,n} {h i,j}i=0,j=0m,n
在这里插入图片描述
基本思路为:

  • Prover 对以上矩阵中的每行进行commit,相应的commitment为 { H i } i = 0 m \{H_i\}_{i=0}^{m} {Hi}i=0m
    Prover将这些commitments { H i } i = 0 m − 1 \{H_i\}_{i=0}^{m-1} {Hi}i=0m1发送给Verifier。
  • Verifier:发送evaluation point x x x给Prover。
  • Prover:计算每列 h ⃗ ˉ j = ∑ i = 0 m h ⃗ i , j x i \bar{\vec{h}}_j=\sum_{i=0}^{m}\vec{h}_{i,j}x^i h ˉj=i=0mh i,jxi,这些值为the openings of the commitment ∏ i = 0 m H i x i \prod_{i=0}^{m}H_i^{x^i} i=0mHixi
    Prover 将这些field elements { h ⃗ ˉ j } j = 0 n \{\bar{\vec{h}}_j\}_{j=0}^{n} {h ˉj}j=0n 发送给Verifier。
  • Verifier:验证 ∏ i = 0 m H i x i = C o m ( h ⃗ 0 , ⋯   , h ⃗ n ) \prod_{i=0}^{m}H_i^{x^i}=Com(\vec{h}_0,\cdots, \vec{h}_n) i=0mHixi=Com(h 0,,h n) 是否成立,若成立,则计算 h ⃗ ( x ) = h ⃗ 0 ˉ + ∑ j = 1 n h ⃗ ˉ j x ( j − 1 ) m + d \vec{h}(x)=\bar{\vec{h}_0}+\sum_{j=1}^{n}\bar{\vec{h}}_jx^{(j-1)m+d} h (x)=h 0ˉ+j=1nh ˉjx(j1)m+d值,即可认为其是the evaluation of h ⃗ ( X ) \vec{h}(X) h (X) at x x x

完整的zero-knowledge polynomial commitment scheme实现为:【若 d = m − 1 d=m-1 d=m1,则 N = m n + d = ( n + 1 ) m − 1 N=mn+d=(n+1)m-1 N=mn+d=(n+1)m1,则与Bootle [7] 2016年论文中的方案等价。】
【相应的communication cost为: m + 1 m+1 m+1个group elements和 l ( n + 1 ) + 1 l(n+1)+1 l(n+1)+1个field elements。】

Prover computation:Prover主要计算开销在于 m + 1 m+1 m+1 multi-exponentiations of width l ( n + 1 ) + 1 l(n+1)+1 l(n+1)+1 约需 l m n log ⁡ l n + l log ⁡ l \frac{lmn}{\log ln}+\frac{l}{\log l} loglnlmn+logll exponentiations。
Verifier computation:Verifier主要计算开销在于 a multi-exponentiation of width l ( n + 1 ) + m + 1 l(n+1)+m+1 l(n+1)+m+1 约需 l n + m log ⁡ ( l n + m ) \frac{ln+m}{\log (ln+m)} log(ln+m)ln+m exponentiations。

在这里插入图片描述

4. batch protocol for low degree relations

针对的场景为:
支持同时处理 t t t instances at once的batch proofs:【parallel 并行执行,communication cost为 O ( t ) O(\sqrt{t}) O(t )。】
C 1 , ⋯   , C m C_1,\cdots, C_m C1,,Cm为commitments, t = m n t=mn t=mn b ⃗ 1 , 1 , ⋯   , b ⃗ m , n ∈ Z p l b \vec{b}_{1,1},\cdots,\vec{b}_{m,n}\in\mathbb{Z}_p^{l_b} b 1,1,,b m,nZplb 为public vectors of field elements。The b ⃗ i , j \vec{b}_{i,j} b i,j values allow a single instance to capture some variation in the statement。
The batched argument为an argument of knowledge of values { a ⃗ i , j } i , j = 1 m , n \{\vec{a}_{i,j}\}_{i,j=1}^{m,n} {a i,j}i,j=1m,n and { r i } i = 1 m \{r_i\}_{i=1}^{m} {ri}i=1m such that P ( a ⃗ i , j , b ⃗ i , j ) = 0 ⃗ P(\vec{a}_{i,j},\vec{b}_{i,j})=\vec{0} P(a i,j,b i,j)=0 for i ∈ [ m ] , j ∈ [ n ] i\in [m],j\in [n] i[m],j[n],and the prover knows commitment openings:
P ( a ⃗ i , j , b ⃗ i , j ) = 0 ⃗ P(\vec{a}_{i,j},\vec{b}_{i,j})=\vec{0} P(a i,j,b i,j)=0 for i ∈ [ m ] , j ∈ [ n ] i\in [m],j\in [n] i[m],j[n],and the prover knows commitment openings:
C 1 = C o m ( Q ( a ⃗ 1 , 1 , b ⃗ 1 , 1 ) , Q ( a ⃗ 1 , 2 , b ⃗ 1 , 2 ) , ⋯   , Q ( a ⃗ 1 , n , b ⃗ 1 , n ) ; r 1 ) C_1=Com(Q(\vec{a}_{1,1},\vec{b}_{1,1}), Q(\vec{a}_{1,2},\vec{b}_{1,2}), \cdots, Q(\vec{a}_{1,n},\vec{b}_{1,n}); r_1) C1=Com(Q(a 1,1,b 1,1),Q(a 1,2,b 1,2),,Q(a 1,n,b 1,n);r1)
C 2 = C o m ( Q ( a ⃗ 2 , 1 , b ⃗ 2 , 1 ) , Q ( a ⃗ 2 , 2 , b ⃗ 2 , 2 ) , ⋯   , Q ( a ⃗ 2 , n , b ⃗ 2 , n ) ; r 2 ) C_2=Com(Q(\vec{a}_{2,1},\vec{b}_{2,1}), Q(\vec{a}_{2,2},\vec{b}_{2,2}), \cdots, Q(\vec{a}_{2,n},\vec{b}_{2,n}); r_2) C2=Com(Q(a 2,1,b 2,1),Q(a 2,2,b 2,2),,Q(a 2,n,b 2,n);r2)
⋮ \vdots
C m = C o m ( Q ( a ⃗ m , 1 , b ⃗ m , 1 ) , Q ( a ⃗ m , 2 , b ⃗ m , 2 ) , ⋯   , Q ( a ⃗ m , n , b ⃗ m , n ) ; r m ) C_m=Com(Q(\vec{a}_{m,1},\vec{b}_{m,1}), Q(\vec{a}_{m,2},\vec{b}_{m,2}), \cdots, Q(\vec{a}_{m,n},\vec{b}_{m,n}); r_m) Cm=Com(Q(a m,1,b m,1),Q(a m,2,b m,2),,Q(a m,n,b m,n);rm)

接下来,定义参数 l a , l b , l P , d P , l Q , d Q l_a,l_b,l_P,d_P,l_Q,d_Q la,lb,lP,dP,lQ,dQ为:
a ⃗ i , j ∈ Z p l a , b ⃗ i , j ∈ Z p l b \vec{a}_{i,j}\in\mathbb{Z}_p^{l_a}, \vec{b}_{i,j}\in\mathbb{Z}_p^{l_b} a i,jZpla,b i,jZplb
P ⃗ \vec{P} P 为 a vector of l P l_P lP ( l a + l b ) (l_a+l_b) (la+lb)-variate polynomials of total degree d P d_P dP
Q ⃗ \vec{Q} Q 为 a vector of l Q l_Q lQ ( l a + l b ) (l_a+l_b) (la+lb)-variate polynomials of total degree d Q d_Q dQ

4.1 基本构建思想

受 Gennaro等人2013年论文[26] 《Quadratic Span Programs and Succinct NIZKs without PCPs》 和 Bayer 2014年博士论文[1]《Practical zero-knowledge Protocols based on the discrete logarithm Assumption》 中的思想启发,借助Lagrange interpolation polynomial 技术来 embed multiple instances of the same polynomial equality into a single polynomial。
z 1 , ⋯   , z m z_1,\cdots, z_m z1,,zm位distinct points in some field,有Lagrange 多项式 l 1 ( X ) , ⋯   , l m ( X ) l_1(X),\cdots,l_m(X) l1(X),,lm(X) 为the unique polynomials of degree m − 1 m-1 m1 such that l i ( z j ) = δ i , j l_i(z_j)=\delta_{i,j} li(zj)=δi,j,其中 δ i , j \delta_{i,j} δi,j 为Kronecker-delta。在密码学中,Lagrange 多项式可用于secret-sharing。
For j ∈ { 1 , ⋯   , m } j\in \{1,\cdots,m\} j{1,,m}, l j ( X ) l_j(X) lj(X)可按如下方式计算:
l j ( X ) = ∏ 1 ≤ m ≤ k , m ≠ j X − z m z j − z m = ( X − z 1 ) ⋅ ( X − z j − 1 ) ( X − z j + 1 ) ⋯ ( X − z k ) ( z j − z 1 ) ⋅ ( z j − z j − 1 ) ( z j − z j + 1 ) ⋯ ( z j − z k ) l_j(X)=\prod_{1\leq m\leq k, m\neq j}\frac{X-z_m}{z_j-z_m}=\frac{(X-z_1)\cdot (X-z_{j-1})(X-z_{j+1})\cdots (X-z_k)}{ (z_j-z_1)\cdot (z_j-z_{j-1})(z_j-z_{j+1})\cdots (z_j-z_k)} lj(X)=1mk,m=jzjzmXzm=(zjz1)(zjzj1)(zjzj+1)(zjzk)(Xz1)(Xzj1)(Xzj+1)(Xzk)

l 0 ( X ) = ∏ i = 1 m ( X − z i ) l_0(X)=\prod_{i=1}^{m}(X-z_i) l0(X)=i=1m(Xzi)

  • Prover生成如下commitments:
    A 0 = c o m ( a ⃗ 0 , 1 , a ⃗ 0 , 2 , ⋯   , a ⃗ 0 , n ; r 0 ) A_0=com(\vec{a}_{0,1},\vec{a}_{0,2},\cdots,\vec{a}_{0,n};r_0) A0=com(a 0,1,a 0,2,,a 0,n;r0)
    A 1 = c o m ( a ⃗ 1 , 1 , a ⃗ 1 , 2 , ⋯   , a ⃗ 1 , n ; r 0 ) A_1=com(\vec{a}_{1,1},\vec{a}_{1,2},\cdots,\vec{a}_{1,n};r_0) A1=com(a 1,1,a 1,2,,a 1,n;r0)
    A 2 = c o m ( a ⃗ 2 , 1 , a ⃗ 2 , 2 , ⋯   , a ⃗ 2 , n ; r 0 ) A_2=com(\vec{a}_{2,1},\vec{a}_{2,2},\cdots,\vec{a}_{2,n};r_0) A2=com(a 2,1,a 2,2,,a 2,n;r0)
    ⋮ \vdots
    A m = c o m ( a ⃗ m , 1 , a ⃗ m , 2 , ⋯   , a ⃗ m , n ; r 0 ) A_m=com(\vec{a}_{m,1},\vec{a}_{m,2},\cdots,\vec{a}_{m,n};r_0) Am=com(a m,1,a m,2,,a m,n;r0)
    其中 这些first index 为 0 0 0 a ⃗ 0 , 1 , ⋯   , a ⃗ 0 , n ∈ Z p l a \vec{a}_{0,1},\cdots,\vec{a}_{0,n}\in\mathbb{Z}_p^{l_a} a 0,1,,a 0,nZpla 为blinding values chosen chosen uniformly at random。剩余的 a ⃗ 1 , 1 , ⋯   , a ⃗ m , n \vec{a}_{1,1},\cdots,\vec{a}_{m,n} a 1,1,,a m,n 为witness,其first index > 0 >0 >0
  • Verifier发送challenge x x x
  • Prover发送 a ⃗ ˉ j = ∑ i = 0 m a ⃗ i , j l i ( x ) \bar{\vec{a}}_j=\sum_{i=0}^{m}\vec{a}_{i,j}l_i(x) a ˉj=i=0ma i,jli(x) for each j ∈ [ n ] j\in [n] j[n]
  • Verifier:
    1)验证 the received a ⃗ ˉ j \bar{\vec{a}}_j a ˉj against the commitments A i A_i Ai。This proves knowledge of the a ⃗ \vec{a} a values。
    2)为了证明 a ⃗ i , j , b ⃗ i , j \vec{a}_{i,j},\vec{b}_{i,j} a i,j,b i,j 满足the polynomial relations in the statement。Verifier计算 b ⃗ ˉ j = ∑ i = 1 m b ⃗ i j l i ( x ) \bar{\vec{b}}_j=\sum_{i=1}^{m}\vec{b}_{ij}l_i(x) b ˉj=i=1mb ijli(x)。Verifier evaluates P ⃗ , Q ⃗ \vec{P},\vec{Q} P ,Q using a ⃗ ˉ j \bar{\vec{a}}_j a ˉj and b ⃗ ˉ j \bar{\vec{b}}_j b ˉj for each j j j
    根据 v e c a ˉ j \bar{vec{a}}_j vecaˉj b ⃗ ˉ j \bar{\vec{b}}_j b ˉj的定义,当evaluate at an interpolation point z i z_i zi时,结果为 the single evaluation of the original polynomial —— P ⃗ ( a ⃗ i , j , b ⃗ i , j ) \vec{P}(\vec{a}_{i,j}, \vec{b}_{i,j}) P (a i,j,b i,j)
    P ⃗ ( a ⃗ ˉ j , b ⃗ ˉ j ) ≡ 0 m o d    l 0 ( x ) \vec{P}(\bar{\vec{a}}_j,\bar{\vec{b}}_j)\equiv 0\mod l_0(x) P (a ˉj,b ˉj)0modl0(x),即 P ⃗ ( a ⃗ ˉ j , b ⃗ ˉ j ) \vec{P}(\bar{\vec{a}}_j,\bar{\vec{b}}_j) P (a ˉj,b ˉj) 为a multiple of l 0 ( X ) l_0(X) l0(X) for each j j j。Prover必须commit to the coefficients of P ⃗ ( a ⃗ ˉ j , b ⃗ ˉ j ) / l 0 ( x ) \vec{P}(\bar{\vec{a}}_j,\bar{\vec{b}}_j)/l_0(x) P (a ˉj,b ˉj)/l0(x) in advance (as a polynomial in x x x),借助以上的the polynomial commitment scheme 可同时处理每一个 j j j
  • Prover需使Verifier 信服 that the commitments C i C_i Ci contain commitments to Q ⃗ ( a ⃗ i , j , b ⃗ i , j ) \vec{Q}(\vec{a}_{i,j},\vec{b}_{i,j}) Q (a i,j,b i,j),可通过类似于 P ⃗ \vec{P} P polynomial的方式来证明,只是基于committed values 来构建多项式。

具体的证明实现为:【针对的是 t = m n t=mn t=mn个same relations 进行batch proof】
在这里插入图片描述
在这里插入图片描述

4.1.1 相应的communication cost

相应的communication cost为:
在这里插入图片描述
可对其中的 k 1 , k 2 k_1,k_2 k1,k2以及 t 1 , t 2 t_1,t_2 t1,t2分别取值,使得最终的communication cost最小,分两种情况来考虑:

  • single proof的情况下:
    在这里插入图片描述

  • batch proof的情况下:
    在这里插入图片描述

4.1.2 相应的计算开销

相应的计算开销为:

  • Prover的计算开销主要为:
    在这里插入图片描述

  • Verifier的计算开销主要为:
    在这里插入图片描述

5 应用

通过选择特定的relations for P ⃗ , Q ⃗ \vec{P},\vec{Q} P ,Q ,可实现多种应用:

  • Membership argument with public list
  • Polynomial Evaluation Argument
  • Range proof

5.1 用于Membership argument with public list

在Groth和Kohlweiss 2015年论文[28]《One-out-of-Many Proofs: Or How to Leak a Secret and Spend a Coin》 membership argument的基础上进行了简单调整:【以 N N N为a power of 2为例】
在这里插入图片描述
以上采用的是二进制的方式来表示 l l l,而在 Bootle 等人2015年论文[6]《Short Accountable Ring Signatures Based on DDH》 中,采用的是 n n n进制来表示 l l l。针对这种情况,也可选择相应的 P ⃗ , Q ⃗ \vec{P},\vec{Q} P ,Q 来表示:【以 N N N为a power of n为例】
在这里插入图片描述
参数选型有:

  • t = 1 t=1 t=1且我们的目标是a constant number of group elements时,采用二进制方式表示可具有lowest communication cost。
  • t t t很大,或者 t = 1 t=1 t=1且目标是minimise the total number of elements communicated时,设置 n = 3 n=3 n=3 n n n进制表达方式具有the lowest communication cost。

5.2 用于Polynomial Evaluation Argument

Bayer和Groth 2013年论文[2]《Zero-Knowledge Argument for Polynomial Evaluation with Application to Blacklists》 中 的polynomial evaluation argument是目前效率最高的discrete logarithm based polynomial evaluation argument。本文可依据此设置相应的 P ⃗ , Q ⃗ \vec{P},\vec{Q} P ,Q :【以二进制形式表示】
在这里插入图片描述

若采用 n n n进制形式表示,则有:
在这里插入图片描述

参数选型有:

  • t = 1 t=1 t=1且我们的目标是a constant number of group elements时,采用 n = 4 n=4 n=4 n n n进制方式表示可具有lowest communication cost。
  • t = 1 t=1 t=1且目标是minimise the total number of elements communicated时,设置 n = log ⁡ 2 N log ⁡ 2 log ⁡ 2 N n=\frac{\log_2 N}{\log_2 \log_2 N} n=log2log2Nlog2N n n n进制表达方式具有the lowest communication cost。
  • t t t很大时,设置 n = 6 n=6 n=6 n n n进制表达方式具有the lowest communication cost。

在这里插入图片描述

5.3 用于range proof

相应的 P ⃗ , Q ⃗ \vec{P},\vec{Q} P ,Q 为:【证明区间为 [ 0 , N ] [0,N] [0,N],其中 N = 2 m − 1 N=2^m-1 N=2m1
在这里插入图片描述
Chaabouni等人2010年论文《Additive combinatorics and discrete logarithm based range protocols》中采用 n n n进制方式来实现range proof,相应的 P ⃗ , Q ⃗ \vec{P},\vec{Q} P ,Q 为:【证明区间为 [ 0 , N ] [0,N] [0,N],其中 N = n m − 1 N=n^m-1 N=nm1
在这里插入图片描述
参数选型有:

  • t = 1 t=1 t=1且我们的目标是a constant number of group elements时,采用 n = 4 n=4 n=4 n n n进制方式表示可具有lowest communication cost。
  • t = 1 t=1 t=1且目标是minimise the total number of elements communicated时,设置 n = log ⁡ 2 N log ⁡ 2 log ⁡ 2 N n=\frac{\log_2 N}{\log_2 \log_2 N} n=log2log2Nlog2N n n n进制表达方式具有the lowest communication cost。
  • t t t很大时,设置 n = 6 n=6 n=6 n n n进制表达方式具有the lowest communication cost。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值