前言
Bulletproofs,又一个有意思的零知识证明算法,相信读者已经很熟悉它了。和zk-snark相比,它不需要可信设置;和zk-stark算法相比,它具有较小的proofsize。根据论文,它有两个方面的应用:1.用于rangeproof;2.用于一般算术电路的零知识证明。下面,让我们先看一下Bulletproofs是如何高效的实现第一点。
Rangeproof
1.?预备知识
aL:表示向量{a1,a2……an}
2n:表示向量{20,21…2n-1}
<a,b>:表示向量内积∑ai*bi,结果是一个值
aob:向量对应位相乘,{a1*b1……an*bn},结果是一个向量
2.?证明
Alice想要证明
v?
=>则,需要证明一个relation得成立,如下所示:
{:V=grhv^v?}
public-x??????????witness-wrelation-R
即,对于公开信息x,Alice有隐私信息w,使得关系R成立。
令aL为金额v的在范围内的二进制形式,则aL={a1,a2……an}?{0,1}n,且满足<aL,2n>=v。因此,证明者需要证明以下几个等式相等:
声音 | 国家可再生能源信息管理中心:区块链等创新技术正在改变新能源资产流通全格局:12月7日,由北京市人民政府和国务院发展研究中心主办的“2019全球能源转型高层论坛”在北京举行,国家可再生能源信息管理中心的代表提出,以区块链为代表的创新数字化技术正在改变着新能源资产流通全格局。“新能链”在该场景上已实现落地应用。通过区块链技术,新能链对光伏电站等新能源底层资产的基础信息、权属证明、审核证书等关键信息达成共识,并进行确权登记、证书颁发和司法存证。基于分布式节点认证,能够保证信息可追溯和防篡改,在推动资产的确权上更加高效、便捷和低成本。(每日经济)[2019/12/10]
V=grhv????(1)
<aL,2n>=v???(2)
aLoaR=0n??(3)
aR=aL-1n???(4)
等式(1)确保了承诺V和金额v的绑定关系,等式(2)确保了v的范围,等式(3)(4)确保了a
L元素只属于{0,1}。等式(2)/(3)/(4)总共包含了2n+1个约束,其中公式(2)1个,公式(3)(4)各n个。接下来,为了效率,我们需要把2n+1个约束转换成1个约束。
3.?2n+1个约束转换成1个约束
=>预备:从Zp中任意选择一个数y,则b=0n是等式<b,yn>=0成立的充分条件;因为当b!=0n,等式成立的概率仅有n/p,p是有限域,远大于n。因此,如果有<b,yn>=0,那么验证者愿意相信b!=0n。
动态 | 环球通证前三季度净亏损6527.9万港元 区块链技术研发导致开支大幅增加:据财华社消息,环球通证(08192-HK)2018财年前三季度亏损由上年同期的约1064.4万港元增加至6527.9万港元,亏损主要由于同时期加密货币价值变动导致,其亏损额累计为990万港元,另外该集团于区块链技术相关研发的重大投资导致该集团于2018年财年前三季度的行政开支大幅增加。[2018/11/12]
利用这个理论,我们把等式(2)/(3)/(4)做以下转换:
1.验证者随机选取一个数y发送给证明者;
2.证明者要证明:
<aL,2n>=v(5)
<aL,aRoyn>=0???????(6)
<aL-1n-aR,yn>=0???(7)
同理,等式(5)确保了v的范围,等式(6)(7)确保了a
L元素只属于{0,1}。此时2n+1个约束转换成3个约束,接下来,还需要做进一步的处理:
1.验证者随机选取一个数z发送给证明者:
2.证明者利用z对公式(5)(6)(7)进行线性组合,得到如下公式:
z2*<aL,2n>+z*<aL-1n-aR,yn>+<aL,aRoyn>=z2*v???(8)
动态 | AMD区块链技术总监 用于挖矿的APU处理器很快问世:7月28日消息,AMD区块链技术总监Joerg Roskowetz日前接受了日本PCwatch网站的采访,谈到了AMD在区块链及数字货币上的一些理念及动向,其中就提到了一些GPU与ASIC矿机芯片、AMD PSP安全技术以及APU挖矿的内容。Joerg Roskowetz提到APU挖矿的可能性限于DDR4内存的带宽,现在用APU挖矿相比使用GDDR5显存甚至HBM 2显存的显卡是没什么优势的,不过他表示AMD正在研究可以把部分计算放到APU处理器(CPU端)的产品,实现这一目标的产品会在不远的将来出现。[2018/7/28]
至此,我们已经把2n+1个约束转换成1个约束。下面我们对公式(8)做进一步的优化,把三个点积优化成1个点积
4.?三个点积优化成1个点积
=>z2*<aL,2n>+z*?<aL-1n-aR,yn>+<aL,aRoyn>=z2*v
=><aL,z2*2n>+<aL,z*yn>-<z*1n,yn>-<z*aR,yn>+<aL,aRoyn>=z2*v
=><aL,aRoyn+z*yn+z2*2n>-<z*1n,yn>+<z*1n,ynoaR>=z2*v
动态 | 沃尔玛开发新专利 利用区块链技术追踪包裹:据Coindesk消息,沃尔玛已成功获得包裹追踪新专利,利用区块链技术打造快递储物系统,提供快递预约服务。当收货方无法及时收货时,该系统可安全保管包裹,直到收获方将包裹签字取走为止。[2018/7/9]
=><aL,aRoyn+z*1noyn+z2*2n>-<z*1n,yn+ynoaR>=z2*v
=><aL,(aR+z*1n)oyn+z2*2n>-?<z*1n,yn+ynoaR>=z2*v
=><aL,(aR+z*1n)oyn+z2*2n>-?<z*1n,(aR+z*1n)oyn+z2*2n-z*1n*yn+yn-z2*2n>?=?z2*v
=>?<aL-z*1n,(aR+z*1n)oyn+z2*2n>-<z*1n,-z*1n*yn+yn-z2*2n>=?z2*v
=>?<aL-z*1n,(aR+z*1n)oyn+z2*2n>=z2*v+<z*1n,-z*1n*yn+yn-z2*2n>
=>?<aL-z*1n,(aR+z*1n)oyn+z2*2n>=z2*v+<z*1n,(-z*1n+1n)*yn>-<z*1n,?z2*2n>
加拿大使用区块链技术构建数字身份证:
加拿大将使用手机结合区块链技术辨别所有的个人信息,包括汽车驾驶证信息以及银行信息。该技术使得每个人能掌控自己的个人信息,通过区块链技术、分布式账本技术在没有第三方的情况下私密分享个人信息。[2017/11/14]
=>?<aL-z*1n,(aR+z*1n)oyn+z2*2n>=z2*v+(z–z2)*<1n,yn>-z3*<1n,2n>???(9)
=>?令
L=?aL-z*1n
R=?(aR+z*1n)oyn+z2*2n
δ=?(z–z2)*<1n,yn>-z3*<1n,2n>
5.验证:
1.证明者把L/R/V发送给验证者;
2.验证者事先算好δ
3.验证者根据L算出来aL,根据<aL,2n>=v算出v
4.验证者根据L,R,v,δ验证等式<L,R>=z2*v+δ
因为y,z都是验证者提供,因此如果验证者如果能验证公式(9)成立,则相信等式(5)(6)(7)成立,则相信等式(2)(3)(4)成立,则相信v满足关系v?。
但是,可以看到上述过程,泄露了v的信息,因此需要一个零知识证明协议。
6.?一个零知识证明协议
由于L,R包含了v的相关信息,因此,我们需要添加两个盲因子s
L
、s
R来隐藏a
L,a
R。如公式(10)(11)所示:
l(X)=(aL-z*1n)+sL*X)??(10)
r(X)=(aR+z*1n+sR*X)oyn+z2*2n???(11)
此时,定义公式(12)
t(X)=<l(X),r(X)>=t0+t1*X+t2*X2???(12)
可以看出系数t
0是l(x)和r(x)常数项的乘积,即满足:
t0=<L,R>=z2*v+δ
因此,问题由证明:
<L,R>=z2*v+δ
转化成了,在任意一点x,验证者验证多项式值l(x),r(x),t(x)满足关系:
<l(x),r(x)>=t(x)
多项式值l(x),r(x),t(x)由证明者提供,为了保证l(x),r(x)well-formed,即:
l(x)=(aL-z*1n)+sL*x)
r(x)=(aR+z*1n+sR*x)oyn+z2*2n
需要校验:
P=A*Sx*g(-z)*(h`)z*yn+z^2*2^n
=hαgaLhaR*(hρgsLhsR)x*g(-z)*(h`)z*y^n+z^2*2^n
=hαgaLhaR*?hρxgsL*xhsR*x*g(-z)*(h`)z*y^n+z^2*2^n
=hα+ρx*gaL+sL*x–z*1^n*haR+sR*x*(h`)z*y^n+z^2*2^n
=hα+ρx*gaL+sL*x–z*1^n*(h`)y^no(aR+sR*x)*(h`)z*y^n+z^2*2^n
=hα+ρx*gaL+sL*x–z*1^n*(h`)y^no(aR+sR*x)+z*y^n+z^2*2^n
=hα+ρx*gaL+sL*x–z*1^n*(h`)y^no(aR+sR*x+z*1^n)+z^2*2^n
=?hμgl(h`)r
=>当且仅当l/rwell-formed,等式成立
为了保证t(x)well-fromed,即:
t=t0+t1x+t2x2
需要校验:
=>gthτx=?Vz^2*gδ*T1x*T2x^2
=>gthτx=?(hrgv)z^2*gδ*(gt1)x*(hτ1)x*(gt2)x^2*(hτ2)x^2
=>gthτx=?hz^2*r+τ1*x+τ2*x^2*gz^2*v+δ+t1*x+t2*x^2
=>gthτx=?hz^2*r+τ1*x+τ2*x^2*gt0+t1*x+t2*x^2
=>t=?t0+t1*x+t2*x2&&τx=?z2*r+τ1*x+τ2*x2
=>当且仅当t和τxwelle-formed,等式成立
具体的协议流程图如下图所示:
总结
从上述流程可以看出,一次rangeproof,证明者需要发送总共{
l/r/t/
τ
x
/
μ
/T1/T2/A/S}个元素给验证者,总共2n+3个Z
p元素,4个G元素。下一篇文章将细讲,Bulletproofs如何将交互复杂度降低到对数级O(log(n))
附录
1.Bulletproofs论文:
chrome-extension://cdonnmffkdaoajfknoeeecmchibpmkmg/assets/pdf/web/viewer.html?file=https%3A%2F%2Feprint.iacr.org%2F2017%2F1066.pdf
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。