网站建设新闻资讯,广告牌大全图片,网站logo是什么,网站建设的公司排名Plonky2由Polygon Zero团队开发#xff0c;实现了一种快速的递归SNARK#xff0c;据其团队公开的基准测试#xff0c;2020年#xff0c;以太坊第一笔递归证明需要60s生成#xff0c;而于今Plonky2在 MacBook Pro上生成只需 170 毫秒。
下面将逐步剖析Plonky2。 整体构造 …Plonky2由Polygon Zero团队开发实现了一种快速的递归SNARK据其团队公开的基准测试2020年以太坊第一笔递归证明需要60s生成而于今Plonky2在 MacBook Pro上生成只需 170 毫秒。
下面将逐步剖析Plonky2。 整体构造
每个零知识证明系统都由两部分构成。第一个是编写算术电路第二个是多项式承诺方案。
Plonk2第一部分采用Plonk custom gates (TurboPlonk)第二部分没有选择KZG等典型的SNARK承诺方案而是使用FRI承诺一种与STARK相关的承诺方案。之所以选择FRI是因为 FRI不需要椭圆曲线也就没有non-native arithmetic 可以使用Small Field 没有Trusted Setup 抗量子
此外在证明生成方面FRI还提供一个别具趣味的选择通过减少FRI rate、增加查询次数可以快速生成证明但生成的证明非常大相反通过增加FRI rate、减少查询次数生成证明相对较慢但生成的证明非常小。 Goldilocks Filed P 2 64 − 2 32 1 P 2 ^{64} - 2^{32} 1 P264−2321
Plonky2使用Goldilocks Filed很明显这个域足够小只有64位可以直接用无符号64-bit表示则这个域可以在CPU上进行非常高效的算术运算如 将128位数取模p的操作非常廉价如对应乘法操作设x,y都是64bit则 x ⋅ y x \cdot y x⋅y 是128bit 具体实现代码见reduce_128 32bit的MulAdd操作不会溢出如x,y,z都是32bit x ⋅ y z x \cdot y z x⋅yz 不会溢出
单就域而言使用64位的Goldilocks域比使用256位的KZG Commitment快40倍。 Starky
Starky与Plonk2具有相同的域哈希函数但是没有计算比较重的算术所以编写ZKVM使用Starky而不是Plonk2Plonk2主要用于生成递归证明因此Starky与Plonk2各自具有其独特的优势可相互补充具体来说Starky为每个交易并行生成证明然后交付Plonk2递归生成证明。 在上图递归的中间层我们目标是快速生成证明而不需要担心proof的大小在最后一层也就是生成根proof的那一层这个proof 需要发送到L1层如果proof很大gas费势必很高所以最后一层使用Plonk2 with a higher rate中间层使用Plonk2 with a lower rate。