ROO:ZKSwap团队解读零知识证明算法之Bulletproofs:Arithmetic Circuits

Bulleproofs算法有两个方面的应用。

一个是Rangeproof:

第一讲:?理解零知识证明算法之Bulletproofs--RangeProof1

第二讲:?理解零知识证明算法之Bulletproofs--RangeProof2

第三讲:?理解零知识证明算法之Bulletproofs--RangeProof3

另一个是generalarithmeticcircuits,本编文章就来主要分享Bulletproofs在后者上的应用。

ArithmeticCircuits

zkSync开发团队MatterLabs发布ZKCredo宣言:金色财经报道,Matter Labs 在 GitHub 发布宣言ZK Credo,重申了其对去中心化网络的推动,表达了对治理权力集中在少数人手中的担忧。Matter Labs 认为,如有必要,社区应该具备迁移到新网络的能力。Matter Labs 表示计划去中心化排序器,不过尚需要一些时间。该份宣言还概述了 Matter Labs 认为至关重要的八项原则,包括基本的去中心化原则,如无需信任、安全、可靠性、抗审查、隐私、超可扩展性、可访问性和主权。[2023/6/23 21:56:12]

了解ZK-SNARK算法应该都知道算术环路的概念,下面一张图展示了zk-snark算法中,算术环路的设计规则。

Matter Labs发布zkSync 2.0主网第一阶段Baby Alpha:10月29日消息,Matter Labs已发布zkSync 2.0主网第一阶段Baby Alpha。该阶段第一个月,网络将在没有任何外部应用程序开放使用的情况下运行,任何外部参与者也无法使用。该团队解释说,初始阶段仅用于压力测试和安全工作。

第一阶段完成后,下一阶段为Fair Onboarding Alpha,开发人员能够移植到zkSync并开始在网络上构建。超过100个项目表示有兴趣在zkSync 2.0上部署其应用程序,包括Uniswap。Full Launch Alpha阶段将是网络对所有人完全开放的时候,预计将在今年年底发生。

此外,根据其路线图,计划在2023年Q1及以后的时间里改善开发者和用户体验;2023年将对zkSync 2.0协议进行去中心化。(The Block)[2022/10/29 11:55:27]

Circuit设计规则:

MatterLabs已在以太坊主网部署Layer2扩展工具zkSync:据官方消息,以太坊扩容项目MatterLabs宣布已在以太坊主网部署其Layer2扩展工具zkSync。MatterLabs团队表示,zkSync将极大解决以太坊上的交易成本(Gas)费,平均交易费用旨在长期保持在的小于0.01美元的低位,并逐步实现最高达2000TPS的吞吐量。目前,zkSync已经实现「可扩展的支付功能」,后续将依次实现「智能合约部署」、「隐私」和「加密抗审查」等功能,最终实现为数十亿人提供可扩展的、保护隐私的、公平的且无许可的加密基础设施。(Medium)[2020/6/19]

1.由乘法门和加法门组成,每个门固定两个输入一个输出;

2.不标记通过加法门连接乘法门的线,如图中绿线,仅起到连接作用;

3.同一条线直接或间接连接多个乘法门,仅表示为一条有效的线,为了方便理解,用紫色虚线表示其连接关系;

4.MulGate处的取值为图中红色字体所示

5.黄色线条为有效连接线

6.橙色线条表示MulGate对应的一阶约束

那Bulletproofs算法的算术环路的设计规则是什么样的呢?我们看看下图。

Circuit设计规则:

1.由乘法门和加法门组成,每个门固定两个输入一个输出;

2.不标记加法门

3.不标记有常量的乘法门

4.红色字体表示乘法门的索引

5.黄色字体表示乘法门的输入和输出

6.橙色线条表示乘法门对应的一阶约束

7.蓝色线条表示相邻乘法门间的一致性约束

因此,一个完整有效的算数电路应该满足:

1.每个乘法门对应的的约束成立

2.乘法门之间的一致性约束成立

Zk-snark的算术电路通过R1CS满足了上述两个条件。

1.每个R1CS表示一个乘法门的约束

2.相邻乘法门的输出是下一个乘法门的输入,如图中的y,sym_1,sym_2

Bulletproofs的算术环路以通过以下两种方式满足上述两个条件:

1.每个乘法门对应的约束成立

2.上个乘法门的输出等于下个乘法门的输入。

看起来两个算法的证明一个算术电路有效的思想是一样,但是由于两个电路的标注规则不同,就产生两个不同的约束结果。

Zk-snark算法以validwires为基本要素,每个wire有左输入,右输入,和输出三个属性

Bulletproofs算法以validMulgate为基本要素,每个Mulgate有左输入,右输入和输出三个属性

最后,附上一张对比图:

总结以上可以看出,对数算术环路的满足性问题,不同的算法具有不同的电路描述方式。Zk-snark算法由Circuits转化到QAP,最终生成的证据仅仅再几十个字节大小;

Bulletproofs的算法由Circuits转化到innerproductor,生成的证明的大小和算术电路的乘法门的个数n有关O(log(n*Q),电路越大,证据越大。

附录

1.Bulletproofs论文:https://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=8418611

2.BCG+讲述了算术电路的另外一种描述形式?https://eprint.iacr.org/2017/1066.pdf

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

链链资讯

[0:15ms0-6:258ms