1. 引言

Boneh等人2020年论文《Efficient polynomial commitment schemes for multiple points and polynomials》,暂无收录信息。


要点:

  • 基于Q-DLOG assumption实现2种不同的polynomial commitment,支持batch open multiple polynomials at multiple distinct evaluation points。
  • 主要基于的思想为:(2个Claim)
    1)对于evaluation point z∈Sz\in Sz∈S,其gz∈S(z)=0g_{z\in S}(z)=0gz∈S​(z)=0,从而有:若g(X)g(X)g(X)可整除ZS(X)Z_S(X)ZS​(X),当且仅当ZT∖S(X)⋅g(X)Z_{T \setminus S}(X)\cdot g(X)ZT∖S​(X)⋅g(X)可整除ZT(X)Z_T(X)ZT​(X)。
    2)若F1,⋯,Fk∈F<n[X]F_1,\cdots,F_k\in\mathbb{F}_{<n}[X]F1​,⋯,Fk​∈F<n​[X],Z∈F<n[X]Z\in\mathbb{F}_{<n}[X]Z∈F<n​[X]可分解为不同的linear factors over F\mathbb{F}F。假设存在某i∈[k]i\in [k]i∈[k],使得Z∤FiZ\nmid F_iZ∤Fi​,则对于uniform选择的γ∈F\gamma\in\mathbb{F}γ∈F,G=∑j=1kγj−1⋅FjG=\sum_{j=1}^{k}\gamma^{j-1}\cdot F_jG=∑j=1k​γj−1⋅Fj​不能整除ZZZ的概率高于1−k/∣F∣1-k/|\mathbb{F}|1−k/∣F∣。

在Kate等人2010年论文[KZG10]《Constant-size commitments to polynomials and their applications》中polynomial commitment scheme的基础上,进行了改进:

  • 仅需a single group element即可作为an opening proof for multiple polynomials each evaluated at a different arbitrary subset of points。
    已将本文的研究成果植入进了PLONK 的proving system中,实现了improved proof size和prover run time at the expense of additional verifier G2\mathbb{G}_2G2​ operations and pairings, and additional G2\mathbb{G}_2G2​ SRS elements。(Gabizon等人2019年论文《PLONK: permutations over lagrange-bases for oecumenical noninteractive arguments of knowledge》)
  • 实现了另一种scheme,其proof包含了2个group elements,相应的verifier complexity要优于[KZG10]种的batch verification method。

当需要a “universal and updatable” setup procedure时,Kate等人2010年论文[KZG10]《Constant-size commitments to polynomials and their applications》中提出的polynomial commitment scheme (PCS) 已成为近期构建的succinct arguments的核心组成要素:[MBKM19, Gab19, CHM+19, GWC19, BFS19]

  • Maller等人2019年论文《Sonic: Zero-knowledge snarks from linear-size universal and updateable structured reference strings》
  • Gabizon等人2019年论文《Auroralight: improved prover efficiency and SRS size in a sonic-like system》
  • Chiesa等人2019年论文《Marlin: Preprocessing zksnarks with universal and updatable SRS》
  • Gabizon等人2019年论文《PLONK: permutations over lagrange-bases for oecumenical noninteractive arguments of knowledge》
  • B¨unz等人2019年论文《Supersonic: Transparent snarks from DARK compilers》

以上polynomial commitment scheme中都“force” a prover to answer verifier queries according to a fixed polynomial of bounded degree。

PCS通常由Prover message com(f)com(f)com(f) 开始—— 表示the commitment to a polynomial fff;当Prover声称s=f(z)s=f(z)s=f(z)(其中zzz对Verifier亦已知),将s∈Fs\in\mathbb{F}s∈F发送给Verifier的同时,也发送相应的“opening proof” π\piπ。当协议中需要运行PCS for 多个多项式和多个evaluation points时,Prover run time 和 communication 将increase with each of these opening proofs。
因此需要构建a PCS,使得the prover overhead doesn’t grow 或者至少grow more slowly with the number of openings。

1.1 相关研究

  • Kate等人2010年论文[KZG10]《Constant-size commitments to polynomials and their applications》中的polynomial commitment scheme为:
    基于pairing-based scheme进行构建,其opening proof π\piπ包含了a single G1\mathbb{G}_1G1​ group element。

  • Maller等人2019年论文《Sonic: Zero-knowledge snarks from linear-size universal and updateable structured reference strings》中,对[KZG10]中的PCS进行了改进 in the random oracle model,使得an opening proof for several polynomials at the same point z∈Fz\in\mathbb{F}z∈F 为a single G1\mathbb{G}_1G1​ group element,以适于universal and updatable SNARKs。
    [Gab19, CHM+19, GWC19] Gabizon等人2019年论文《Auroralight: improved prover efficiency and SRS size in a sonic-like system》、Chiesa等人2019年论文《Marlin: Preprocessing zksnarks with universal and updatable SRS》 和 Gabizon等人2019年论文《PLONK: permutations over lagrange-bases for oecumenical noninteractive arguments of knowledge》 中,均用到了类似的single-point multi-polynomial batch protocols。

  • Kate等人2010年论文[KZG10]《Constant-size commitments to polynomials and their applications》中还包含了一个不太有名的scheme,实现了 one G1\mathbb{G}_1G1​ element opening proof for one polynomial at several evaluation points。[GWC19] Gabizon等人2019年论文《PLONK: permutations over lagrange-bases for oecumenical noninteractive arguments of knowledge》 中有更直观的batched version of the [KZG10] scheme。

  • 对于multiple polynomials和multiple evaluation points的情况,[CHM+19, GWC19] Chiesa等人2019年论文《Marlin: Preprocessing zksnarks with universal and updatable SRS》 和 Gabizon等人2019年论文《PLONK: permutations over lagrange-bases for oecumenical noninteractive arguments of knowledge》 中 使用了randomized techniques for batching pairing equations 来改进verification efficiency,但是opening proof size和prover computation仍然grow linearly with the number of distinct points。

本文构建了2种PCS for multiple evaluation points and polynomials:

  • version 1:opening proof 仅为a single G1\mathbb{G}_1G1​ element,但是当distinct evaluation points的数量很大时,verifier operation比 [KZG10]的方案(KZG as in [GWC19])中的要重很多。
  • version 2:opening proof 为 2个G1\mathbb{G}_1G1​ elements,verifier complexity要优于KZG as in [GWC19] 方案。

当针对open ttt polynomials all with the same degree bound nnn, each at on distinct point时,各方案的性能对比如下图所示:

[GWC19] Gabizon等人2019年论文《PLONK: permutations over lagrange-bases for oecumenical noninteractive arguments of knowledge》 中的PLONK proving system 允许generating proofs of knowledge for assignments to fan-in two arithmetic circuits with a universal and updatable SRS。其中Prover的主要算力集中在:

  • commit to several polynomials
  • open them at two distinct evaluation points

将本文的version 1 PCS 嵌入到PLONK中,从而可节约proof length和prover work related to the opening proof of the second evaluation point(repeat the transformation of Lemma 4.7 in [GWC19] using the PCS of Lemma 3.3 instead of the PCS used there to obtain the new result)。替换前后的性能对比如下图所示:(PLONK论文中做了两个版本的实现,一个optimizes fast proving,另一个关注small proof length。)

本文的version 2 PCS does not give interesting tradeoffs for PLONK as two evaluation points are not enough for its advantages to “kick in”。但是如 SLONK—a simple universal SNARK 中的讨论,当针对有需要多于2个evaluation points的场景时,本文的2种PCS scheme优势将更明显。
因此本文提倡 design constraint systems using multiple Shifts and Permutations over Lagrange bases for Oecumenical Noninteractive arguments of Knowledge。

2. 相关定义

2.1 相关定义

  • F\mathbb{F}F:prime order field。

  • F<d[X]\mathbb{F}_{<d}[X]F<d​[X]:为the set of 单变量polynomials over F\mathbb{F}F of degree smaller than ddd。

  • O\mathcal{O}O:为object generator,输入为security parameter λ\lambdaλ,输出为all fields and groups used。如本文,O(λ)=(F,G1,G2,Gt,e,g1,g2,gt)\mathcal{O}(\lambda)=(\mathbb{F},\mathbb{G}_1,\mathbb{G}_2,\mathbb{G}_t,e,g_1,g_2,g_t)O(λ)=(F,G1​,G2​,Gt​,e,g1​,g2​,gt​),其中:
    – 1)F\mathbb{F}F为a prime field of super-polynomial size r=λw(1)r=\lambda^{w(1)}r=λw(1)。
    – 2)G1,G2,Gt\mathbb{G}_1,\mathbb{G}_2,\mathbb{G}_tG1​,G2​,Gt​ 为 groups of size rrr,eee为an efficiently computable non-degenerate pairing e:G1×G2→Gte:\mathbb{G}_1 \times \mathbb{G}_2\rightarrow \mathbb{G}_te:G1​×G2​→Gt​。
    – 3)g1,g2g_1,g_2g1​,g2​ 为uniformly chosen generators such that e(g1,g2)=gte(g_1,g_2)=g_te(g1​,g2​)=gt​。

  • [x]1=x⋅g1,[x]2=x⋅g2[x]_1=x\cdot g_1,[x]_2=x\cdot g_2[x]1​=x⋅g1​,[x]2​=x⋅g2​

  • [n][n][n]:表示整数{1,⋯,n}\{1,\cdots,n\}{1,⋯,n}

  • e.w.p:全称为”except with probability”,如e.w.p γ\gammaγ 表示 probability at least 1−γ1-\gamma1−γ。

  • Universal SRS-based public coin protocols:
    可借助Fiat-Shamir transform来将interactive protocol转换为non-interactive protocol。整个proof length是指由Prover发送给Verifier的总的communication length。
    本文的protocol允许接触a structured reference string (SRS),其可derived in poly(λ)poly(\lambda)poly(λ)-time form an “SRS of monomials” of the form {[xi]1}a≤i≤b,{[xi]2}c≤i≤d\{[x^i]_1\}_{a\leq i\leq b},\{[x^i]_2\}_{c\leq i\leq d}{[xi]1​}a≤i≤b​,{[xi]2​}c≤i≤d​, for uniform x∈Fx\in\mathbb{F}x∈F and some integers a,b,c,da,b,c,da,b,c,d with absolute value bounded by poly(λ)poly(\lambda)poly(λ)。Bowe等人2017年论文《Scalable multi-party computation for zksnark parameters in the random beacon model》中指出,the required SRS can be derived in a universal and updatable setup requiring only one honest participant,即an adversary controlling all but one of the participants in the setup does not gain more than a negl(λ)negl(\lambda)negl(λ) advantage in its probability of producing a proof of any statement。

2.2 Analysis in the AGM model

本文的安全分析是基于Fuchsbauer等人2018年论文《The algebraic group model and its applications》中的Algebraic Group Model (AGM) 来进行的。by an algebraic adversary A\mathcal{A}A in an SRS-based protocol, we mean a poly(λ)poly(\lambda)poly(λ)-time algorithm 满足如下要求:

  • For i∈{1,2}i\in\{1,2\}i∈{1,2},whenever A\mathcal{A}A outputs an element A∈GiA\in\mathbb{G}_iA∈Gi​,it also outputs a vector v⃗\vec{v}v over F\mathbb{F}F 使得A=<v⃗,srsi>A=<\vec{v},srs_i>A=<v,srsi​>成立。

若all elements of srsisrs_isrsi​ 都具有form [f(x)]i[f(x)]_i[f(x)]i​ for f∈F<Q[X]f\in\mathbb{F}_{<Q}[X]f∈F<Q​[X] and uniform x∈Fx\in\mathbb{F}x∈F,则称srssrssrs具有degree QQQ。接下来考虑的都是具有degree QQQ的SRS。
fi,jf_{i,j}fi,j​ 表示the corresponding polynomial for the jjj-th element of srsisrs_isrsi​。

  • a⃗,b⃗\vec{a},\vec{b}a,b:为the vectors of F\mathbb{F}F-elements,其encodings in G1,G2\mathbb{G}_1,\mathbb{G}_2G1​,G2​,如the jjj-th G1\mathbb{G}_1G1​ element output by A\mathcal{A}A为[aj]1[a_j]_1[aj​]1​。

  • 形如 (a⃗⋅T1)⋅(T2⋅b⃗)=0(\vec{a}\cdot \mathbf{T}_1)\cdot (\mathbf{T}_2\cdot \vec{b})=0(a⋅T1​)⋅(T2​⋅b)=0 的check form可称为“real pairing check”。其中矩阵T1,T2\mathbf{T}_1,\mathbf{T}_2T1​,T2​ over F\mathbb{F}F。
    若已知the encoded elements 和 the pairing function e:G1×G2→Gte:\mathbb{G}_1\times \mathbb{G}_2\rightarrow \mathbb{G}_te:G1​×G2​→Gt​,以上check可高效执行。

  • 若已知 a “real pairing check”、the adversary A\mathcal{A}A、procotol execution during which the elements were output,可定义相应的“ideal check”:
    由于A\mathcal{A}A为algebraic的,其输出[aj]i[a_j]_i[aj​]i​的同时也输出a vector v⃗\vec{v}v,使得,from linearity,aj=∑vlfi,l(x)=Ri,j(x)a_j=\sum v_lf_{i,l}(x)=R_{i,j}(x)aj​=∑vl​fi,l​(x)=Ri,j​(x) for Ri,j(X)=∑vlfi,l(X)R_{i,j}(X)=\sum v_lf_{i,l}(X)Ri,j​(X)=∑vl​fi,l​(X)。
    for i∈{1,2}i\in\{1,2\}i∈{1,2}, the vector of polynomials Ri=(Ri,j)jR_i=(R_{i,j})_jRi​=(Ri,j​)j​。
    相应的ideal check为,验证 (R1⋅T1)⋅(T2⋅R2)≡0(R_1\cdot \mathbf{T}_1)\cdot (\mathbf{T_2}\cdot R_2)\equiv 0(R1​⋅T1​)⋅(T2​⋅R2​)≡0

  • Q-DLOG assumption:

  • knowledge soundness in the Algebraic Group Model定义为:

2.3 Polynomial commitment scheme

本文的polynomial commitment scheme与 [GWC19] Gabizon等人2019年论文《PLONK: permutations over lagrange-bases for oecumenical noninteractive arguments of knowledge》中的类似,只是将其中的Open算法定义为a batched setting having multiple polynomials and evaluation points。
针对multiple points时,可将evaluations of a polynomial fff on a set S⊂FS\subset \mathbb{F}S⊂F 看成是 given as a polynomial r∈F<∣S∣[X]r\in\mathbb{F}_{<|S|}[X]r∈F<∣S∣​[X] with r(z)=f(z)r(z)=f(z)r(z)=f(z) for each z∈Sz\in Sz∈S。此时:r(z)=f(z)r(z)=f(z)r(z)=f(z) for each z∈Sz\in Sz∈S,等价为,f(X)−r(X)f(X)-r(X)f(X)−r(X) 可被ZS(X)Z_S(X)ZS​(X)整除,其中ZS(X)=∏z∈S(X−z)Z_S(X)=\prod_{z\in S}(X-z)ZS​(X)=∏z∈S​(X−z)。

相应的polynomial commitment scheme定义为:【针对的是kkk个polynomials f1,⋯,fk∈F<d[X]f_1,\cdots,f_k\in\mathbb{F}_{<d}[X]f1​,⋯,fk​∈F<d​[X],open at ttt个points z1,⋯,ztz_1,\cdots,z_tz1​,⋯,zt​——对应拆分到每个polynomial的set分别为S1,⋯,SkS_1,\cdots,S_kS1​,⋯,Sk​】

以上协议满足completeness和knowledge soundness in the algebraic group model:

3. polynomial commitment scheme——version 1

针对的场景是,对于evaluation point z∈Sz\in Sz∈S,其gz∈S(z)=0g_{z\in S}(z)=0gz∈S​(z)=0,从而有:若g(X)g(X)g(X)可整除ZS(X)Z_S(X)ZS​(X),当且仅当ZT∖S(X)⋅g(X)Z_{T \setminus S}(X)\cdot g(X)ZT∖S​(X)⋅g(X)可整除ZT(X)Z_T(X)ZT​(X)。
即:

[GWC19] Gabizon等人2019年论文《PLONK: permutations over lagrange-bases for oecumenical noninteractive arguments of knowledge》 中 Claim 4.6指出:
若F1,⋯,Fk∈F<n[X]F_1,\cdots,F_k\in\mathbb{F}_{<n}[X]F1​,⋯,Fk​∈F<n​[X],Z∈F<n[X]Z\in\mathbb{F}_{<n}[X]Z∈F<n​[X]可分解为不同的linear factors over F\mathbb{F}F。假设存在某i∈[k]i\in [k]i∈[k],使得Z∤FiZ\nmid F_iZ∤Fi​,则对于uniform选择的γ∈F\gamma\in\mathbb{F}γ∈F,G=∑j=1kγj−1⋅FjG=\sum_{j=1}^{k}\gamma^{j-1}\cdot F_jG=∑j=1k​γj−1⋅Fj​不能整除ZZZ的概率高于1−k/∣F∣1-k/|\mathbb{F}|1−k/∣F∣。

【单polynomial 单point open的PCS细节可参考博客 polynomial commitment及实现方式对比 “3.1节 polynomial commitment定义”】
本文的version 1 polynomial commitment scheme(PCS)为:

  • gen(d)gen(d)gen(d):选择uniform x∈Fx\in\mathbb{F}x∈F,输出srs=([1]1,[x]1,⋯,[xd−1]1,[1]2,[x]2,⋯,[xt]2)srs=([1]_1,[x]_1,\cdots,[x^{d-1}]_1,[1]_2,[x]_2,\cdots,[x^t]_2)srs=([1]1​,[x]1​,⋯,[xd−1]1​,[1]2​,[x]2​,⋯,[xt]2​)。【需要ddd个G1\mathbb{G}_1G1​ elements 和 t+1t+1t+1个G2\mathbb{G}_2G2​ elements。】
  • com(f,srs)=[f(x)]1com(f,srs)=[f(x)]_1com(f,srs)=[f(x)]1​:cm1,⋯,cmkcm_1,\cdots,cm_kcm1​,⋯,cmk​为the alleged commitments to f1,⋯,fkf_1,\cdots,f_kf1​,⋯,fk​。【对于integer n≤dn\leq dn≤d,计算f∈F<n[X]f\in\mathbb{F}_{<n}[X]f∈F<n​[X] 的polynomial commitment需要nnn个G1\mathbb{G}_1G1​-exponentiations 运算。】
  • open(d,t,{cmi}i∈[k],T={z1,⋯,zt}⊂F,{Si⊂T}i∈[k],{ri}i∈[k])open(d, t, \{cm_i\}_{i\in [k]}, T=\{z_1,\cdots,z_t\}\subset \mathbb{F}, \{S_i \subset T\}_{i\in [k]}, \{r_i\}_{i\in [k]})open(d,t,{cmi​}i∈[k]​,T={z1​,⋯,zt​}⊂F,{Si​⊂T}i∈[k]​,{ri​}i∈[k]​):(其中{ri∈F<∣Si∣[X]}i∈[k]\{r_i\in \mathbb{F}_{<|S_i|}[X]\}_{i\in [k]}{ri​∈F<∣Si​∣​[X]}i∈[k]​ 为the polynomials describing the alleged correct openings,即for each i∈[k],z∈Sii\in [k], z\in S_ii∈[k],z∈Si​ 有 ri(z)=fi(z)r_i(z)=f_i(z)ri​(z)=fi​(z))
    (a)VPCV_{PC}VPC​ 发送a random γ∈F\gamma\in\mathbb{F}γ∈F。
    (b)PPCP_{PC}PPC​ 计算the polynomial:
    h(X)=∑i∈[k]γi−1⋅fi(X)−ri(X)ZSi(X)h(X)=\sum_{i\in [k]}\gamma^{i-1}\cdot \frac{f_i(X)-r_i(X)}{Z_{S_i}(X)}h(X)=∑i∈[k]​γi−1⋅ZSi​​(X)fi​(X)−ri​(X)​
    使用 srssrssrs 计算 polynomial commitment W=[h(x)]1W=[h(x)]_1W=[h(x)]1​,并将WWW发送给VPCV_{PC}VPC​。【需要将1个G1\mathbb{G}_1G1​ element从PPCP_{PC}PPC​发送给VPCV_{PC}VPC​。PPCP_{PC}PPC​计算commitment WWW 时,最多需要nnn个G1\mathbb{G}_1G1​-exponentiations 运算。】
    (c)VPCV_{PC}VPC​ 为每个i∈[k]i\in [k]i∈[k]均计算:Zi=[ZT∖Si(x)]2Z_i=[Z_{T\setminus S_i}(x)]_2Zi​=[ZT∖Si​​(x)]2​。【VPCV_{PC}VPC​需要∑i∈[k](t−∣Si∣)\sum_{i\in [k]}(t-|S_i|)∑i∈[k]​(t−∣Si​∣) 次G2\mathbb{G}_2G2​-exponentiations 运算。???没懂论文中的k∗k^*k∗的具体含义??? 】
    (d)VPCV_{PC}VPC​ 计算:F=∏i∈[k]e(γi−1⋅(cmi−[ri(x)]1),Zi)F=\prod_{i\in [k]} e(\gamma^{i-1}\cdot (cm_i-[r_i(x)]_1), Z_i)F=∏i∈[k]​e(γi−1⋅(cmi​−[ri​(x)]1​),Zi​) 【VPCV_{PC}VPC​需要kkk次pairing运算,同时在计算[ri(x)]1[r_i(x)]_1[ri​(x)]1​时,需要∑i∈[k](∣Si∣)\sum_{i\in [k]}(|S_i|)∑i∈[k]​(∣Si​∣) 次G1\mathbb{G}_1G1​-exponentiations 运算。】
    (e)VPCV_{PC}VPC​ 验证 F=e(W,[ZT(x)]2)F=e(W,[Z_T(x)]_2)F=e(W,[ZT​(x)]2​) 是否成立即可。【VPCV_{PC}VPC​需要1次pairing运算和ttt次G2\mathbb{G}_2G2​-exponentiations 运算。】

4. polynomial commitment scheme——version 2

polynomial commitment scheme——version 2 在 polynomial commitment scheme——version 1 的基础上,以proof size 换取verifier 的计算压力:

  • proof 中增加了1个G1\mathbb{G}_1G1​ element,一共2个G1\mathbb{G}_1G1​ element。
  • Verifier不再需要做G2\mathbb{G}_2G2​运算,同时将pairing运算降至仅需2次pairing运算。

polynomial commitment scheme——version 2的详细实现为:()

  • gen(d)gen(d)gen(d):选择uniform x∈Fx\in\mathbb{F}x∈F,输出srs=([1]1,[x]1,⋯,[xd−1]1,[1]2,[x]2)srs=([1]_1,[x]_1,\cdots,[x^{d-1}]_1,[1]_2,[x]_2)srs=([1]1​,[x]1​,⋯,[xd−1]1​,[1]2​,[x]2​)。【需要ddd个G1\mathbb{G}_1G1​ elements 和 222个G2\mathbb{G}_2G2​ elements。】
  • com(f,srs)=[f(x)]1com(f,srs)=[f(x)]_1com(f,srs)=[f(x)]1​:cm1,⋯,cmkcm_1,\cdots,cm_kcm1​,⋯,cmk​为the alleged commitments to f1,⋯,fkf_1,\cdots,f_kf1​,⋯,fk​。【对于integer n≤dn\leq dn≤d,计算f∈F<n[X]f\in\mathbb{F}_{<n}[X]f∈F<n​[X] 的polynomial commitment需要nnn个G1\mathbb{G}_1G1​-exponentiations 运算。】
  • open(d,t,{cmi}i∈[k],T={z1,⋯,zt}⊂F,{Si⊂T}i∈[k],{ri}i∈[k])open(d, t, \{cm_i\}_{i\in [k]}, T=\{z_1,\cdots,z_t\}\subset \mathbb{F}, \{S_i \subset T\}_{i\in [k]}, \{r_i\}_{i\in [k]})open(d,t,{cmi​}i∈[k]​,T={z1​,⋯,zt​}⊂F,{Si​⊂T}i∈[k]​,{ri​}i∈[k]​):(其中{ri∈F<∣Si∣[X]}i∈[k]\{r_i\in \mathbb{F}_{<|S_i|}[X]\}_{i\in [k]}{ri​∈F<∣Si​∣​[X]}i∈[k]​ 为the polynomials describing the alleged correct openings,即for each i∈[k],z∈Sii\in [k], z\in S_ii∈[k],z∈Si​ 有 ri(z)=fi(z)r_i(z)=f_i(z)ri​(z)=fi​(z))
    (a)VPCV_{PC}VPC​ 发送a random γ∈F\gamma\in\mathbb{F}γ∈F。
    (b)PPCP_{PC}PPC​ 计算the polynomial:
    f(X)=∑i∈[k]γi−1⋅ZT∖Si(X)⋅(fi(X)−ri(X))f(X)=\sum_{i\in [k]}\gamma^{i-1}\cdot Z_{T\setminus S_i}(X) \cdot (f_i(X)-r_i(X))f(X)=∑i∈[k]​γi−1⋅ZT∖Si​​(X)⋅(fi​(X)−ri​(X))
    根据Claim 3.2可知,fff可被ZTZ_TZT​整除,定义:
    h(X)=f(X)/ZT(X)h(X)=f(X)/Z_T(X)h(X)=f(X)/ZT​(X)
    使用 srssrssrs 计算 polynomial commitment W=[h(x)]1W=[h(x)]_1W=[h(x)]1​,并将WWW发送给VPCV_{PC}VPC​。
    (c)VPCV_{PC}VPC​ 发送a random z∈Fz\in\mathbb{F}z∈F。
    (d)PPCP_{PC}PPC​ 计算the polynomial:
    L(X)=fz(X)−ZT(z)⋅h(X)L(X)=f_z(X)-Z_T(z)\cdot h(X)L(X)=fz​(X)−ZT​(z)⋅h(X),其中fz(X)=∑i∈[k]γi−1⋅ZT∖Si(z)⋅(fi(X)−ri(z))f_z(X)=\sum_{i\in [k]}\gamma^{i-1}\cdot Z_{T\setminus S_i}(z) \cdot (f_i(X)-r_i(z))fz​(X)=∑i∈[k]​γi−1⋅ZT∖Si​​(z)⋅(fi​(X)−ri​(z))
    注意L(z)=f(z)−ZT(z)⋅h(z)=0L(z)=f(z)-Z_T(z)\cdot h(z) =0L(z)=f(z)−ZT​(z)⋅h(z)=0,因此有(X−z)(X-z)(X−z) divides LLL。
    使用 srssrssrs 计算 polynomial commitment W‘=[L(x)x−z]1W‘=[\frac{L(x)}{x-z}]_1W‘=[x−zL(x)​]1​,并将W’W’W’发送给VPCV_{PC}VPC​。
    (e)VPCV_{PC}VPC​ 计算:F=∑i∈[k]γi−1⋅ZT∖Si(z)⋅(cmi−[ri(z)]1)−ZT(z)⋅WF=\sum_{i\in [k]} \gamma^{i-1}\cdot Z_{T\setminus S_i}(z) \cdot (cm_i-[r_i(z)]_1)-Z_T(z)\cdot WF=∑i∈[k]​γi−1⋅ZT∖Si​​(z)⋅(cmi​−[ri​(z)]1​)−ZT​(z)⋅W 【VPCV_{PC}VPC​需要222次pairing运算,同时在计算[ri(x)]1[r_i(x)]_1[ri​(x)]1​时,需要∑i∈[k](∣Si∣)\sum_{i\in [k]}(|S_i|)∑i∈[k]​(∣Si​∣) 次G1\mathbb{G}_1G1​-exponentiations 运算。】
    (f)VPCV_{PC}VPC​ 验证 e(F,[1]2)=e(W’,[x−z]2)e(F,[1]_2)=e(W’,[x-z]_2)e(F,[1]2​)=e(W’,[x−z]2​) 是否成立即可。

注意,以上open算法中,VPCV_{PC}VPC​需计算[x−1]2[x-1]_2[x−1]2​,可做如下操作,move G2\mathbb{G}_2G2​ operations into G1\mathbb{G}_1G1​ operations:

整个polynomial commitment scheme——version 2 的计算量为:

Efficient polynomial commitment schemes for multiple points and polynomials学习笔记相关推荐

  1. A (Zero-Knowledge) Vector Commitment with Sum Binding and its Applications学习笔记

    1. 引言 Qiang Wang等人2019年发表于Oxford University Press on behalf of the Institute of Mathematics and its ...

  2. 自动驾驶——CenterNet(Objects as Points)的学习笔记

    1 前言 CenterNet的代码还是有点难懂,不过还是要感谢各位同学分享的资料- 2 CenterNet代码的学习笔记 2.1 数据读取--COCO类 COCO类是用来进行数据读取的,读取之后获得的 ...

  3. RedShift: Transparent SNARKs from List Polynomial Commitments学习笔记

    1. 引言 纽约大学Kattis和Matter Labs团队2019年论文<RedShift: Transparent SNARKs from List Polynomial Commitmen ...

  4. 双变量polynomial commitment

    1. 引言 本博文主要研究的是 Benedikt Bünz 等人(standford,ethereum,berkeley) 2019年论文<Proofs for Inner Pairing Pr ...

  5. Functional Commitment Schemes: From Polynomial Commitments to Pairing-Based Accumulators学习笔记

    1. 背景知识 Benoˆıt Libert, Somindu C. Ramanna 和 Moti Yung 2016年论文 <Functional Commitment Schemes: Fr ...

  6. Marlin中的Polynomial commitment scheme

    1. 引言 前序博客有: Marlin:Preprocessing zkSNARKs with Universal and Updatable SRS学习笔记 相关代码实现有: https://git ...

  7. Vector Commitment Techniques and Applications to Verifiable Decentralized Storage学习笔记

    1. 引言 Campanelli等人 2020年论文<Vector Commitment Techniques and Applications to Verifiable Decentrali ...

  8. Nova: Recursive Zero-Knowledge Arguments from Folding Schemes学习笔记

    1. 引言 前序博客有: Lurk--Recursive zk-SNARKs编程语言 rank-1 constraint system R1CS Spartan中 Vitalik R1CS例子 SNA ...

  9. Efficient Zero-Knowledge Argument for Correctness of a Shuffle学习笔记(3)

    1. 前言 在博客 Efficient Zero-Knowledge Argument for Correctness of a Shuffle学习笔记(1)中介绍了Shuffle argument总 ...

  10. qesa Efficient zero-knowledge arguments in the discrete log setting 学习笔记

    1. 引言 Hoffmann等人 2019年论文 <Efficient zero-knowledge arguments in the discrete log setting >. 相应 ...

最新文章

  1. mysql查询动态表名的数据类型_Mysql中查询某个数据库中所有表的字段信息
  2. ner pytorch project code
  3. 纪念:2006年我在51CTO的第一帖
  4. php 获取ip mac,php获取IP、MAC地址函数
  5. 关于一个域名下如何更换网站
  6. Basis Cash公布V2路线图:将进行流动性迁移并将于Q3推出Basis Swap
  7. 常见十大排序算法--python3实现
  8. 如何仅凭 README 就名列 GitHub No.1 并收获上万 Star?
  9. Android------Button 添加声音效果(两种方式)
  10. 神经网络的直观解释相关文档
  11. 安装Ubuntu操作
  12. 对象转换 json 字符串和 json转换对象的几种方式
  13. android 飞行模式 配置 wifi可用,飞行模式下使用WiFi教程
  14. linux 拼音输出繁体_ubuntu输入法是繁体 寻找Ubuntu中繁体字输入法 - Linux - 服务器之家...
  15. APP推广渠道十种精华方法
  16. 关于身份证号或者手机号,密码 隐藏中间几位数字
  17. python 柱状图折线图共用一个图例_Python数据可视化–折线图–柱状图
  18. Selenium3自动化学习(三)
  19. Spring Boot启动之Hello World
  20. java jsf 入门_JSF入门实战

热门文章

  1. 如何去除win 10右键菜单的“使用skype共享”
  2. Java递归求费数列和_java – 斐波纳契数列 – 递归求和
  3. 机器人开发--NDC方案
  4. 电脑取消撤销快捷键是什么_撤销快捷键ctrl加什么
  5. 苹果mac系统在文件栏添加文件夹的方法
  6. 聊聊H5浏览器实现扫一扫
  7. 计算机原理ms md,初学MD,请教大家一下计算的流程及相关问题 - 第 2 页 - 第一原理 - 小木虫 - 学术 科研 互动社区...
  8. sqlite内存模式
  9. 区块链开发以太坊ETH单位转换关系
  10. Selpg—Golang