零知識證明發展史與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 第一期:歷史原理與行業

ZK1.14%
查看原文
此頁面可能包含第三方內容,僅供參考(非陳述或保證),不應被視為 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)