Plonky2:最好的SNARKs和STARKs

1. 引言

在这里插入图片描述
Plonky2为Polygon团队2022年1月发起的项目。其定位为ZKP证明系统。
开源代码实现见:

Plonky2可解锁当今2大主流ZKP类型——SNARKs和STARKs的扩容优势。

每个ZKP证明系统都有2大基本要素:

  • 1)在某算术电路内编写程序的方式。
  • 2)多项式承诺方案(Polynomial Commitment Scheme,PCS)。

2. Plonky2加速秘诀之:FRI多项式承诺方案——Fast、Small、Big、Slow

许多ZKRollups采用KZG作为其承诺方案。

KZG的问题之一在于其有限域是基于椭圆曲线的,椭圆曲线密码学有诸多限制,如:

  • 1)以太坊当前并不原生支持,可高效进行递归的椭圆曲线。
  • 2)椭圆曲线需要使用更大的有限域(至少256位),这在当代CPU上效率更低。

不同于KZG或Bulletproofs,Polygon Zero团队选择FRI多项式承诺方案,FRI多项式承诺方案通常与STARKs关联。

当需考虑到speed速度时,FRI提供了有趣的 time-space 权衡:

  • 1)FRI支持快的证明生成时效,但所生成的proof很大。大的proof若提交到以太坊主网上将非常昂贵和复杂。
  • 2)FRI也可生成很小的proof,但会非常慢。

Plonky2支持以上2种场景:

  • 1)当关注速度时,采用大proof。
  • 2)当关注proof size时,采用小proof。

为此,Plonky2的递归中的所有步骤,采用不同的参数,来对特定的proofing layer进行优化。因此Plonky2可充分利用FRI中独特的time-space权衡。正是这种灵活性使Plonky2在一系列实现中如此有用。

3. Plonky2加速秘诀之:Goldilocks Field

Plonky2解锁了FRI的性能提升能力,如何要让生成证明的速度更快?

正如Bredan在ZK Whiteboard Session中所指出:
若想真正更快,需关注到在硬件层面何为快?
即,可通过对用户硬件优化来构建更快速的生成ZKP的工具。且当今消费级CPU原生支持64位运算。

之前的recursive proof composition方案,需要:

  • trusted setup
  • cycles of expensive, pairing-friendly elliptic curves

但Plonky2不需要,秘诀就在于:

  • Polygon’s Hamish Ivey-Law所提议的Goldilocks Field—— p = 2 64 − 2 32 + 1 p=2^{64}-2^{32}+1 p=264232+1

Goldilocks Field针对硬件端的优化有2方面:

  • 1)其为64位,即意味着任意小于 p p p的域元素都可以64位表示。
  • 2) p p p的代数结构,支持在CPU上非常高效运算。

以域运算性能评估,简单的采用Goldilocks 64位域,比KZG承诺中的256位域,证明速度要快40倍。

4. Plonky2加速秘诀之:Starky for Fold

ZKP中的“recursion递归”属性,是指:

  • 使用单个proof,来证明多个独立的proofs。

递归是使用ZKP来解决区块链扩容的关键,因为其可将多个交易proofs,转换为单个proof,从而大幅降低验证交易的开销。

Plonky2是为递归而生的:
在这里插入图片描述
在ZK电路内写VM的最好方式不是采用Plonky2,而是采用Starky。

Starky为Polygon Zero团队开发的另一互补证明系统:

  • Plonky2:为针对递归和relational connectivity而优化。相比于为单笔交易生成证明所需,其更robust。
  • Starky:采用与Plonky2相同的有限域和哈希函数,但是没有computation-heavy arithmetizations。

因此,从交易层来看,Starky并行生成证明,然后Plonky2用于在每个额外层进行递归。

每组proofs可采用Plonky2来转换为(具有lower rate的)单个proof,因为:【即,rate越低,对应 fastest (and largest) proof;而rate越高,对应smallest proof size。】

  • the smallest rate compatible with the transition constraints renders the fastest (and largest) proof.
  • Those large proofs are again converted into a single proof using a higher rate, which generates the smallest proof size possible for posting to Ethereum’s Mainnet.

即,根据需要让proof生成速度快,或者根据需要让proof小。

  • 2020年,首个提交到以太坊的递归证明,生成用时约60秒。
  • 而2022年11月,Plonky2在MacBook Pro上生成递归证明用时仅需170毫秒。

参考资料

[1] Polygon Labs 2022年11月博客 Plonky2: A Deep Dive

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值