当前位置:首页 > 区块链

什么是 PLONK 的通用参考串?和 Groth16 区别

95272周前 (09-18)区块链30

在密码学和区块链领域,零知识证明(ZKP)技术正变得越来越重要。它允许一方向另一方证明某个陈述是真实的,而无需透露除该陈述真实性之外的任何额外信息。在众多零知识证明系统中,PLONK和Groth16是两种广泛使用的方法,它们各有特点和优势。本文将重点介绍PLONK的通用参考串,并与Groth16进行比较,帮助读者理解这两种技术的核心差异。

什么是PLONK的通用参考串?

PLONK(Polynomial Lookup Argument)是一种通用的零知识证明系统,由Ariel Gabizon、Zoe Papadopoulos和Michael Riabzev于2019年提出。其核心创新在于引入了"通用参考串"(Universal Reference String, URS)的概念,这是一种预先生成的公共参数,可以被多个证明和验证过程重复使用。

工作原理

PLONK的工作原理基于多项式承诺和插值验证:

  1. 参考串生成:首先生成一个包含随机多项式系数的参考串,这个串是公开的,但生成过程需要可信设置。
  2. 电路表示:将计算问题表示为多项式形式,通常使用算术电路或R1CS(Rank-1 Constraint Systems)。
  3. 多项式承诺:证明者使用参考串中的参数创建多项式承诺,而不直接暴露多项式本身。
  4. 零知识证明:证明者生成一个证明,表明他们知道满足特定关系的信息,而无需透露这些信息本身。
  5. 验证:验证者使用参考串来检查证明的有效性。

优势

PLONK的通用参考串具有以下优势:

  • 可重用性:一个参考串可以用于无限数量的证明和验证,大大降低了系统初始化成本。
  • 灵活性:支持各种类型的电路和计算问题,通用性强。
  • 简洁性:证明大小相对较小,验证过程高效。
  • 后量子安全性:基于格密码学,对量子计算攻击具有抵抗力。

Groth16概述

Groth16是由Jens Groth于2016年提出的一种高效的非交互式零知识证明系统,是目前最广泛使用的零知识证明系统之一,特别适用于椭圆曲线配对的应用场景。

工作原理

Groth16的工作原理基于双线性配对和椭圆曲线密码学:

  1. 可信设置:首先生成一个包含椭圆曲线上随机点的参考串,这个设置过程必须是可信的,因为任何泄露都会危及整个系统的安全性。
  2. 电路表示:将计算问题表示为R1CS形式。
  3. 证明生成:证明者使用参考串中的点和自己的秘密计算生成一个简洁的证明。
  4. 验证:验证者使用参考串和公开信息以及证明,通过双线性配对验证证明的有效性。

优势

Groth16的主要优势包括:

  • 极小的证明大小:证明通常只有几个椭圆曲线点的大小,非常紧凑。
  • 高效的验证:验证过程只需要几次双线性配对计算,速度快。
  • 非交互式:不需要交互过程,适合离线和异步验证场景。
  • 成熟性:经过多年研究和实践验证,安全性有充分保障。

PLONK的通用参考串与Groth16的区别

技术差异

  1. 密码学基础:

    • PLONK基于多项式承诺和插值验证,通常使用KZG承诺或FRI协议。
    • Groth16基于双线性配对和椭圆曲线密码学。
  2. 参考串使用方式:

    • PLONK的通用参考串可以被无限次使用,且一次设置可支持多种不同的电路。
    • Groth16的参考串通常针对特定电路设置,不同电路需要不同的参考串。
  3. 证明结构:

    • PLONK的证明相对复杂,包含多个元素。
    • Groth16的证明非常简洁,通常只有两个椭圆曲线点。

性能对比

  1. 证明大小:

    • PLONK的证明大小通常在几百字节到几千字节之间。
    • Groth16的证明大小非常小,通常只有几十个字节。
  2. 验证时间:

    • PLONK的验证需要数百毫秒到几秒钟,取决于具体实现。
    • Groth16的验证非常快,通常只需要几毫秒。
  3. 初始设置:

    • PLONK的通用参考串只需设置一次,可支持多种电路。
    • Groth16需要为每个电路单独设置参考串,增加了初始成本。

适用场景

  1. PLONK的通用参考串更适合:

    • 需要支持多种不同计算场景的系统
    • 对证明大小要求不是极端苛刻的场景
    • 需要高灵活性和可扩展性的应用
    • 预算有限但需要长期使用的项目
  2. Groth16更适合:

    • 对证明大小和验证速度有极高要求的场景
    • 计算问题相对固定且已知的系统
    • 资源充足可以承受多次可信设置的项目
    • 需要最小化链上验证成本的区块链应用

结论

PLONK的通用参考串和Groth16代表了零知识证明技术的两种不同发展方向。PLONK通过引入通用参考串概念,提供了更高的灵活性和可重用性,降低了系统初始化成本,适合多种计算场景。而Groth16则以极小的证明大小和高效的验证速度著称,特别适合对性能要求极高的特定应用场景。

选择哪种技术取决于具体的应用需求、性能要求和资源限制。随着零知识证明技术的不断发展,我们可以期待这两种方法进一步融合和优化,为区块链和隐私计算领域提供更强大、更高效的解决方案。无论选择哪种方法,零知识证明都将继续在保护隐私、提高可扩展性和增强安全性方面发挥关键作用。