零知识证明发展史与ZK-SNARK原理解析

robot
摘要生成中

零知识证明的发展历程与应用探索

一、零知识证明的历史沿革

现代零知识证明体系起源于1985年Goldwasser、Micali和Rackoff合著的论文。该论文探讨了在交互系统中,通过多轮交互来证明一个陈述正确性所需交换的知识量。如果可以实现零知识交换,则被称为零知识证明。这种交互式系统虽然在数学上不能完全证明,但在概率意义上是正确的。

为了克服交互式系统的局限性,非交互式系统应运而生,成为零知识证明的理想选择。早期的零知识证明系统在实用性方面存在不足,直到最近十年才开始蓬勃发展。其中,发展通用、非交互且证明大小有限的零知识证明协议成为关键探索方向之一。

零知识证明的重要突破是Groth在2010年提出的短配对非交互零知识论证,为zk-SNARK奠定了理论基础。2015年,零知识证明在Zcash项目中得到实际应用,实现了对交易隐私的保护。此后,zk-SNARK与智能合约的结合使其应用场景进一步拓展。

在此期间,一些重要的学术成果包括:

  • 2013年的Pinocchio协议,压缩了证明和验证时间
  • 2016年的Groth16,精简了证明大小并提升验证效率
  • 2017年的Bulletproofs,提出了简短的非交互式零知识证明
  • 2018年的zk-STARKs,提出了不需可信设置的算法协议

其他如PLONK、Halo2等发展也对zk-SNARK做出了改进。

HashKey ZK 101 第一期:历史原理与行业

二、零知识证明的主要应用

零知识证明最广泛的两个应用是隐私保护和扩容。

隐私保护方面,早期的代表项目包括Zcash和Monero等。但由于隐私交易的必要性不如预期,这类项目逐渐退居二线。

在扩容应用上,随着以太坊转向以rollup为中心的路线,ZK系列重新成为业界焦点。ZK的扩容可以在一层网络实现,如Mina项目;也可以在二层网络实现,即zk-rollup。

zk-rollup的主要角色包括Sequencer和Aggregator。Sequencer负责打包交易,Aggregator负责合并交易并生成零知识证明,用于更新链上状态。

zk-rollup的优势在于低费用、快速最终性和隐私保护;缺点包括计算量大、需要可信设置等。

HashKey ZK 101 第一期:历史原理与行业

目前市场上有竞争力的zk-rollup项目包括StarkNet、zkSync、Aztec Connect、Polygon Hermez等。这些项目在技术路线上主要在SNARK(及其改进版本)和STARK之间选择,以及对EVM的支持程度。

EVM兼容性是一个重要问题。一些项目选择完全兼容Solidity操作码,另一些则设计新的虚拟机以兼顾ZK友好性和Solidity兼容性。近年来EVM兼容性的提升为开发者提供了更多便利。

HashKey ZK 101 第一期:历史原理与行业

三、ZK-SNARK的基本原理

零知识证明需满足完整性、可靠性和零知识三个特性。ZK-SNARK是一种广泛应用的零知识证明协议,全称为"零知识简洁非交互式知识论证"。

ZK-SNARK的基本步骤包括:

  1. 将问题转换为电路
  2. 将电路转化为R1CS形式
  3. 将R1CS转换为QAP形式
  4. 建立可信设置,生成证明密钥和验证密钥
  5. 生成和验证ZK-SNARK证明

HashKey ZK 101 第一期:历史原理与行业

ZK-SNARK的发展为零知识证明在区块链领域的应用奠定了基础。未来,随着技术的进步,零知识证明有望在更多场景中发挥重要作用。

HashKey ZK 101 第一期:历史原理与行业

ZK2.07%
此页面可能包含第三方内容,仅供参考(非陈述/保证),不应被视为 Gate 认可其观点表述,也不得被视为财务或专业建议。详见声明
  • 赞赏
  • 4
  • 分享
评论
0/400
Gas_Guzzlervip
· 07-18 21:54
zk真牛啊!
回复0
资深链上福尔摩斯vip
· 07-16 02:45
zk也太离谱了8
回复0
FloorSweepervip
· 07-16 02:41
如果你仍然不理解 zk 技术,那就 ngmi
查看原文回复0
Blockchain解码vip
· 07-16 02:36
引用 1989 年Goldwasser论文观点,ZK 本质是交互的颗粒度问题
回复0
交易,随时随地
qrCode
扫码下载 Gate APP
社群列表
简体中文
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)