【密码专栏】超强进阶:PLONK VS Groth16(上)

前言

前文《天冷了,干了这碗“零知识证明”鸡汤》对「零知识证明学习」作了一个形象化的比喻:炖鸡汤。那么本系列的主要内容可以简单概括为《论高压锅炖鸡汤的一百种方法》之方法二。在学会了“清炖鸡汤”之后,不如来一口“阿胶鸡汤”补补脑细胞吧!

正如鸡汤不同风味之间各具千秋,不同的zk-SNARK方案也各有所长。zk-SNARK方案可以被分为与zk-SNARK,PLONK与Groth16分别是其中的典型代表。通过本系列,我们将对PLONK算法内容作简要介绍,并指出PLONK和Groth16算法思路上的异同。

PLONK算法在中提出,由来自于ProtocolLabs的研究员Gabizon和以太坊隐私交易协议AztecProtocol的两名研究人员合作完成。PLONK的提出晚于Groth16,在证明和验证的性能上与Groth16也存在一定差距,但是基于通用可更新的可信设置这一特点,使PLONK算法在零知识证明领域占据了一席之地。

可信设置

可信设置可以说是PLONK和Groth16两者间最显著的差异。正是为了避免一次性的可信设置,PLONK设计了后续的约束系统和问题压缩方式。那么什么是零知识证明中的可信设置呢?可信设置实际上是在创建一个用于证明验证的秘密,任何知道这个秘密的人都可以伪造证明通过验证。如果将零知识证明看作是一扇挡在证明者a和验证者b之间上锁的门,那么合法构建的证明就是可以打开门的口令,a提供口令即可进入房间。但是如果a得知了门的秘密也就是房间窗户的位置,那么a可以直接无视锁的存在翻窗进入房间。

数字藏品周指数回升9.9点至30.9点:金色财经报道,据同伴客数据显示,上周(2022年10月31日-11月06日)数字藏品国际周指数上升17.3点至31.3点,国内周指数下降1.1点至30.3点,数字藏品综合价值周指数上升9.9至30.9点。

备注:

· 数字藏品综合价值指数由同伴客数据与链境Labs联合研发,是对国际及国内当月市场热度最高的数字艺术品项目市场总销售规模的综合反映,以2021年11月份销售额的30分之7为基数,指数基值为100。

·国内周指数成分之一的幻核于8月16日发布平台终止运营公告,但销量已于7月10日后归零。为遵循去掉某一成分后指数计算结果无变化的原则,该指数使用幻核7/4-7/10的销售数据进行销售基数调整,并将新的销售基数作为8/14后的指数计算基数。[2022/11/7 12:27:35]

▲无窗的房间

显然,最安全的做法是找一个「没有窗的房间」,这也是一部分零知识证明方案的思路——无需可信设置,例如可扩展透明知识论证zk-STARKs和防弹证明Bulletproofs。虽然它们的安全性得到提高,但是目前这类方法的证明验证性能是远低于zk-SNARKs的,近线性的验证和规模较大的证明使其不适用于很多场景。

▲窗户位置指定策略

PLONK和Groth16的做法都是保留窗户,但是尽力保护窗户的位置不被别人知道。

伊朗天然气价格上涨导致加密矿工转向地下:金色财经报道,伊朗伊斯兰共和国石油部下属企业-伊朗国家天然气公司已经通知加密货币矿工将提高天然气费。由于石油部的决定,现在一立方米的燃料将花费53,368里亚尔(约1.25美元),这几乎是矿工以前支付的29,440里亚尔价格的两倍。除此之外,还将征收9%的增值税(VAT)。

该国超过三分之一的加密矿场依赖天然气供应,许多获得许可的公司将遭受严重损失。当地加密货币社区认为,在互联网中断和法律程序之后,这是另一个错误的政策,将把更多矿工转向地下。(news.bitcoin)[2022/11/4 12:17:21]

Groth16的做法是:根据不同的问题,每次都指定窗户在房间中的摆放位置,也就是它需要一次性的可信设置。而PLONK面对不同的问题时:窗户的位置是固定不变的,即窗户的位置只需要被指定一次。也就是说PLONK的可信设置是通用的。那么这些窗户指定的位置由谁来确定呢?当然,可信第三方是一个备选项。但这意味着说这间房间是否会被恶意证明者攻破,其安全性寄希望于这位第三方。除此之外还有一项热门技术也可为其提供思路——多方安全计算。沿用之前的例子,可以不太严谨地将MPC概括为:多个人共同指定窗户的位置,除非这些参与者全部联合起来对答案,这个位置将无法由任何人得知。

显然,使用MPC时,参与者的数量越多,秘密的安全性越高,这类可信设置也比可信第三方更为用户所接受。遗憾的是,虽然目前提出了基于Groth16的可信设置,但是由于Groth16的秘密计算与特定的问题相关联,每次遇到新的问题时,必须重新开启一轮MPC可信设置。可想而知,需要多方参与的计算协议将是极为繁琐的,这样将大大影响Groth16的性能。相比之下,具备通用性的PLONK与MPC的适配度极高。

Coinbase将推出首个针对零售交易员的加密衍生产品:金色财经报道,Coinbase Derivatives Exchange本月将推出其首个加密衍生品产品,希望能吸引更多的零售交易者。根据一份声明,Coinbase将于6月27日在受CFTC监管的期货交易所Coinbase Derivatives (前 FairX)上推出其首个加密货币衍生品 Nano Bitcoin Futures(BIT)。该声明称:“全球加密衍生品市场的规模为3万亿美元,额外的产品开发和可访问性将开启显著增长。”

今年早些时候,Coinbase收购了FairX,以推出加密衍生产品。在2020年底获得监管部门批准后,FairX于2021年5月推出了其期货交易平台。Coinbase表示,该公司还在等待监管机构批准其期货委员会交易商(FCM)牌照,为客户提供保证金期货合约。(coindesk)[2022/6/24 1:28:10]

而之前提到的PLONK可信设置的可更新性则是指:通用的PLONK秘密可以通过再开启一轮MPC作更新。新生成的秘密安全性建立在两次MPC的安全性上,只要两次中有一个参与者是诚实的,这个秘密就是可信的。约束系统

Groth16及PLONK均将程序先转化为一个由加法门和乘法门组成的算术电路,再通过将电路构建为多项式的形式来进行后续的计算。本节我们将使用Vitalik文章中的一个简单例子进行说明:

美联储发布CBDC对货币政策的潜在影响研究报告:金色财经报道,周二,美国联邦储备委员会发布了一项关于零售中央银行数字货币(CBDC)对美国货币政策实施可能产生的影响的研究。该研究日期为 4 月,是一份题为“零售 CBDC 和美国货币政策实施:程式化资产负债表分析”的工作人员工作文件。

该文件从美联储、商业银行和美国家庭三个利益相关者群体的角度考虑了四种情景,这些情景说明了零售 CBDC对货币政策的潜在影响。

第一种情况涉及用现金兑换 CBDC,这影响了美联储和相关家庭的资产分类,但对政策实施没有影响。以下三种情况显示了一种级联效应,该效应始于个人以现金形式存入商业银行时从商业银行提取 CBDC。[2022/6/1 3:55:03]

对于程序qeval,prover需要证明自己知道qeval(x)=35的解,即x=3。

defqeval(x):

y=x**3

returnx+y+5,其转化为算术电路可表示如下:

遭黑客攻击的算法稳定币Beanstalk Farms拟借入7700万美元资金重启项目:5月11日消息,遭黑客攻击的Stablecoin Beanstalk Farms正在从私人投资者那里筹集7700万美元的场外交易贷款拟重启项目。据悉,Beanstalk DAO已经于近日批准了相关贷款融资的治理投票,该团队计划向OTC贷方发行新代币,声称将支付500%的收益率,直到贷款全部偿还,但目前还不清楚谁会出资借给Beanstalk。

此前报道,2022年4月17日,Stablecoin项目Beanstalk DAO遭受黑客攻击,损失高达1.82亿美元。BeanStalk是一个分散的基于信用的Stablecoin协议,由三个相互连接的组件组成:去中心化价格预言机、去中心化治理系统和去中心化信贷工具。(TheBlock)[2022/5/11 3:04:56]

PLONK中,上图电路的描述由两部分组成:门约束与线约束。门约束固定电路中每个门的动作。此外,在电路中我们规定相连线的值应保持一致,对此线约束规定这些线的关系。接下来我们分别讨论两类约束的多项式表示。门约束

在PLONK中,对于第i个门,可被描述为如下形式:

(QLi)ai+(QRi)bi+(QOi)ci+(QMi)aibi+Qci=0

其中Q均为常数,a,b,c则是信号的下标。具体地,在PLONK中门约束可以被分为三类:算术约束、布尔约束、公共输入约束。

最为常见,用于表示电路中的所有加法门和乘法门,此时a,b,c分别表示门的左右输入和输出信号下标,Q_C一般为0。根据门的类型剩余的符号有不同的取值:

加法门:QLi=1,QRi=1,QOi=-1,QMi=0??ai+bi-ci=0乘法门:QLi=0,QRi=0,QOi=-1,QMi=1-ci+?aibi=0

顾名思义,用于约束布尔类型的信号,其值只能取0或1。例如现在需要约束下标为j的信号∈{0,1},那么门约束式子中各变量的取值为:

ai=bi=j,QLi=-1,QMi=1,QOi=QRi=Qci=0

-j+j*j=0

另外,针对问题中出现的证明方和验证方都知道取值的输入,需要在约束系统中有所体现。例如要求约束下标j的信号取值为v,对应的取值为:

ai=j,QLi=1,QMi=QOi=QOi=0,Qci=-v

j-v=0

利用该式,我们可以很容易地表示上图中的所有门约束:

与Groth16类似,可以将所有的多项式组整合在一个多项式中:

线约束

线约束可以分为两种情况:

同一多项式内部,例如:a1=a3

不同多项式之间,例如:a1=b1

当只需要考虑情况1时,可以通过构造p(x)=P(x)来实现约束:

X(X)=X

p(X+1)=p(X)*(β*X(X))+Y(X)+γ)

P(X+1)=P(X)*(β*X(σ(X))+Y(X)+γ)

p(0)=P(0)=1

其中β,γ为随机数,X->Y表示了待约束的多项式,P(x)使用了x的置换σ(x)。对于下面例子:

X(1)→Y(1)

X→Y:X(2)?→?Y(2)?and,Y(1)=Y(3)

X(3)→?Y(3)

σ(1)=3

σ(X):σ(2)=2

σ(3)=1

当且仅当Y(1)=Y(3)成立时,p(x)=P(x)。

现在,让我们增加问题的复杂度:需要约束的多项式个数为k时。自然地,设门的总数为n,我们可以对第j个多项式构造对应的p_j(x)=P_j(x),即

进一步地,情况2的出现要求对以下情况中的x作区分:

pj(x)and?pi(x)????

那么可以增加对x的映射,对于第j个多项式:

X(X)=(j-1)*n+X

p(X+1)=p(X)*(β*X(X))+Y(X)+γ)

P(X+1)=P(X)*(β*X(σ(X))+Y(X)+γ)

p(0)=P(0)=1

以上就是线约束的全部内容,其实质是为了保证电路中同一条或相连线上的值相等。

与Groth16类似,将上述的约束联立将得到一个完整的PLONK约束系统。通过将抽象的代码和电路转化为约束系统R1CS,我们可以将一个零知识证明问题固定下来。让我们带着问题进入下篇:PLONK中如何将R1CS转为多项式描述?它与Groth16做法区别在何处?敬请期待!

ArielGabizonandZacharyJ.WilliamsonandOanaCiobotaru.(2019).PLONK:PermutationsoverLagrange-basesforOecumenicalNoninteractiveargumentsofKnowledge.

SeanBoweand?ArielGabizonandIanMiers.(2017).ScalableMulti-partyComputationforzk-SNARKParametersintheRandomBeaconModel.

https://vitalik.ca/general/2019/09/22/plonk.html

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

银河链

币安app下载为什么DAO将成为创作者经济的未来

原文标题:《WhyDAOsAretheFutureoftheCreatorEconomy》 原文编译:0x137 什么样的组织架构最适用于创作者经济?是传统公司架构?是DAO?还是半去中心化组织?每种组织架构都各有利弊.

[0:0ms0-1:704ms