学习笔记 | 零知识证明算法之PLONK——电路_LON:区块链

最近研究了下零知识证明算法-PLONK。肚子里的墨水又增加了,记一下学习成果与新的体会,和大家共同学习---江小白。

现状

近些年,各种新的零知识证明算法层出不出,各有各的特点,各有各的优势。借用V神系列文章里的一张图来简单呈现下当前的零知识证明算法现状。

从图中可以简单总结出以下几点:

理论上安全性最高的是STARKs算法,不依赖数学难题假设,具有抗量子性;Proof大小上最小的是SNARKs算法,如Groth16;PLONK算法在安全性上和Proof大小上,位于上述两者之间;其他的这里不做过多阐述,如想了解零知识证明更多信息,可参考链接;对于SNARKs算法,绕不开的一个点就是中心化的TrustSetup,也称之为CRS(theCommonReferenceString)。而无论是PGHR13,Groth16,还是GM17算法,它们的CRS都是一次性的,不可更新的。即,不同的问题将对应着不同的CRS,这在某些场景下,会变得比较麻烦。这些存在的问题,变成了PLONK,SONIC这类算法的一个优势,它们算法虽然也需要中心化的可信设置,但是它的CRS具有一定的普适性。即,只要电路的大小不超过CRS的上限阈值,一些证明问题就可以共用一个CRS,这种CRS称之为SRS(universalStructuredReferenceString),关于SRS的定义,详细的可参考SONIC协议里的第3小节。PLONK算法继用了SONIC算法的SRS的思想,但是在证明的效率上,做了很大的提升。接下来,让我们详细的介绍下PLONK算法的具体细节,主要从下面四个小节去分享:

去中心化机器学习协议ChainML获IOSG Ventures领投400万美元:金色财经报道,由经验丰富的技术高管和机器学习专家创建的全球初创公司ChainML宣布筹集400万美元的种子资金,该公司正在为去中心化机器学习和Web3中相关复杂数据驱动计算构建防篡改、可扩展协议。本轮融资由IOSG Ventures领投,HashKey、SNZ、硅谷高管和天使投资者参与。

ChainML计划利用本轮融资创建其ChainML协议的第一个迭代,简化智能合约、dapp和钱包中AI和机器学习模型的使用。(the block)[2022/9/28 5:55:46]

电路的设计--描述PLONK算法的电路的描述思想;置换论证或者置换校验--复制约束,证明电路中门之间的一致性;多项式承诺--高效的证明多项式等式的成立;PLONK协议--PLONK协议剖析;电路

PLONK算法电路的描述和SONIC算法一直,具体的过程可以参考李星大牛的分享,已经写的比较详细且易懂。在这个小篇幅里,我想主要分享下我自己的两点想法:

墨西哥国立自治大学增加加密货币学习课程:拉丁美洲最大的大学墨西哥国立自治大学(UNAM)将推出一门金融工程课程,该课程的模块涵盖加密货币等科目。全日制学生的新课程将持续两学期,非全日制学生需要参加四学期,该课程将让学生了解加密货币如何在金融市场上使用。(CryptoNews)[2020/12/16 15:20:45]

无论是什么样的电路描述方式,电路的满足性问题都要归结于2点,门的约束关系和门之间的约束关系成立;在SNARKs系列的算法里,电路的描述单元都是以电路中有效的线为基本单元,具体的原理可以参考我之前分享的文章,而在PLONK,SONIC以及HALO算法里,电路的描述单元都是以门为基本单元。这两种电路的不同描述方式带来了一定的思考。那就是,之前在研究SNARKs算法时,我们都已经相信一个事实,“多项式等式成立,就代表着每个门的约束成立”,然后推断,整个电路逻辑都是成立;在这个过程中,并没有额外的去证明门之间的一致性成立;但是在PLONK算法里,除了要证明多项式等式成立外,还要额外的用置换论证的数学方法去证明门之间的约束关系,即复制约束。为何会有这样的区别?希望有心的读者能一起在评论区探讨这个问题?我个人理解是因为电路的描述方式的不同:

动态 | 杭州市委理论学习中心组专题学习会:聚焦人大工作与区块链技术:今日下午,杭州市委举行理论学习中心组(扩大)专题学习会,邀请全国人大常委会委员、中国法学会副会长郑淑娜作“推进新时代人大工作和建设”的辅导报告,浙江大学教授、中国工程院院士陈纯作“区块链技术发展现状和趋势”的辅导报告。陈纯深入浅出地分析了当前区块链技术的发展现状、规律与特点,以及区块链技术在建设网络强国、发展数字经济、助力经济社会发展等方面的重要作用,对杭州如何落实好习总书记关于区块链技术的应用,尤其是提高运用和管理区块链技术能力方面的意见提出了对策建议。[2019/11/22]

PLONK算法里,电路描述的单元是门,它为每个门定义了自己的L,R,O,因此需要证明门之间的一致性;SNARKs算法里,电路描述的单元是线,门与门之间的值用的是同一个witness,因此不用额外证明一致性;置换论证

前面我们说过,在PLONK算法里,需要去证明门之间的约束关系成立。在做具体的原理解释之前,我们先简单的过一下PLONK协议的过程,如下图所示:

金色相对论 | 肖臻:区块链核心技术还是属于分布式系统、密码学等计算机传统领域,跟机器学习也有很好的结合点:在今日的金色相对论中,针对“区块链、分布式系统以及机器学习领域的研究具体应用有哪些”的问题,北京大学计算机系研究员、博士生导师,肖臻表示,虽然区块链表面上是个新的领域,其实核心技术还是属于分布式系统、密码学等计算机传统领域,跟机器学习也有很好的结合点,目前我们正在致力于利用该技术实现智能合约的高效、细粒度并发执行。已有的区块链技术(比如以太坊中的智能合约)只支持单线程,就是因为在多核环境下并行程序的执行存在不确定性,影响区块链中的节点达成共识。我的课题组开发的确定性重演技术有希望极大地提高智能合约的执行效率,成为区块链3.0中的核心技术。我们的另一项成果是基于多智能体的智能决策系统,通过强化学习技术使得各智能体在去中心化的情况下独立做出判断,实现某个预先设定好的效益函数的最大化。[2019/9/12]

可描述为:

根据电路生成三个多项式,分别代表这电路的左输入,右输入,输出;利用置换校验协议,去证明复制约束关系成立;步骤3和4,校验门的约束关系成立。其中第1点已经在电路小节里阐述过了,接下来,将详细的讲解多项式置换校验的原理。先从简单的场景去讲解:

声音 | 学习时报:推进数字货币发展必须在安全、可控、可管的前提下稳妥稳步推进:今日,《学习时报》发表题为“积极谋划我国数字货币发展”的分析文章。文章中表示,加强对数字货币研究,谋划我国数字货币发展未来,已经迫在眉睫。针对我国数字货币发展的对策,文章中建议:1.支持移动支付企业国际化发展;2.加快建立我国数字货币发展体系;3.加快制定数字货币监管制度;4.构建数字货币监管技术体系。文章最后还表示,数字经济时代到来,经济社会各个领域都在加快数字化转型,金融领域也不例外,数字货币作为货币数字化发展的重要方向,未来发展势不可挡。然而,货币的数字化和其他领域的数字化具有很大不同,货币具有较强的金融属性,与各国经济、金融、财政、税收、安全等各类政策高度息息相关,发展措施稍不谨慎甚至会引发经济社会破坏性震荡。因此,推进数字货币发展不允许试错,必须在安全、可控、可管的前提下稳妥稳步推进。[2019/8/16]

单个多项式的置换校验

其实就是证明对于某个多项式f,存在不同的两个点x,y,满足f(x)=f(y)。下面来看具体的原理:

上图中加入了一个正例P,一个反例A,方便大家理解置换校验的原理。有几点需要解释的是:

而经过仔细剖析Z的形式,不难发现,Z(n+1)其实就是两个函数所有值的乘积的比值(不知是否等同于V神文章里的坐标累加器?)。理论上是等于1。因此,我们需要设计这样的一个多项式Z,需满足:deg(Z)<n

Z(n+1)=1

2.乘法循环群刚好可以满足这个条件,如果设计一个阶为n的一个乘法循环群H,根据群的性质可以知道Z(g)=Z(g^(n+1))。因此,在设计Z时,会保证Z(g)=1;上图中的自变量的取值也将从{1...n}变成{g...g^n}。所以在上图中验证的部分,a其实已经换成了群H里的所有元素。

3.根据论文中的协议,多项式Z是会发给可信第三方I验证方V会从I处获取到多项式Z在所有a处的取值,然后依次校验。

下面具体看一下论文中的定义:

从定义中可以看出:多项式f,g在范围内具有相同的值的集合;下面看一下论文中具体的协议部分,结合上述解释的3点:

说明:图4中的f,g对应图3中的f。即f,g是同一个多项式。其实只要是相同的值的集合,也可以不用于是同一个多项式。图3是一个特例而已。

跨多项式的校验

其实就是证明对于某个多项式f,g,存在两个点x,y,满足f(x)=g(y)。与存在两处不同:

多个多项式;不强制x,y的关系,即也可以等,也可以不等;有了(1)小节的基础,这次我们先看一下相关的定义:

从定义可以看到,这次是两个多项式集合见的置换校验算法。从标注的部分可以看出:

两个多项式集合仍然具有相同的值的结合;为了区分集合里的多项式,自变量的索引得区分开来;因此,可以想象的到,如果存在两个多项式f,g,想要证明f(x)=g(y),那么根据以上描述可以判断{f1,f2}={f,g}={g1,g2}。也保证了上述第1点的成立。

下面我们看一下具体的原理:

和(1)小节相比,证明方P增加了些工作量,验证方V工作量不变。结合上述描述,也能很容易的理解其数学原理。

说明:至此,其实我们已经慢慢的接触到PLONK算法的核心了,前面我们讲到,电路的满足性问题除了门的约束关系还有门之间的约束关系。

比如一个输入x,它既是一个乘法门的左输入,又是另外一个乘法门的右输入,这就需要去证明L(m)=R(n),这就是跨多项式的置换校验。

下面再给出论文里的协议内容:

至此,本篇文章已经描述了,在PLONK算法里,电路的设计以及复制约束的成立验证两大部分,接下来,将会另起一片文章,去分享门约束的成立和整个协议的具体步骤。

以上都是作者小白的个人理解,还希望各位读者多多指教,谢谢。

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

金宝趣谈

[0:15ms0-7:954ms