上一篇主要描述了PLONK协议里的一个核心部分,用置换校验的方法去证明电路门之间的一致性;接下来,将继续分享如何证明门的约束关系得成立,以及整体的协议剖析。
门约束
举个简单的例子,假如存在一个电路,电路中仅有3个乘法门,对应的约束如下:
L1*R1-O1=0
L2*R2-O2=0
L3*R3-O3=0
进行多项式压缩:定义多项式函数L(X),R(X),O(X)满足:
L(1)=L1,R(1)=R1,O(1)=O1
L(2)=L2,R(2)=R2,O(2)=O2
L(3)=L3,R(3)=R3,O(3)=O3
此时,定义新的多项式函数F(X),令F(X)=L(X)*R(X)-O(X)
则有:
F(1)=L(1)*R(1)-O(1)=0
F(2)=L(2)*R(2)-O(2)=0
F(3)=L(3)*R(3)-O(3)=0
也就是表明:如果多项式函数F(X)在X=1,2,3处有零点,则说明门关系约束成立。
多项式函数F(X)在X=1,2,3处有零点则表明多项式F(X)可以被(X-1)(X-2)(X-3)整除,为了和论文一致,我们把这个多项式函数设置成Z(X),即:
F(X)=T(X)*Z(X)==>T(X)=F(X)/Z(X)
美团联合创始人王慧文将即刻App签名改为:“正在学习Crypto”:4月1日消息,据即刻App显示,美团联合创始人、前美团点评高级副总裁王慧文将其签名改为:“正在学习Crypto”。[2022/4/1 14:31:08]
如果能证明T(X)是一个多项式,则说明多项式F(X)与Z(X)有相同的零点,进而说明门约束关系成立。
一般过程应该如下:
1.P计算F(X)并把F(X)发送给V;
2.V根据Z(X)直接校验F(X)/Z(X)
但是如此过程存在两个问题,一个是复杂性问题,假如F(X)的阶为n,那通信复杂度就是O(n);而是安全性问题,多项式F(X)完全暴露给V。
那应该如何解决这两个问题呢?最佳的答案可能就是:多项式承诺
多项式承诺
什么是多项式承诺?就是证明方P用一个很短的数据来代表一个多项式F,这些很短的数据可以被验证方V用来验证多项式F在某一点的值确实为证明方P声称的值z。
具体看一下论文里的定义:
由图可知:
1.Setup:初始化,生成计算多项式承诺需要的一些必备参数;
Mark Cuban:加密货币市场不需像股票市场那样花很多钱“学习”:11月1日消息,亿万富翁、NBA达拉斯独行侠队老板Mark Cuban就当前的加密市场给了新投资者一些建议:你不必花很多钱来学习,因为这不像股票市场,除了在少数平台上,几乎不可能花10美元开始。(Bitcoin.com)[2021/11/1 21:15:04]
2.Commit:计算多项式承诺,其结果是一个值;
3.Open:返回与多项式承诺对应的多项式函数;
4.VerifyPoly:验证多项式承诺是否和多项式函数一致;
5.CreateWitness:证明多项式函数在某一点的值是否是证明方P声称的值,具体的数学方法就是:判断多项式是否能被整除,即:
6.VerifyEval:验证方V验证多项式函数在某一点的值是否是证明方P声称的值,具体的数学方法是:利用双线性配对验证其数学乘法逻辑关系。
继续回到我们上面的问题:
证明方如何证明:T(X)=F(X)/Z(X),我们再简化一下场景,就令Z(X)=X-1,则:
T(X)=F(X)/(X-1)==>T(X)*(X-1)=F(X)==>T(X)*X=F(X)+T(X)
对应多项式承诺的协议可知:证明方P其实是想证明多项式函数F(X)再X=1处的值为0,因此根据协验证方只需要证明:
e(Commit(T(x)),x*G)=?e(Commit(F(x))+Commit(T(x)),G)(双线性配对的性质)
动态 | 英国金融时报:各国央行应学习中国纳入数字支付 而非发行数字货币:金融时报周二刊文称,中央银行不应发行数字货币,因为其没有能力与个人客户打交道,并且还涉及合规性检查等问题。中央银行不应急于与Facebook、Tether和微信这样的公司竞争或是直接禁止它们,而是最好向中国人民银行那样将数字支付纳入中央银行业务并将重点放在他们最擅长的方面:管理稳定性。这之后,如果稳定币变得受欢迎,以至于其储备开始成为贷款的限制,中央银行就可以开始对这些储备收取负利率,同时可以决定向客户收取多少费用。[2019/9/18]
可以看出,利用多项式承诺的数学工具,既可以实现复杂度的优化,又可以实现隐私保护。
协议
接下来分析一下完整的PLONK协议:
Relation
上图表示了PLONK算法里,要证明的一种关系,需要说明的是:
1.w代表着电路里的输入、输出,总共3n个,n是电路里乘法门的数量,每个门都有左输入,右输入和输出,因此w总共有3n个;
2.q*代表着选择向量,它的取值对应这这个是乘法门,还是加法门等类似的约束类型
动态 | 微软工程师提出利用以太坊区块链使机器学习和人工智能“民主化”:据Crypto Slate报道,微软的工程师们正在使用Ethereum区块链来“民主化”人工智能和机器学习,使这些典型的集中化且成本高昂的系统更容易被所有人使用。微软高级软件开发工程师Justin Harris表示,使用精心设计的机器学习算法可能会产生问题,因为这些算法往往是集中式的。因此,他为微软介绍了一项新的开源计划:区块链上的去中心化和协作式AI。 在新模式中,Harris设想以奖励来激励人们与这些机器学习算法进行交互和改进。这些算法可以自由地用于评估预测,这对于构建个人助理或制作带有用户推荐的系统是理想的。[2019/7/28]
3.σ代表着置换多项式,其表示门之间的一致性约束索引
4.倒数第一个公式代表门之间的约束成立
5.倒数第二个公式代表门的约束关系成立
CRS&P_Input&V_Input
上图表示了PLONK算法里的CRS设置,以及证明方P和验证方V的一些输入,需要说明的是:
1.整个协议都是基于多项式的,因此需要构建对应的多项式形式。
加密货币投资人暴走恭亲王:加密货币的投资,需要花时间学习和了解项目:今日凌晨,著名加密货币投资人暴走恭亲王发布微博,称:对于新人而言,我个人的建议是利用这段时间可以多学习行业的知识,我始终认为你只有对行业越了解,你才能对于行业越有信心。如果你对数字货币不了解,对参与的项目不了解,对全球发展趋势不了解,那么群里只要有一些风吹草动,你马上就会心中生出无数的疑虑,并且很快会在谣言中作出很多让你可能抱憾终身的决定(这种决定我也做过)。很多人希望在群里面充值信仰,我个人觉得很难,如果你真的能够把时间花在学习和了解知识以及项目上,那真的可以让你握住自己的币。发文疑似是对周末“过山车”行情的观点表达,他也表示发文是“关于币本位和充值信仰”。[2018/3/19]
2.多项式σ的阶是3n的,由于和多项式承诺相关的CRS最高的阶位n+2,因此需要把σ拆分成3个多项式S,分别记录每个多项式的置换关系(L,R,O);
3.为了减少通信复杂度和保护隐私,协议基于多项式承诺构建,因此验证方V的输入都是承诺值。
Prove
上图表示了PLONK算法里证明方的一些操作,需要说明的是:
1.b1,...b9是随机数,从用法看是为了安全,但是我暂时也没明白,不加这个随机数,又会有什么安全问题?
2.a(X),b(X),c(X)分别是代表了电路里的左输入,右输入和输出
3.,,表示多项式的承诺值,参考多项式承诺小节里的承诺计算方法
上图表示了PLONK算法里证明方的一些操作,主要是置换校验,参考第一篇的置换校验的协议过程,生成多项式z(X),需要说明的是:
1.β和?都是用来生成置换校验函数的参数,详见第一篇里f`(x)和g`(x)的生成过程;
2.z(X)的生成方式对应置换校验里跨多项式的生成过程,Li(X)为拉格朗日多项式基,性质满足,尽在x=i的时候为1,其他为0;
3.注意区分ω和w,ω是群H的生成元,是多项式的自变量的取值。w是电路的左输入,右输入和输出,是多项式L,R,O在在群H上的取值。
上图表示了PLONK算法里证明方P的一些操作,主要是把门约束和门之间的一致性约束组合到一起,通过α,需要说明的是:
1.根据前面的描述,门约束多项式和一致性约束多项式在群H上的所有元素都是取值为0的,因此都会被多项式ZH(X)整除,等同于上面所述的T(X);
2.因此,证明方只要能证明整除的结果的确是多项式,那就能证明,门约束多项式和一致性多项式在群H所有元素上取值为0,即所有约束关系成立,即电路逻辑成立;
3.可以知道的是t(X)的阶最高为3n,但是用于计算承诺的CRS只到了n的级别,因此需要把多项式t(X)拆分,然后单独计算承诺值。
上图表示了PLONK算法了证明方P的一些操作,主要根据多项式承诺的协议,前面P算出了多个多项式在点x=z处的值是多少,现在要用多项式承诺协议去证明,这些计算是正确的,需要说明的是:
1.为了减少验证方V的操作复杂度,t(X)的分子部分r(X)在x=z处的值,P计算好,然后验证方直接验证,其他的操作类似;
2.v的值看起来是为了更安全;
3.Wz(X)对应多项式协议里的CreateWitness操作,证明这些多项式r(X),a(X),b(X)等在x=z处的值确实等于r,a,b等,对Wzw(X)同理,并返回承诺值。
Verify
至此,证明方P的所有操作都完事了,接下来都是验证方V的操作。
上图表示了PLONK算法里验证方V的一些操作,主要重新生成相关的参数,确保证明方P没有作恶。需要说明的是:
1.从输入看,比较清晰,就是一些公开的输入和证明方P的证明输出;
2.根据输入,生成置换校验过程中需要的一些参数
上图表示了PLONK算法里验证方V的一些操作,对于一些公开的,并且计算复杂度很小的多项式,其在x=z处的值还是需要自己计算,更为方便。需要说明的是:
1.根据证明方P的过程来看,验证方V的核心工作就是验证两个多项式承诺;
2.两个多项式承诺验证需要两个配对,可以通过一个参数组合成一个配对,即μ;
3.在验证前,先计算Wz(x),Wzw(x)的分母在x=z处的值,两部分,减数和被减数,分别对应,。μ作为系数的,就是对应Wzw(X)多项式的。
4.最后通过一个双线性配对操作完成两个多项式承诺的验证。
结束
至此,PLONK算法的协议原理已全部分享完成,公式很密集,但是细分下来,又很有层次感。能坚持看完,已实属不易。各位读者有什么不同的简介,还请指教,谢谢。
官方消息,基于Web3的去中心化API服务API3表示,很抱歉地通知社区和所有参加ETHIndiaOnline&EtherPunk2021的开发人员.
1900/1/1 0:00:00平时,想要了解产品的质量,扫一扫产品上贴的质量码,全要素的质量数据都会展现在你的面前。如今,不仅商品有质量码,店铺也可扫码查看。近日,“放心消费在松原”创建项目一期建设顺利验收.
1900/1/1 0:00:00耶伦的美国财长提名已获参议院投票正式通过,耶伦将在今晚宣誓就任美国财政部长。即将上任的美国财长并不是比特币的粉丝,由于其声称将加强对数字货币的监管,市场一度反应过度,触发牛市抛售.
1900/1/1 0:00:00近日,京东集团技术委员会发布《技术重构社会供应链——未来科技趋势白皮书》,向业界全面展示了京东数智化社会供应链在人工智能、物联网、区块链、自主系统、下一代技术等五大关键技术领域的技术趋势研究声音.
1900/1/1 0:00:001月18日,比特币核心开发者PieterWuille发推宣布,推出比特币地址格式Bech32的改进版本Bech32m.
1900/1/1 0:00:00巴伦周刊在微博中表示,比特币从上周五下午到上周日美东东部时间上午晚些时候飙升了17%以上,达到创纪录的28220美元。虽然之后有所回落,但仍远高于之前水平.
1900/1/1 0:00:00