当前位置:首页区块链zkswap团队解读:zksync中的betterbetterHow to implementation aggregate proof

zkswap团队解读:zksync中的betterbetterHow to implementation aggregate proof

我们在zksync中读得比较好,我们知道如何实现单进程和聚合进程的电路逻辑。在本章中,我们将继续研究zksync的聚合证明,重点研究如何更好地形成聚合证明。

或者上一章中的代码图,我们将讨论create-again-proof

zkswap团队解读:zksync中的betterbetterHow to implementation aggregate proof

我们分析的行李员代码版本是beta,提交ID是48441155ec7006bf7bfac553b5fb7d466d7fcd00。证明的成功

createProof是bellmance/src/plonk/betterbetterCS/Proof/mod.rs中的一个函数,将近2000年⾏ 代码。

在车身上,分为以下步骤:

zkswap团队解读:zksync中的betterbetterHow to implementation aggregate proof1

1.基本检查和预计算

zkswap团队解读:zksync中的betterbetterHow to implementation aggregate proof2

2.为状态多项式状态和见证多项式状态,查表参数为排序多项式

zkswap团队解读:zksync中的betterbetterHow to implementation aggregate proof3

3.构造LookUpdateHolder进行后续计算

zkswap团队解读:zksync中的betterbetterHow to implementation aggregate proof4

4.计算置换多项式的积

zkswap团队解读:zksync中的betterbetterHow to implementation aggregate proof5

5.计算商多项式

zkswap团队解读:zksync中的betterbetterHow to implementation aggregate proof6

6.根据查找表进行线性化

zkswap团队解读:zksync中的betterbetterHow to implementation aggregate proof7

7.多项式的选择器取为⾏ 开放值

zkswap团队解读:zksync中的betterbetterHow to implementation aggregate proof8

8.添加复制置换多项式和查找置换的优化结果

zkswap团队解读:zksync中的betterbetterHow to implementation aggregate proof9

9.将“查找”改为“查询”

zkswap团队解读:zksync中的betterbetterHow to implementation aggregate proof10

10.多项式的选择子在Z中取值⾏ 打开

zkswap团队解读:zksync中的betterbetterHow to implementation aggregate proof11

11.将最终查找值放入⼊ 证明

zkswap团队解读:zksync中的betterbetterHow to implementation aggregate proof12

12.计算Z,ZΩ处的开度值,最后组装证明

zkswap团队解读:zksync中的betterbetterHow to implementation aggregate proof13

在这个函数中,我们看到了熟悉的Maingate函数。从上一版本如何实现聚合,我们知道基于的设计可以实现自定义门和优化电路。除了自定义gate之外,plonkup(plonk+lookup table)还用于zksync以提高效率。

zkswap团队解读:zksync中的betterbetterHow to implementation aggregate proof14

在上一章中,我们已经解释了plookup的原理。简单地说,高效的输入/输出被预先计算以形成查找表。证明人需要证明本表中的证人。有关详细信息,请参阅ZKSAP团队来解释plookup原则。Zksync对plonkup的实现并没有将自定义门和plonkup分开,而是将它们结合起来优化电路设计。让我们看看Maingate trait中的连接是如何与plonkup相结合的。

查找的使用

在上一节的证明函数中,创建线性化⽤ 到;参与公共输入的线性化;函数,让我们以它为例来看看查找的函数。此代码位于bellmanuce/src/plonk/betterubetterCS/CS.rs中。

zkswap团队解读:zksync中的betterbetterHow to implementation aggregate proof15

接收到的参数以HashMap格式进行查询|值、单项式缓存值、请求的随机数数组|值参数在|中创建|在证明过程中,根据排序后的查询列表生成。关键字是多项式,值是fr。查询列表的排序规则是见证优先,选通选择器第二,选通设置第3sortedgatequeries的结构如下:

zkswap团队解读:zksync中的betterbetterHow to implementation aggregate proof16

在代码中,调用⽤ 为线性化排序查询;职能部门;SortedGateQueriesnbsp此功能也在当前;卢比;⽂ 成片的。此函数的输入参数为;大门;数组,输出为;SortedGateQueriesnbsp

zkswap团队解读:zksync中的betterbetterHow to implementation aggregate proof17

函数将传递给⼊ 大门;数组遍历,根据;大门;返回多项式数组,根据;变量多项式、见证多项式;网关设置多项式;多项式存储在⼊ 分类分类查询;在中间。

返回;参与公共输入的线性化;函数,如您所见,它从查询的 In值开始,得到a/B/C/d的值。⽽ qa/qb/qc/qd/qu M的值来自create,lookup table的概念也来自证明的单项式缓存数据。

zkswap团队解读:zksync中的betterbetterHow to implementation aggregate proof18

这个单项缓存的值是从电路的设置中获得的,也就是说,如果确定了电路,那么⻔ 确定了电路的工作原理。当⽣ 这些数据已经存在。您可以直接将安装预计算的结果放入⼊ 查找表并查询⽤ 数据。

zkswap团队解读:zksync中的betterbetterHow to implementation aggregate proof19

最后,将a/B/C/D与Q挈a/Q挈B/Q挈C/Q挈D相结合。我们可以很容易地构造多项式。

zkswap团队解读:zksync中的betterbetterHow to implementation aggregate proof20

此外,⼏ 主门的连接功能⾥ 都是吗⼝ 就像。结合查找表,⾮ 可以很容易地计算出多项式。

zkswap团队解读:zksync中的betterbetterHow to implementation aggregate proof21

总之,zksync将witness和gate的选择器和设置放入“查找表”。在生成“证明”时,“查表”可以直接查询“证明”,而不必重新计算,从而加快了“建立”速度,提高了验证程序的效率。

介绍

https://github.com/matter-labs/zksync

https://github.com/matter-labs/bellman

https://eprint.iacr.org/2020/315.pdf

温馨提示:

文章标题:zkswap团队解读:zksync中的betterbetterHow to implementation aggregate proof

文章链接:https://www.btchangqing.cn/276861.html

更新时间:2021年06月09日

本站大部分内容均收集于网络,若内容若侵犯到您的权益,请联系我们,我们将第一时间处理。

zkswap团队解读:zksync中的betterbetterHow to implementation aggregate proof22
区块链

比特币这次暴跌。为什么这些机构不进行底部检查?

2021-6-9 20:46:15

区块链

比特币即将成为法定货币?萨尔瓦多比特币法(全文)

2021-6-9 21:10:32

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索