零知識證明技術演進:從理論突破到擴容應用

robot
摘要生成中

零知識證明:從理論到應用的演進

零知識證明的發展歷程

零知識證明體系起源於1985年Goldwasser、Micali和Rackoff發表的論文《交互式證明系統的知識復雜性》。該論文探討了在交互系統中,通過多輪交互來證明一個陳述正確性所需交換的知識量。如果可以在不泄露任何額外信息的情況下完成證明,就稱之爲零知識證明。

早期的零知識證明系統效率和實用性都不高,主要停留在理論層面。直到近10年,隨着密碼學在加密貨幣領域的廣泛應用,零知識證明才逐漸成爲一個重要研究方向。其中,開發通用、非交互式、證明規模有限的零知識證明協議是一個關鍵目標。

零知識證明的突破性進展是Groth在2010年發表的論文,奠定了zk-SNARK的理論基礎。2015年,Zcash將零知識證明應用於保護交易隱私,開啓了零知識證明在實際場景中的廣泛應用。

此後,一些重要的學術成果包括:

  • 2013年的Pinocchio協議,大幅提升了證明和驗證效率
  • 2016年的Groth16,進一步精簡了證明規模並提高驗證效率
  • 2017年的Bulletproofs,提出了無需可信設置的短證明算法
  • 2018年的zk-STARKs,提出了抗量子的零知識證明協議

其他如PLONK、Halo2等新發展也在不同方面改進了zk-SNARK。

HashKey ZK 101 第一期:歷史原理與行業

零知識證明的主要應用

零知識證明目前最廣泛的兩個應用是隱私保護和擴容。

早期的隱私交易應用如Zcash和Monero等曾備受關注,但隱私需求並未如預期那樣突出,這類項目逐漸退居二線。相比之下,擴容的需求日益迫切。特別是以太坊2.0轉向以rollup爲中心的路線後,基於零知識證明的擴容方案重回業界焦點。

隱私交易

隱私交易的代表性項目包括:

  • Zcash:使用zk-SNARKs實現交易隱私
  • Monero:採用Bulletproofs算法
  • Tornado Cash:基於以太坊的混幣池,使用zk-SNARKs

Zcash的隱私交易流程包括系統設置、密鑰生成、鑄幣、交易證明生成、驗證和接收等步驟。但Zcash也存在一些局限性,如基於UTXO模型,難以與其他應用結合,實際隱私交易使用率不高。

Tornado Cash採用單一大混幣池的方式,具有更好的通用性。它基於Groth16的zk-SNARK實現,可以保證存入的幣才能被提取,且每個幣只能被提取一次。

HashKey ZK 101 第一期:歷史原理與行業

擴容

零知識證明在擴容方面的應用主要是zk-rollup。zk-rollup的核心角色是Sequencer和Aggregator。Sequencer負責打包交易,Aggregator將大量交易合並並生成零知識證明,用於更新以太坊狀態樹。

zk-rollup的優點是費用低、交易速度快、可保護隱私。缺點是生成證明計算量大,且SNARK需要可信設置。

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

  • StarkNet:使用zk-STARKs,不支持EVM
  • zkSync:採用PLONK,支持EVM
  • Aztec:開發了PLONK協議,隱私優先
  • Scroll:致力於實現EVM兼容的zk-rollup

EVM兼容性是zk-rollup面臨的一大挑戰。目前的解決方案主要有兩種:完全兼容Solidity操作碼,或設計新的ZK友好虛擬機並兼容Solidity。EVM兼容性的提升將極大影響ZK生態的發展。

HashKey ZK 101 第一期:歷史原理與行業

zk-SNARK的基本原理

zk-SNARK代表"零知識簡潔非交互式知識論證"。它具有以下特性:

  • 零知識:不泄露額外信息
  • 簡潔:驗證成本低
  • 非交互:無需多輪交互
  • 論證:計算上可靠
  • 知識:證明者必須知道有效信息

Groth16的zk-SNARK實現原理包括以下步驟:

  1. 將問題轉換爲電路
  2. 將電路轉化爲R1CS形式
  3. 將R1CS轉換爲QAP形式
  4. 生成可信設置參數
  5. 生成和驗證零知識證明

HashKey ZK 101 第一期:歷史原理與行業

零知識證明技術正在快速發展,未來有望在更多領域發揮重要作用。

HashKey ZK 101 第一期:歷史原理與行業

ZK1.15%
查看原文
此頁面可能包含第三方內容,僅供參考(非陳述或保證),不應被視為 Gate 認可其觀點表述,也不得被視為財務或專業建議。詳見聲明
  • 讚賞
  • 留言
  • 分享
留言
0/400
暫無留言
交易,隨時隨地
qrCode
掃碼下載 Gate APP
社群列表
繁體中文
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)