ROT:密码专栏 | 超强进阶:PLONK VS Groth16(下)

前言

本篇是“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的隐私信息。

开源密码管理器KeePass最近修复一个允许检索主密码的漏洞,目前暂无补丁:5月22日消息,慢雾首席信息安全官23pds发推提醒称,开源密码管理器KeePass最近修复一个允许检索主密码的漏洞,该漏洞可被利用来从软件内存中检索出明文主密码,PoC已公开,目前暂无补丁。加密货币圈有不少用户使用此软件,注意资金风险。[2023/5/22 15:18:42]

那么有什么方法能在解锁的同时保护隐私信息呢?

这里我们用到一个简单的数学小技巧:减除,对此不太了解的读者可查阅文章最后的前置知识。在前文《超强进阶:PLONKVSGroth16》我们已经对从约束系统转化到多项式进行了详细的描述,在此我们不再赘述具体的转化过程,但需要重复的一点是:根据生成时使用的点值对,生成的多项式在这些点处的取值将恒为0。PLONK同理,此处我们给出两种算法的约束系统转化为多项式后的形式。

Groth16:

密码学博士高承实:量子计算机大规模应用将对非对称密码算法和哈希函数带来致命性的影响:密码学博士,计算机应用专业副教授高承实发表《量子计算机的应用会颠覆掉比特币系统吗?》专栏文章,文章表示,量子计算机从发展状况来看,还处于极其早期阶段,离真正实用还有相当远的距离。如果量子计算机真正能够大规模应用,将对密码算法当中的非对称密码算法和哈希函数带来致命性的影响。现在基于数学难解问题而生成的非对称密码算法RSA和ECC安全性将不复存在,哈希函数的抗碰撞性也将受到极大挑战,除非尽可能增加哈希函数的输出长度。目前的非对称密码,主要是ECDSA和哈希函数SHA256,是比特币系统最核心的底层技术,确保了比特币分配和支付的安全,在比特币系统的多个环节得到了应用,包括生成钱包地址、对交易进行签名和验证、计算区块内所有交易的默克尔数生成区块以保证块内数据难以被篡改、激励矿工开展挖矿竞赛以维护系统的自运行……如果ECDSA和SHA256两种算法的安全性不复存在,那么整个比特币系统的安全性也将不复存在。

当然我们也没有必要那么悲观。第一,量子计算机的真正使用还有相当远的距离;第二,随着量子计算以及量子计算机的发展,抗量子计算的密码算法也会同步得到发展,比如格密码。

真的到了那个时候,或者比特币系统中的密码模块会替换为抗量子计算的密码模块,或者比特币已经完成它的历史使命,从这个世界上消亡。(财新)[2020/12/24 16:21:46]

PLONK:?我们设门约束多项式为D(X),线约束多项式为L(X),那么PLONK的整个约束多项式将被表示为:

OKEx冷钱包密码掌管人分别位于中国和美国,并备份在中美两个银行的保险柜:据OKEx官网,OKEx比特币冷钱包是在完全离线的电脑上生成10000个私钥和对应的地址,在对私钥进行AES加密后删除原始私钥。AES密码由公司的两个分属异地的人掌握,OKEx 的两位密码掌握人,一位在OKEx办公室,一位在美国西部某城市,两个人不得乘坐同一辆交通工具。加密后的私钥和明文地址会生成二维码加密文档,并在异地银行保险柜备份,OKEx有两份备份,一份在OKEx办公室附近的银行保险柜,一份在美国东部某城市一家银行的保险柜内。[2020/10/19]

可以看到,两者都使用了减除的思路,也就是这里的h(X)和ZH(X),其具体内容取决于构建约束多项式时取的点值。

证明与验证

同样在之前的文章中,我们可以看到Groth16的证明规模极小,只包含三个群元素A,B,C。然而,这样优雅的证明实现依赖于它的非通用可信设置,这也是Groth16的一大痛点。在Groth16中,证明方提供A,B,C,验证方基于可信设置提供的参数,构建一个配对验证等式。在验证过程中包含了三次配对操作,也就是对验证性能影响较大的耗时运算。Groth16的具体证明验证如下所示。

Vtoken技术团队已着手研究抗量子密码算法和安全协议:据官方消息,目前Vtoken技术团队已着手研究通过抗量子密码算法和安全协议,来抵抗量子计算机和攻击算法对当前交易密码体制的威胁,为下一步搭建具备抗量子能力的交易所系统预备底层密码组件。[2020/3/9]

Groth16证明:

Groth16验证:

相比之下,PLONK的证明验证将会复杂得多,这也是使用通用可信设置付出的代价。从验证方角度看,由于可信设置参数缺少了包含问题具体内容,从而无法帮助其构建一些制约证明多项式的值。因此,如何固定住证明多项式的内容成为一个难题。PLONK使用的一个思路是引入Kate承诺。

现场 | 于佳宁:密码经济时代法定数字货币带来四大变革:11月10日下午,2019密码经济研讨会在重庆市南岸区华商国际会议中心正式开幕。火币大学创始人于佳宁发表了《密码经济时代的风口:智能商业变革》为主题的演讲,于佳宁表示密码经济时代法定数字货币将带来低成本高效率、较为稳定与安全、支付记录可控匿名、交易数字化与智能化四大变革。于佳宁认为区块链很大程度上是密码经济的一个分支,在密码经济的应用下,万物的交易将带来经济效益的急剧飞跃和生产力的极大提升。[2019/11/10]

结合前述的约束多项式,我们可以对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.

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

金星链

[0:0ms0-1:41ms