零知识证明:从理论突破到扩容应用的关键技术

零知识证明:从理论到应用的发展历程

一、零知识证明的历史脉络

零知识证明体系的现代理论基础源于1985年提出、1989年发表的一篇重要论文。该论文探讨了在交互式证明系统中,通过多轮交互来证明一个声明正确性所需交换的知识量。如果能够在不泄露任何额外信息的情况下完成证明,就称之为零知识证明。

早期的零知识证明系统在效率和实用性方面存在不足,主要停留在理论层面。近十年来,随着密码学在加密货币领域的兴起,零知识证明逐渐成为一个重要研究方向。其中,开发通用、非交互式且证明体积有限的零知识证明协议是一个关键目标。

零知识证明的一个重大突破来自Groth在2010年发表的论文,为zk-SNARK奠定了理论基础。2015年,Zcash将零知识证明应用于交易隐私保护,开启了更广泛的应用场景。

此后,一系列重要的学术成果不断涌现:

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

其他重要进展还包括PLONK、Halo2等,对zk-SNARK做出了进一步改进。

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

二、零知识证明的典型应用

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

在隐私保护方面,早期出现了Zcash、Monero等代表性项目。但由于隐私交易的需求不及预期,这类项目逐渐退居二线。

在扩容方面,随着以太坊转向以rollup为中心的路线,基于零知识证明的扩容方案重新成为焦点。

隐私交易

隐私交易的代表性项目包括:

  • Zcash:使用zk-SNARKs
  • Monero:使用Bulletproofs
  • Tornado Cash:基于以太坊的混币池,使用zk-SNARKs

Zcash的交易流程包括系统设置、密钥生成、铸币、交易、验证和接收等步骤。但Zcash仍有一些局限性,如基于UTXO模型、难以扩展应用等。

Tornado Cash采用单一大混币池的设计,基于以太坊网络,具有更好的通用性。

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

扩容

零知识证明可用于一层网络扩容(如Mina),也可用于二层扩容(即zk-rollup)。zk-rollup的核心思想是将大量交易聚合并生成零知识证明,然后在主链上验证更新状态。

zk-rollup的优势包括低费用、快速最终性、隐私保护等,但也面临计算量大、安全性等挑战。

目前主要的zk-rollup项目包括:

  • StarkNet(Starkware)
  • zkSync(Matter Labs)
  • Aztec Connect
  • Polygon Hermez和Miden
  • Loopring
  • Scroll

这些项目在技术路线上主要分为SNARK和STARK两大阵营,以及是否支持EVM兼容。EVM兼容性是一个重要的技术挑战和竞争焦点。

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

三、zk-SNARK的基本原理

zk-SNARK是目前应用最广泛的零知识证明方案之一。其全称为"零知识简洁非交互式知识论证"。

zk-SNARK的证明过程主要包括以下步骤:

  1. 将问题转换为电路
  2. 将电路转化为R1CS形式
  3. 将R1CS转换为QAP形式
  4. 生成可信设置的随机参数
  5. 生成和验证零知识证明

这一过程确保了证明的完整性、可靠性和零知识性。

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

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

ZK0.42%
此页面可能包含第三方内容,仅供参考(非陈述/保证),不应被视为 Gate 认可其观点表述,也不得被视为财务或专业建议。详见声明
  • 赞赏
  • 5
  • 分享
评论
0/400
BrokenYieldvip
· 19小时前
zk 证明……说实话,仍在等待那个 "杀手应用"……自 2017 年以来市场一直在炒作这个,真是无奈。
查看原文回复0
ProofOfNothingvip
· 19小时前
真的有人能看懂吗?
回复0
踏空资深专业户vip
· 19小时前
跑亏两个钱包了
回复0
数据酋长vip
· 19小时前
掌握不了 太硬核了
回复0
Gas_FeeNightmarevip
· 19小时前
没想到从85年就开始研究了
回复0
交易,随时随地
qrCode
扫码下载 Gate APP
社群列表
简体中文
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)