前言
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。因此,证明者需要证明以下几个等式相等:
Taiko将在10小时内弃用alpha-2测试网:4月17日,据Taiko官推消息,将在10小时内弃用alpha-2测试网,并在Q2推出alpha-3。据悉,Taiko项目是一个类似于以太坊的zkrollup(Type1zk-EVM)解决方案。它以社区驱动为主,完全去中心化。[2023/4/17 14:08:08]
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。
利用这个理论,我们把等式(2)/(3)/(4)做以下转换:
1.验证者随机选取一个数y发送给证明者;
加密货币交易所Metatime完成1100万美元的种子轮融资:金色财经报道,尚未启动的土耳其加密货币交易所 Metatime 筹集了 1100 万美元的种子资金。土耳其投资公司 Yildiz Tekno GSYO 和多个未公开姓名的天使投资人参投。这家土耳其加密初创公司正在开发交易所、钱包、区块链、NFT 市场和稳定币。[2023/3/21 13:15:35]
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)
至此,我们已经把2n+1个约束转换成1个约束。下面我们对公式(8)做进一步的优化,把三个点积优化成1个点积
4.?三个点积优化成1个点积
Ripple CTO:很快会就硅谷银行情况发布官方声明:金色财经报道,Ripple首席技术官 David Schwartz在回答有关该公司是否接触过倒闭的 硅谷银行问题时表示,Ripple的官方声明将很快发布。在发表声明之前,他不会对此事发布任何个人意见。硅谷银行倒闭已经震动了全球金融市场,但截至本文撰写时,Ripple公司尚未提供任何是否在硅谷银行存在资金敞口的声明。(u.today)[2023/3/13 12:59:14]
=>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
=><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
Voyager于5小时前售出1449枚ETH并收到225万枚USDC:金色财经报道,Lookonchain监测数据显示,Voyager于5小时前通过Wintermute售出1449枚ETH并收到225万枚USDC,售价为1553美元。
Voyager仍在出售资产,目前持有:148774枚ETH(2.335亿美元);5.17万亿枚SHIB(5778万美元);144万枚LINK(1000万美元);1.17亿枚STMX(730万美元);41万枚AVAX(670万美元)等。[2023/3/5 12:43:12]
=>?<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>
=>?<aL-z*1n,(aR+z*1n)oyn+z2*2n>=z2*v+(z–z2)*<1n,yn>-z3*<1n,2n>???(9)
金色财经独家发现 苹果公司早在一年前就已申请使用区块链技术验证时间戳的系统专利:据外媒 Investopedia 近日报道,苹果公司(NASDAQ: AAPL)已经向美国专利和商标局提交了一份新的专利申请,该专利透露出苹果公司或正在创建一个使用区块链技术验证时间戳(timestamp)的系统。苹果正在尝试使用时间戳公钥在证书验证方面的应用。苹果公司也并不是唯一一家注重区块链技术的巨头。Investopedia 表示,9 月份,微软公司(NASDAQ: MSFT)与以色列最大的银行 Hapoalim 达成协议,以此为基础开发数字银行担保平台。
金色财经查询独家发现,苹果早已在一年前的8月份就申请了该项专利。[2017/12/26]
=>?令
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
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。