什么是 PLONK 的通用参考串?和 Groth16 区别
在密码学和区块链领域,零知识证明(ZKP)技术正变得越来越重要。它允许一方向另一方证明某个陈述是真实的,而无需透露除该陈述真实性之外的任何额外信息。在众多零知识证明系统中,PLONK和Groth16是两种广泛使用的方法,它们各有特点和优势。本文将重点介绍PLONK的通用参考串,并与Groth16进行比较,帮助读者理解这两种技术的核心差异。
什么是PLONK的通用参考串?
PLONK(Polynomial Lookup Argument)是一种通用的零知识证明系统,由Ariel Gabizon、Zoe Papadopoulos和Michael Riabzev于2019年提出。其核心创新在于引入了"通用参考串"(Universal Reference String, URS)的概念,这是一种预先生成的公共参数,可以被多个证明和验证过程重复使用。
工作原理
PLONK的工作原理基于多项式承诺和插值验证:
- 参考串生成:首先生成一个包含随机多项式系数的参考串,这个串是公开的,但生成过程需要可信设置。
- 电路表示:将计算问题表示为多项式形式,通常使用算术电路或R1CS(Rank-1 Constraint Systems)。
- 多项式承诺:证明者使用参考串中的参数创建多项式承诺,而不直接暴露多项式本身。
- 零知识证明:证明者生成一个证明,表明他们知道满足特定关系的信息,而无需透露这些信息本身。
- 验证:验证者使用参考串来检查证明的有效性。
优势
PLONK的通用参考串具有以下优势:
- 可重用性:一个参考串可以用于无限数量的证明和验证,大大降低了系统初始化成本。
- 灵活性:支持各种类型的电路和计算问题,通用性强。
- 简洁性:证明大小相对较小,验证过程高效。
- 后量子安全性:基于格密码学,对量子计算攻击具有抵抗力。
Groth16概述
Groth16是由Jens Groth于2016年提出的一种高效的非交互式零知识证明系统,是目前最广泛使用的零知识证明系统之一,特别适用于椭圆曲线配对的应用场景。
工作原理
Groth16的工作原理基于双线性配对和椭圆曲线密码学:
- 可信设置:首先生成一个包含椭圆曲线上随机点的参考串,这个设置过程必须是可信的,因为任何泄露都会危及整个系统的安全性。
- 电路表示:将计算问题表示为R1CS形式。
- 证明生成:证明者使用参考串中的点和自己的秘密计算生成一个简洁的证明。
- 验证:验证者使用参考串和公开信息以及证明,通过双线性配对验证证明的有效性。
优势
Groth16的主要优势包括:
- 极小的证明大小:证明通常只有几个椭圆曲线点的大小,非常紧凑。
- 高效的验证:验证过程只需要几次双线性配对计算,速度快。
- 非交互式:不需要交互过程,适合离线和异步验证场景。
- 成熟性:经过多年研究和实践验证,安全性有充分保障。
PLONK的通用参考串与Groth16的区别
技术差异
-
密码学基础:
- PLONK基于多项式承诺和插值验证,通常使用KZG承诺或FRI协议。
- Groth16基于双线性配对和椭圆曲线密码学。
-
参考串使用方式:
- PLONK的通用参考串可以被无限次使用,且一次设置可支持多种不同的电路。
- Groth16的参考串通常针对特定电路设置,不同电路需要不同的参考串。
-
证明结构:
- PLONK的证明相对复杂,包含多个元素。
- Groth16的证明非常简洁,通常只有两个椭圆曲线点。
性能对比
-
证明大小:
- PLONK的证明大小通常在几百字节到几千字节之间。
- Groth16的证明大小非常小,通常只有几十个字节。
-
验证时间:
- PLONK的验证需要数百毫秒到几秒钟,取决于具体实现。
- Groth16的验证非常快,通常只需要几毫秒。
-
初始设置:
- PLONK的通用参考串只需设置一次,可支持多种电路。
- Groth16需要为每个电路单独设置参考串,增加了初始成本。
适用场景
-
PLONK的通用参考串更适合:
- 需要支持多种不同计算场景的系统
- 对证明大小要求不是极端苛刻的场景
- 需要高灵活性和可扩展性的应用
- 预算有限但需要长期使用的项目
-
Groth16更适合:
- 对证明大小和验证速度有极高要求的场景
- 计算问题相对固定且已知的系统
- 资源充足可以承受多次可信设置的项目
- 需要最小化链上验证成本的区块链应用
结论
PLONK的通用参考串和Groth16代表了零知识证明技术的两种不同发展方向。PLONK通过引入通用参考串概念,提供了更高的灵活性和可重用性,降低了系统初始化成本,适合多种计算场景。而Groth16则以极小的证明大小和高效的验证速度著称,特别适合对性能要求极高的特定应用场景。
选择哪种技术取决于具体的应用需求、性能要求和资源限制。随着零知识证明技术的不断发展,我们可以期待这两种方法进一步融合和优化,为区块链和隐私计算领域提供更强大、更高效的解决方案。无论选择哪种方法,零知识证明都将继续在保护隐私、提高可扩展性和增强安全性方面发挥关键作用。