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。
如 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。
-
本文解释了 Groth和Kohlweiss 2015年论文[28]《One-out-of-Many Proofs: Or How to Leak a Secret and Spend a Coin》 和 Bootle 等人2015年论文[6]《Short Accountable Ring Signatures Based on DDH》 背后对membership proof的优化思路,然后进一步优化了membership proof和polynomial evaluation proof。
-
本文统一了Groth和Kohlweiss 2015年论文[28]《One-out-of-Many Proofs: Or How to Leak a Secret and Spend a Coin》 、 Bootle 等人2015年论文[6]《Short Accountable Ring Signatures Based on DDH》 和 Bayer和Groth 2013年论文[2]《Zero-Knowledge Argument for Polynomial Evaluation with Application to Blacklists》 中的构建思路,可统一为相同的构建办法。 在这些论文中,构建low degree polynomial relation的方式为: 1)mask an input variable u u u as f u = u x + u b f_u=ux+u_b fu=ux+ub,其中 x x x为challenge, u b u_b ub为random blinder。 2)然后基于 f u f_u fu构建相应的多项式, x x x变量的系数可体现待证明的relation。 3)然后基于该多项式构建zksnark,the communication and computational complexity由 polynomial relation 的degree和input 数量决定。 而the complexity of general arithmetic circuit protocol则由gate 数量决定。
在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。
本文主要:
- 改进了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)Zero Knowledge and Batching 相关研究:
- Kilian 1992年论文[34]《A note on efficient zero-knowledge proofs and arguments》 是第一个实现了circuit-satisfiability zero-knowledge argument,具有poly-logarithmic communication complexity,但是high computational complexity。
- Bootle等人2016年论文 [7]《Efficient zero-knowledge arguments for arithmetic circuits in the discrete log setting》中的argument具有logarithmic communication complexity和linear computation costs based on the discrete logarithm assumption。
- Bootle等人2017年论文[8] 《Linear-time zero-knowledge proofs for arithmetic circuit satisfiability》的zero-knowledge argument具有constant overhead for the prover,具有square-root communication cost,但是构建过程中需要的large constants影响了其实用性。
- 对于特定language的研究,如range proof, membership argument和polynomial evaluation argument,借助简单的 ∑ \sum ∑-protocol,有很多实现.[28,2]
- Camenisch和Stadler 1997年论文《Proof systems for general statements about discrete logarithms》提供了非常简洁清晰的模块化思路来实现zero-knowledge argument。(可参见博客 Proof Systems for General Statements about Discrete Logarithms 学习笔记)
本文主要关注的是describe languages defined by low degree polynomials,为此实现相应的zero-knowledge argument。
- Gennaro等人2013年论文[26] 《Quadratic Span Programs and Succinct NIZKs without PCPs》中的思路为:embed many statements into a single polynomial using Lagrange interpolation polynomials in a challenge x x x originates in the quadratic arithmetic programs。 Bayer 2014年博士论文[1]《Practical zero-knowledge Protocols based on the discrete logarithm Assumption》 也利用了类似的思想,实现了interactive zero-knowledge argument。该技术原本是用于构建Hadamard product argument和batched polynomial evaluation argument。 本文使用相同的技术用于证明general relation。
- Gennaro等人2004年论文[25]《Batching Schnorr identification scheme with applications to privacy-preserving authorization and low-bandwidth communication devices》使用powers of x x x 实现了batch Schnorr proofs。
- Bellare 等人1998年论文《Batch Verification with Applications to Cryptography and Checking》中的batch思路为:multiply different instances of the proof by small exponents before compressing the proofs together。This approach may be used to trade soundness for efficiency。 本文的batch process proves and verifies the logical AND of many statements simultaneously。
- Peng等人2008年论文[44]《Batch ZK Proof and Verification of OR Logic》中实现了batch proofs for OR statements。
- Henry 和 Goldberg 2013年论文[29]《Batch proofs of partial knowledge》实现了batch proofs for k-out-of-N,同时定义了a notion of conciseness to characterize batch proofs。
(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进行了实现。
- Kate等人[33][KZG10] 2010年论文《Constant-size commitments to polynomials and their applications》中首次提出了polynomial commitment 的概念,并基于bilinear maps做了相应实现。
- [41,46] Papamanthou等人2013年论文《Signatures of correct computation》和Yupeng Zhang等人2017年论文《vsql: Verifying arbitrary SQL queries over dynamic outsourced databases》中也是基于bilinear maps,扩展为了多变量polynomial commitment。
- [37] Libert等人 2016年论文《Functional commitment schemes: From polynomial commitments to pairing-based accumulators from simple assumptions》实现了更简单的pairing-based assumption依赖,构建了polynomial commitment。
- 本文基于discrete logarithm assumption实现的polynomial commitment,其communication complexity为 O ( n ) O(\sqrt{n}) O(n ),其中 n n n为polynomial degree。
(3)相关应用研究:
-
membership argument相关研究有:[11,10] Bresson等人2001年论文《Efficient revocation in group signatures》和 Brands 等人2007年论文《A practical system for globally revoking the unlinkable pseudonyms of unknown users》。针对的场景为:Prover demonstrates that a secret committed value λ \lambda λ is an element of a list L = { λ 0 , ⋯ , λ N − 1 } \mathcal{L}=\{\lambda_0,\cdots,\lambda_{N-1}\} L={λ0,⋯,λN−1},without revealing any other information about λ \lambda λ。
-
polynomial evaluation argument相关研究有:[23,10] Fujisaki 等人1997年论文《Statistical zero knowledge protocols to prove modular polynomial relations》 和 Brands 等人2007年论文《A practical system for globally revoking the unlinkable pseudonyms of unknown users》。针对的场景为:a secret committed value v v v is the evaluation of a public polynomial h ( U ) h(U) h(U) at another secret committed value u u u。
-
range proof相关研究:[9,38] 。针对的场景为:Prover demonstrates that a secret committed value a a a is an element of the interval [ A ; B ] [A;B] [A;B]。
-
目前基于discrete logarithm assumption的zero-knowledge argument有: – [18] Cramer等人 《Zero-knowledge proofs for finite field arithmetic, or: Can zero-knowledge be for free?》实现的argument的communication complexity为linear in the size of the circuit。 – Bootle等人2016年论文 [7]《Efficient zero-knowledge arguments for arithmetic circuits in the discrete log setting》中的argument 具有logarithmic communication complexity,但是需要a non-constant number of rounds。
-
其它基于discrete logarithm assumption但是不依赖于general Circuit Satisfiability protocol的研究有:
-
Cramer 等人[19] 1994年论文《Proofs of partial knowledge and simplified design of witness hiding protocols》中通过compose sigma-protocols,实现了AND composition, OR composition和1-out-of-many等证明。具有linear communication complexity。
(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)a⋅Comck(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 r∈Zp,使得: 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,n∈Zplb 为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 m−1 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)=∏0≤m≤k,m=jzj−zmX−zm=(zj−z0)⋅(zj−zj−1)(zj−zj+1)⋯(zj−zk)(X−z0)⋅(X−zj−1)(X−zj+1)⋯(X−zk)
本文借助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 主要由Gen
、PolyCommit
、PolyEval
、PolyVerify
算法组成,针对的场景为: 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
x∈Zp and send an opening to the Verifier。【其中evaluation point
x
x
x为public info。】
degree
N
=
(
n
+
1
)
m
−
1
N=(n+1)m-1
N=(n+1)m−1的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=0m−1h
i,jXi)Xmj,系数
h
⃗
i
,
j
∈
Z
p
l
\vec{h}_{i,j}\in\mathbb{Z}_p^l
h
i,j∈Zpl,最终整个多项式的系数以
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=0m−1。 Prover将这些commitments { H i } i = 0 m − 1 \{H_i\}_{i=0}^{m-1} {Hi}i=0m−1发送给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=0m−1h 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=0m−1Hixi。 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=0m−1Hixi=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 0≤d 0 >0 >0。
具体的证明实现为:【针对的是
t
=
m
n
t=mn
t=mn个same relations 进行batch proof】
相应的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的情况下:
相应的计算开销为:
-
Prover的计算开销主要为:
-
Verifier的计算开销主要为:
通过选择特定的relations for P ⃗ , Q ⃗ \vec{P},\vec{Q} P ,Q ,可实现多种应用:
- Membership argument with public list
- Polynomial Evaluation Argument
- Range proof
在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。
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。
相应的
P
⃗
,
Q
⃗
\vec{P},\vec{Q}
P
,Q
为:【证明区间为
[
0
,
N
]
[0,N]
[0,N],其中
N
=
2
m
−
1
N=2^m-1
N=2m−1】 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=nm−1】
参数选型有:
- 当 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。