
Plonky2为Polygon团队2022年1月发起的项目。其定位为ZKP证明系统。
开源代码实现见:
Plonky2可解锁当今2大主流ZKP类型——SNARKs和STARKs的扩容优势。
每个ZKP证明系统都有2大基本要素:
许多ZKRollups采用KZG作为其承诺方案。
KZG的问题之一在于其有限域是基于椭圆曲线的,椭圆曲线密码学有诸多限制,如:
不同于KZG或Bulletproofs,Polygon Zero团队选择FRI多项式承诺方案,FRI多项式承诺方案通常与STARKs关联。
当需考虑到speed速度时,FRI提供了有趣的 time-space 权衡:
Plonky2支持以上2种场景:
为此,Plonky2的递归中的所有步骤,采用不同的参数,来对特定的proofing layer进行优化。因此Plonky2可充分利用FRI中独特的time-space权衡。正是这种灵活性使Plonky2在一系列实现中如此有用。
Plonky2解锁了FRI的性能提升能力,如何要让生成证明的速度更快?
正如Bredan在ZK Whiteboard Session中所指出:
若想真正更快,需关注到在硬件层面何为快?
即,可通过对用户硬件优化来构建更快速的生成ZKP的工具。且当今消费级CPU原生支持64位运算。
之前的recursive proof composition方案,需要:
但Plonky2不需要,秘诀就在于:
Goldilocks Field针对硬件端的优化有2方面:
以域运算性能评估,简单的采用Goldilocks 64位域,比KZG承诺中的256位域,证明速度要快40倍。
ZKP中的“recursion递归”属性,是指:
递归是使用ZKP来解决区块链扩容的关键,因为其可将多个交易proofs,转换为单个proof,从而大幅降低验证交易的开销。
Plonky2是为递归而生的:

在ZK电路内写VM的最好方式不是采用Plonky2,而是采用Starky。
Starky为Polygon Zero团队开发的另一互补证明系统:
因此,从交易层来看,Starky并行生成证明,然后Plonky2用于在每个额外层进行递归。
每组proofs可采用Plonky2来转换为(具有lower rate的)单个proof,因为:【即,rate越低,对应 fastest (and largest) proof;而rate越高,对应smallest proof size。】
即,根据需要让proof生成速度快,或者根据需要让proof小。
[1] Polygon Labs 2022年11月博客 Plonky2: A Deep Dive