零知识证明(四)——区块链之发展历程

572 阅读4分钟

一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第16天,点击查看活动详情

有帮助的话请点个赞吧~

零知识证明的概念其实很早就有了,是区块链里虚拟货币对它的应用让他开始飞速发展,本节简述一下这些协议的发展历程。

发展(翻红)历程

  • 1985 年,零知识证明Zero-Knowledge Proof 由 S.Goldwasser、 S.Micali 及 C.Rackoff 首次提出。后来Oded Goldreich、Silvio Micali和Avi Wigderson进一步提出可以为NP完全问题——地图三着色问题创建一个零知识证明系统。(早期都是数学上的各种理论)

  • 2010年,Groth实现了首个基于椭圆曲线双线性映射全能的,常数大小的非交互式零知识证明协议。后来这个协议经过不断优化,最终成为区块链著名的零知识证明协议SNARKs。

    • 这个协议本身只是个理论,没有实践。
    • 但他提出的这个双线性映射和椭圆曲线的同态计算很重要,后面的各种证明都基于这两点。
  • 2013年,Pinocchio协议实现了分钟级别证明,毫秒级别验证,证明大小不到300字节,将零知识证明从理论带到了应用。后来Zcash使用的SNARKs正是基于Pinocchio的改进版。

  • 2014 年,加密货币Zerocash则使用了一种特殊的零知识证明工具zk-SNARKs( Zero-Knowledge Succinct Non-interactive Arguments of Knowledge ) 实现了对交易金额、交易双方的完全隐藏,更注重于隐私,以及对交易透明的可控性。

    • Zerocash:Decentralized Anonymous Payments from Bitcoin
    • 基于账本的加密货币,基于用户的固定地址,可以在没有互动的情况下直接私人支付。
    • 保护支付来源、目的、金额。
    • 升级版的Zerocoin,模型差不多但相比于Zerocoin交易大小和验证时间少了很多。
  • 2014年,Ben-Sasson,为算术电路设计。(其实也是Zerocash团队)

    • Succinct Non-interactive Zero Knowledge for a Von Neumann Architecture
    • 支持在冯诺依曼简化指令集计算机中实现
    • 需对每个语句进行可信设置
    • 将证明内容转化为QAP(quadratic arithmetic programs)
  • 2017年,Ligero,通信复杂度正比于验证电路大小的平方根,可以依靠任何哈希函数。

    • Ligero:Lightweight Sublinear Arguments without a Trusted Setup
    • 可以在随机预言机模型中构建zk-SNARK方案,无需可信设置或公钥密码系统
    • 适用于及其庞大的电路,也适用于中等规模电路(对小规模电路来说,算力可能不太够)。
  • 2018年,Bulletproof,基于DLP,证明短【log(witness)\log (witness)】。

    • Bulletproofs:Short Proofs for Confidential Transactions and More
    • SNARK改进,无需可信设置,线性范围证明。
  • 2018年,Hyrax,低通信量且P、V成本低,无可信设置,验证时间于算术电路大小呈线性关系。

    • Doubly-EfficientzkSNARKs without Trusted Setup
    • 一个高效的zk-SNARK模型(证明&计算开销可观)
  • 2018,STARK,可扩展性与透明,廉价且无需信任的验证,证明长度大但验证效率高

    • 可以把各种计算拿到链下,链下的数据也不需要上传,算完传结果和证明;
    • 抗量子计算,因为基于哈希函数;
    • 无需可信第三方。
  • 2019年,Aurora,算术电路,参数与电路大小呈多相对数关系,透明抗量子;证明大小优越。

    • Aurora:Transparent Succinct Arguments for R1CS
    • STARK的改进版。
  • 2019年,Sigma协议,Zerocoin协议的改进,无需可信设置。

    • Zcoin cryptocurrency introduces zero knowledge proofs with no trusted set-up
  • 2019年,Lelantus协议,Sigma协议的改进,隐藏交易来源和金额。

    • Lelantus: Towards Confidentiality and Anonymity of Blockchain Transactions from Standard Assumptions
  • 2019年,Libra,线性证明时间,一次性可信设置,突出的渐进性能和验证效率;证明时间优越,且复杂度不依赖于电路类型。

    • Libra:Succinct Zero-Knowledge Proofs with Optimal Prover Computation
  • 对比

    • SNARK系模型对比
      【其中c是对数空间统一电路的大小,其深度为d,s是电路的输入大小。与c相比,d可以忽略不计】
    • 各种协议对比 image.png
      • 前几列分别是系统、发布年份和所基于的基本协议;
      • Transparent:透明性,指需不需要可信设置,早期SNARK都需要,后来发展应用中基于各种方法都尽可能给它取消了;
      • Universal:通用性,指需不需要对每个实例电路做不同的设置,也是早期有,但是每个都不同设置很麻烦,后面发展就都能重用了;
      • Plausible Post-Quantum Secure:合理的后量子安全,也就是能不能抗量子计算,SNARK基于数学难题所以是不行的,后面的STARK和一些比较新的改进基于哈希之类的才可以;
      • Programing Paradigm:编程范式,也就是基于什么实现,实用一点的基本都是算术电路。

参考

[1] Sun, Xiaoqiang, F. Yu, Peng Zhang, Zhiwei Sun, Weixin Xie, and Xiang Peng. 2021. ‘A Survey on Zero-Knowledge Proof in Blockchain’. IEEE Network 35:198–205. doi: 10.1109/MNET.011.2000473.
[2] STARK - Starkware
[3] Zero-knowledge proof - Wikipedia


欢迎指正与讨论!