在学习零知识证明(ZKP)算法时,总会遇到密码学原语—多项式承诺(PC)。
首先,让我们看看承诺的定义。承诺是与不会泄露消息(隐藏)的提交者提供的原始消息(计算绑定)绑定的公共值。提交者需要打开这个承诺,并将消息发送给验证者,以验证承诺与消息的对应关系。PC可以看作是对某个多项式P的承诺,提交者可以在不暴露多项式P的情况下通过证明证明多项式在某一点z的值满足P(z) = a。有多种方案实现PC:
- KZG10承诺:基于配对组
- IPA Commitment:基于离散日志组
- FRI承诺:基于哈希函数
- DARKS承诺:基于未知订单组
本文将从不同角度比较上述多项式方案的差异。
表1给出了常见PC的计算形式。在不同的ZKP算法中,正是由于采用了不同的PC方案,算法才会有所不同。下图为ZKP算法与上述PC方案的对应关系:
不同的 PC 方案导致不同的 ZKP 算法,具有不同的性质、效率和安全性。例如,基于 FRI 的 ZK-STARKs 算法是抗量子的,并且不需要任何可信设置,因为它依赖于很少的数学安全假设。此外,对于基于 DARK 的 Supersonic 算法,如果未知阶组是 RSA 组,它将需要可信设置,因为它依赖于整数分解问题 (IFP) 假设;如果未知订单组是一个 Class Group,则不需要可信设置,因为它依赖于计算 Class Group 元素数量的难度。下表列出了每台 PC 的优点和缺点。
其中,绿色、黄色、红色分别对应优秀、中等、一般。在ZKP算法中,succinct一般表示:证明简洁、验证简洁、通信简洁。因此,在上表的第二行,我根据以上三个指标的不同,标注了各个算法的优劣。接下来我们来看看每台PC对应的性能指标。
颜色识别与上述一致。
从表中可以看出,在简洁性方面,KZG是最好的方案,因为它的proof size和验证时间都是常数,这意味着电路尺寸的增加不会导致proof size的增加。对于其他PC方案,proof size与电路规模相关,即proof size会随着电路规模的增大而增大。
然而,在安全性方面,KZG 方案与其他方案相比较弱,因为它需要第三方信任设置(见表 1)。
本文从不同角度分析了几种主流PC方案。但在实际生产应用过程中,需要项目方对其应用场景进行综合评估。更高的安全性或更高的效率一直是一种权衡。希望通过以上的介绍,可以让您对这些主流的PC方案有更全面的了解,进而在实际应用过程中选择最适合自己的PC方案。
注:本文为Sin7Y与ZKSwap共同撰写的文章。
文章翻译自己:https://medium.com/@sin7y/an-analysis-of-polynomial-commitment-schemes-kzg10-ipa-fri-and-darks-a8f806bd3e12