前言
本篇是“PLONKVSGroth16”的下篇,在上篇中我们对PLONK作了简要介绍,分析了PLONK和Groth16算法在「可信验证」和「约束构建」上的异同。那么,接下来让我们一起看看在后续的「证明生成」和「验证阶段」两者将有怎样的差异,以及整体上的性能区别。
证明生成
对于程序qeval,prover需要证明自己知道qeval(x)=35的解,即x=3。
defqeval(x):
y=x**3
returnx+y+5
在上篇中我们已经介绍了PLONK的约束形式:门约束与线约束。继续使用之前的例子,约束意味着零知识证明系统将这个问题约束成了一组格式固定的数学表达式,即问题描述等价于约束描述。而如果证明者真的知道这个问题的答案,将答案和计算中的中间参数代入约束表达式,这个组表达式必将是成立的。反之,如果该Prover提供的一组解无法使表达式成立,说明prover并不具备关于该问题解的知识。
这是最朴素的证明验证思路,可以将它看作是“锁”和“钥匙的配对“:该问题约束的构建类似于“打造门锁“,而针对该问题提供的一组解信息就是”一把开启门锁的钥匙“。显然,Prover可以举着自己的解交给验证者来验证。可是这违背了我们的零知识原则:Verifier不应该获取到Prover的隐私信息。
慢雾:Apple Store恶意钓鱼程序可模仿正常应用程序,盗取账号密码以绕过2FA:7月25日消息,慢雾首席信息安全官23pds发推提醒用户注意Apple ID出现的最新攻击案例,其中Apple Store出现恶意钓鱼程序,通过模仿正常应用程序盗取用户账号和密码,然后攻击者把自己的号码加入双重认证的信任号码,控制账号权限,用来绕过苹果的2FA。“加密货币用户务必注意,因为目前有不少用户、钱包的备份方案是iCloud备份,一旦被攻击,可能造成资产损失”。[2023/7/25 15:56:56]
那么有什么方法能在解锁的同时保护隐私信息呢?
这里我们用到一个简单的数学小技巧:减除,对此不太了解的读者可查阅文章最后的前置知识。在前文《超强进阶:PLONKVSGroth16》我们已经对从约束系统转化到多项式进行了详细的描述,在此我们不再赘述具体的转化过程,但需要重复的一点是:根据生成时使用的点值对,生成的多项式在这些点处的取值将恒为0。PLONK同理,此处我们给出两种算法的约束系统转化为多项式后的形式。
Groth16:
Mano 首席技术官:Web3 的额外部分是对等发现层、密码学和共识协议:金色财经现场报道,在Coinlive举办的峰会上,题为“塑造新加坡数字资产类别的未来”的圆桌讨论邀请了 Cobo 首席运营官 Lily Z. King、新加坡管理大学 (SMU) 经济学助理教授(实践) Goh Jing Rong、Immin Mano Thanabalan 首席技术官、德国创业亚洲 Yitch,区块链协会 (BAS) 合作伙伴总监 Yoon KC (Steven)。关于 Web3 是什么以及数字资产在 Web3 生态系统中扮演什么角色的问题,Mano 首先说 Web3 的额外部分是对等发现层、密码学和共识协议,这可能是最有趣的。 YC 澄清应该是 Web3 而不是 Web 3.0。
Lily 补充说,EWeb3 有望成为一个更加开放的互联网,让所有用户都能从中受益。 Jing Rong 列出了下一代互联网的三个定义,使用新闻技术来改进当前的网络,并专注于去中心化,即控制权被分配给生态系统中的多方。最后一个给出答案的 Yitch 解释说,归根结底,数字资产只是数字,除非你可以创造现实世界的效用。其他问题,如数字资产的机构采用、法规等,引起了小组成员的不同回应。[2022/12/22 22:00:54]
PLONK:?我们设门约束多项式为D(X),线约束多项式为L(X),那么PLONK的整个约束多项式将被表示为:
OKEx已完成资金密码服务升级:据官网公告,OKEx已于5月22日完成资金密码服务升级。同时,币币交易和杠杆交易时将不再需要输入资金密码,法币交易时将由风控系统判断是否要输入资金密码。本次升级只涉及交易功能,其它场景(如提币)的资金密码服务不受影响,可照常使用。[2020/5/22]
可以看到,两者都使用了减除的思路,也就是这里的h(X)和ZH(X),其具体内容取决于构建约束多项式时取的点值。
证明与验证
同样在之前的文章中,我们可以看到Groth16的证明规模极小,只包含三个群元素A,B,C。然而,这样优雅的证明实现依赖于它的非通用可信设置,这也是Groth16的一大痛点。在Groth16中,证明方提供A,B,C,验证方基于可信设置提供的参数,构建一个配对验证等式。在验证过程中包含了三次配对操作,也就是对验证性能影响较大的耗时运算。Groth16的具体证明验证如下所示。
声音 | 中国法学会副研究员:《中华人民共和国密码法(草案)》公开征求意见,或有利于促进区块链等加密技术的商用:据财经网报道,中国人大网公布《中华人民共和国密码法(草案)》,公开征求社会公众意见,征求意见截止日期为2019年9月2日。 中国法学会法治研究所副研究员刘金瑞表示,《中华人民共和国密码法(草案)》的推出既有利于规范区块链等新型技术的应用,也有利于促进区块链等加密技术的商用,当然有些具体问题有待进一步深入研究。 据草案第12条明确规定:“任何组织或者个人不得窃取他人的加密信息,不得非法侵入他人的密码保障系统,不得利用密码从事危害国家安全、社会公共利益、他人合法权益的活动或者其他违法犯罪活动。”此外草案还对核心密码、普通密码与商用密码实行分类管理,为贯彻落实职能转变和“放管服”改革要求,规范和促进商用密码产业发展,草案第三章规定了商用密码的主要制度。[2019/7/5]
Groth16证明:
现场 | 刘昌用:密码技术是无币区块链和通证的交集:金色财经现场报道,今日西安举办的“首届区块链嘉年华”活动上,重庆工商大学区块链经济研究中心主任刘昌用认为:密码共识基础设施由开发平台、密码货币和共享存储组成,通证和无币区块链虽然不是去中心化体系,但密码共识基础设施、通证和无币区块链也有交集,交集就是密码技术。他提到,token相当于血液系统,无币区块链相当于机器人,但区块链行业需要有血液才能流动。[2018/8/26]
Groth16验证:
相比之下,PLONK的证明验证将会复杂得多,这也是使用通用可信设置付出的代价。从验证方角度看,由于可信设置参数缺少了包含问题具体内容,从而无法帮助其构建一些制约证明多项式的值。因此,如何固定住证明多项式的内容成为一个难题。PLONK使用的一个思路是引入Kate承诺。
结合前述的约束多项式,我们可以对t(x)中出现的每一项都构建一个承诺,以实现验证方的验证。PLONK证明的具体内容如下,包含了两个点处的验证:Wz(X)为多个多项式的同点承诺,Wzw(X)则为另一个点处的对z(X)的承诺。
最后,PLONK的验证在原文中也被归纳为一个简洁的公式,实际上就是将上面提到的两个点处的承诺简单相加,具体等式如下所示:
以上就是PLONK和Groth16算法内容的具体对比结果,讲了这么多冗长的公式变换,两者在性能层面的差距究竟如何呢?
性能比较
在这里我们给出的是PLONK论文中的结论。Table1是在证明阶段的一个性能比较,Table2则是验证阶段的性能。可以看出,在验证上,两者的差距不大,Groth16比PLONK多了一次配对运算;而在证明方面我们遗憾地发现,Groth16不论在证明的工作量还是证明长度上仍然保持着最优的性能。但需要指出的是PLONK,尤其当它工作在fast模式时,所使用的SRS长度是所有算法中最短的。
▲验证阶段性能比较
▲证明阶段性能比较
前置知识
多项式减除
顾名思义,化减为除:若我们需要证明一个多项式f(x)在点a的取值为b,也就是证明f(a)-b=0;那么我们可以将其转换为证明多项式f(x)-b可以整除(x-a)。其数学表示:
设多项式f(x)且f(a)=b,则存在一个多项式g(x),使得:f(x)-b=g(x)(x-a)
kate承诺Kate承诺是由Kate,Zaverucha和Goldberg在2010年提出的一种多项式承诺方案。Kate承诺有多种形式,本文仅介绍PLONK中使用的常用形式,详细可参考其paper中的相应内容。其常用形式可以概括为对多项式的隐藏和部分打开验证。针对多项式f(x),Kate承诺的具体步骤如下:
1)构造f(x)在点a处的承诺C
C:f(a)
2)选取点z,执行f(z)的opening
gz(x)=f(x)-f(z)/x-z
wz=gz(x)
3)给定f(z),C和Wz,验证Kate承诺
C=wz*(a-z)+f(z)
以上就是“PLONKVSGroth16”的全部内容,如有任何疑问,欢迎添加小助手桔子加入技术交流群,在这里,你想知道的都会得到解答~
A.Kate,G.M.Zaverucha,andI.Goldberg.Constant-sizecommitmentstopolynomialsandtheirapplications.pages177–194,2010.
ArielGabizonandZacharyJ.WilliamsonandOanaCiobotaru.PLONK:PermutationsoverLagrange-basesforOecumenicalNoninteractiveargumentsofKnowledge.2019.
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。