Web3 時代的 ZKP,如何邁向主流?
原文標題:《ZKPs in Web3: Now and the Future》
撰文:Mohamed Fouda、Qiao Wang
編譯:Frank,Foresight News
零知識技術(ZK)是一種推動技術,不僅將改變 Web3,還將改變其他行業。
作為一種足夠通用的技術,ZK 可以擁有多種用例,而我們正處於弄清楚該技術可以實現的所有用例的早期階段。一些明顯的 ZK 用例已經找到了真正的應用,例如實現交易隱私和數據壓縮(即 Rollup),然而要讓 ZK 被主流採用,仍然需要發掘進一步的潛在用例和技術進步。
本文我們將首先回顧 ZKP 的不同應用,然後將討論什麼可以實現這項技術的下一階段,以及一些可以從這項技術中受益的創業想法。
ZKP 的應用地圖
自發明以來,零知識證明(ZKP)已在加密行業站穩腳跟。
ZKP 確實存在一些魔力,使這項技術非常令人興奮------它允許實體向世界其他地方證明自己知道一條信息或已經正確完成了一項任務,但卻無需透露該信息或顯示該任務的詳細執行信息。
ZK 的數學魔力允許我們通過檢查生成的 ZKP 來信任該知識或任務已執行完畢,出於這個原因,ZKP 的第一個也是最一致的用例就是以隱私為中心的加密網絡,ZKP 還被用於提供以太坊 L1 上關於 L2 交易的有效性證明,以引入 ZK Rollup 的概念,此外 ZKP 在不同的項目中也被廣泛應用於其他小眾應用程序。
注重隱私的支付和協議
ZKP 自然而然地實現了隱私特性,特別是在去中心化網絡中,人們缺乏可以充當真相來源的中心化權威------ZKP 允許 Web3 用戶(證明者)向網絡驗證者證明他們的交易是有效的,即他們有足夠的餘額可以花費,而無需透露交易細節,例如交易金額、發送者或接收方地址。
ZKP 最初是為了支持 Zcash 網絡中的隱蔽支付(即私有支付)而開發的,隨後擴展到了其他網絡,包括:
- 注重隱私的 L1:Zcash、Horizon、Aleo 和 Iron Fish;
- 一般鏈上的隱私智能合約:Tornado Cash;
- 注重隱私的 L2:Aztec;
ZK Rollups 的驗證
ZKP 的另一個主要用例是在底層 L1 上生成 Rollup 有效性證明,通用 Rollup 通過不利用 ZKP 的隱私功能來優化吞吐量,即證明更多的交易(TX),在這種權衡中,ZKP 僅用來證明 L2 交易執行的正確性。
由於一些通用函數不能被有效地證明,因此生成 ZKP 來證明任意智能合約的正確執行是很困難的,解決這個問題需要實現專門的虛擬機(VM),這些 VM 可以使用底層 ZK 電路有效地進行驗證。由於這種複雜性,ZK Rollup 最初只支持支付或單個應用程序,例如可以很容易地生成 ZKP 的 DEX。
這裡的例子包括 zkSync 1.0 和 Loopring,之後通用的 zkEVM 實現開始出現在市場上,包括 Starknet、zkSync 2.0、Polygon zkEVM 和 Scroll。目前所有 ZK Rollup 都在以太坊上,但其實也可以在包括比特幣在內的其他鏈上實現 ZK Rollup。
然而,比特幣 Rollup 的實施將需要更改比特幣操作碼並進行鏈的硬分叉,這通常不受比特幣社區的歡迎。
其他 ZKP 應用
除了注重隱私的應用程序和 Rollup 之外,ZKP 還在其他區塊鏈協議中進行更廣泛方面的應用。
Mina
Mina 使用 ZKP 將區塊鏈狀態壓縮成很小的規模(約 22 KB),為了實現這一點,Mina 使用遞歸 ZKP,即其他 ZKP 的 ZKP。
當在 Mina 網絡中生成一個區塊時,zk-SNARKs 被用來生成該區塊的證明,以確保其有效性;當新的區塊引用以前的區塊時,新區塊的 ZKP 會驗證所有以前的區塊,同時保持恆定的大小。
Filecoin
Filecoin 使用 ZKP 來確保存儲提供商正確存儲他們聲稱要存儲的數據,此過程稱為複製證明 (PoReb)。
在此過程中,存儲提供程序生成 ZKP 以證明它們正在存儲數據的唯一副本,即非由其他存儲提供程序維護的副本。ZKP 為希望實現一定冗餘和可用性水平的 Filecoin 用戶提供了保證,此外由於證明的大小比存儲的數據小得多,因此使用 ZKP 可以降低存儲提供程序的帶寬要求。
Celo Plumo
Celo Plumo 使用 ZKP 來創建可在手機和其他資源有限的設備上使用的超輕量級網絡客戶端,儘管客戶端具有輕量級性質,但它可以保證其訪問狀態的正確性。
Dark Forest
Dark Forest 是 ZKP 在遊戲領域最受歡迎的應用。儘管 ZKP 的使用符合隱私用例,但 Dark Forest 在支付網絡中的金融應用之外,將它用於創建一個不完全信息遊戲的應用,所以這是一個與眾不同的用例。
ZKP 的發展軌跡及其應用
2016 年之前,ZKP 作為一個研究課題,只在少數的學術圈子裡討論。當 Zcash 創始團隊創建第一個 ZKP 變體(zk-SNARK)以支持 Zcash 網絡中的屏蔽 / 私有交易時,一切開始改變。
有了真正的用例,大家對 ZKP 的興趣就越來越大,這進一步導致了更好的 ZKP 變體,從而成為第一章中討論的許多項目的基礎,然而該技術需要進一步的 ZKP 開發才能被主流採用。
為了了解如何進一步改進技術,我們可以向人工智能(AI)等類似技術學習,因為在許多方面 ZKP 技術類似於 AI 技術,所以預計它也將遵循類似的軌跡。
與 ZKP 一樣,AI 最初是一項有前途的技術,可以解決許多問題。然而最初的 AI 算法在功能上受到限制,並且計算複雜性遠遠超過了可用硬件的能力,這使得 AI 應用進展緩慢且不切實際,從而主要被局限於研究實驗室。
後續通過發明深度神經網絡 (DNN) 等新架構和利用 GPU 提高執行速度,AI 持續實現逐步改進,最終導致了突破,例如 2012 年的 AlexNet 在最著名的計算機視覺競賽 ImageNet 中以巨大的優勢獲勝。AlexNet 是 AI 時代的開始,它導致了當前令人興奮的 AI 應用程序,如 GPT-3、Dall.E 2 和 Stable Diffusion。
今天的 ZKP 狀態類似於早期的 AI 狀態,這是一項有前途的技術,仍在積極開發中,並且因計算密集型特性而導致證明時間很長。從 AI 的進步軌跡中學習,我們可以確定 ZKP 技術起飛需要解決的瓶頸。
1. 算法 / 電路改進
就像 AI 從 LeNet-5 到 AlexNet,從 Resnet-50 到 Transformer 一樣,ZKP 算法也將經歷開發階段以顯著提高性能。我們已經看到這方面的進展,自 2011 年引入 zk-SNARKs 以來,行業已經開發了更先進的算法。
譬如 2018 年 Starkware 創始人開發的 STARK,這是一種不需要可信設置且證明生成時間更短的 ZKP 方法,這項技術是 Starkware 旗下 StarkNet 在內的幾款產品的基礎。
隨著在 2019 年引入 PLONK,ZKP 繼續取得進展------PLONK 是一種 SNARK 實現,允許許多應用程序使用單個受信任的設置,而無需重複設置。PLONK 刺激了多種 ZKP 實現的開發,被多個 Web3 協議(如 Aztec、Mina 和 Celo)使用。
2. 執行引擎優化
ZKP 的一個主要限制是計算複雜性導致較長的證明時間。例如最近宣布的 Polygon zkEVM,需要在 64 核服務器上運行大約 5 分鐘才能生成 50 萬 Gas 計算的證明。
縮短 ZKP 驗證時間是將 ZKP 技術納入主流的關鍵部分,與 AI 類似,優化軟件執行引擎和使用專用硬件都是實現這一目標的必要條件。
優化的軟件
許多 ZKP 生成操作都是大規模並行的,這意味著並行處理(例如 GPU)可以加速 ZKP 計算。專用的 GPU 庫(如 CUDA)可用於加速 Nvidia GPU 上 ZKP 的計算,由於每個項目都使用不同的 ZKP 算法,因此有幾個項目正在嘗試在內部進行開發。
一個值得注意的例子是 Filecoin 對 Groth16 算法的實現,該算法使用 GPU 來加速證明過程;另一個例子是 Edgeswap 使用 GPU 將 PLONK 的驗證時間縮短了 75%。
專用硬件
由於 GPU 對 ZKP 驗證時間的改進通常是有限的,因此另一種選擇就是使用專用硬件,例如 FPGA 或 ASIC。
在製造專用芯片(即 ASIC)的昂貴努力之前,FPGA 通常被認為是硬件原型設計平台。FPGA 或結合 GPU 和 FPGA 的混合解決方案,可以在中短期內加速 ZKP 應用於 Rollup 和注重隱私的網絡。
然而如果 ZKP 技術發展到我們預期的水平,ASIC 最終將贏得這個市場。目前 ZKP 的硬件加速尚未得到充分解決,這可能是因為 ZKP 算法的多樣性和碎片化,但是我們相信通過正確的商業模式,一些初創公司可以專注於開發和貨幣化這部分技術堆棧。
3. 軟件抽象層
為了釋放 ZKP 的潛力,需要構建多個抽象層和工具,這些抽象對於簡化 ZKP 應用程序的開發過程是必要的------允許每組開發人員專注於他們最擅長的事情,例如應用程序開發人員不應該擔心 ZK 電路的底層細節以及它們是如何工作的。
再次使用 AI 類比,通過創建多個抽象層,AI 可以取得巨大進步。使用這些抽象,AI 應用程序開發人員無需擔心 NN 架構或硬件資源分配,因為 TensorFlow 和 PyTorch 等 框架抽象出了所有這些底層細節。
ZK 開發堆棧還沒有像 AI 堆棧那麼完善,但是仍有一些努力來構建這些抽象層:堆棧的底部存在低級 ZKP 庫,如 PLONK 和 STARK ;在該層之上,諸如 Noir 之類的高級語言試圖抽象出底層的 ZK 密碼學,並幫助應用程序開發人員專注於應用程序邏輯;Circom 是另一種流行的 ZKP 語言,位於這兩層之間,因為它既可用於創建複雜的 ZK 後端,也可用於開發基於 ZKP 的應用程序。
Web3 中 ZKP 抽象的另一個例子是 StarkWare 的 Cairo 語言,它允許開發人員實現在底層使用 STARK 證明的通用智能合約。為了提供進一步的抽象,Nethermind 的 Warp 工具允許 Solidity 開發人員將他們的 Solidity 代碼直接轉換為 Cairo。
譬如使用 Warp,可以將 Uniswap V3 代碼轉譯為 Cairo,且只需對原始 Solidity 代碼進行最少的更改。
ZKP 的創業機會
基於對 ZKP 可能發展路徑的討論,我們確定了一些與 ZKP 相關的創業想法,主要理念分為兩類:工具和應用。
ZKP 工具
1.高級開發框架
與 AI 中的 Tensorflow 和 PyTorch 類似,高級 ZKP 開發框架對於在應用程序級別實現創新至關重要。這些框架需要:
- 將底層 ZKP 後端的複雜性抽象出來;
- 支持各種 ZKP 後端和硬件環境,例如 CPU 和 GPU;
- 允許高效的調試和測試;
- 提供包含示例和教程的豐富開發環境;
以太坊生態系統中最接近的例子是 Hardhat 和 Foundry,但它們不太可能很快支持 zkEVM 或 ZKP,相反,像 Cairo 這樣的現有抽象工作,最終可能會發展到填補這個空間。
2. ZK Rollup SDK
ZK Rollup 越來越受歡迎,可以為遊戲或高吞吐量 DeFi 協議啟用特定於應用程序的 L2。在這種情況下,ZK Rollup 主要負責執行和結算,而共識和數據可用性將由 L1 處理。
但是啟動特定於應用程序的 ZK Rollup 仍然非常複雜,我們相信提供對開發人員友好的 SDK 來啟動自定義 ZK Rollup 的初創公司將解決真正的業務需求,並可以通過提供開發工具箱、開發人員服務、排序器服務和支持基礎設施來成為價值業務。
3. ZKP 硬件加速器
以特定用例為目標並建立早期市場領先地位的專業硬件公司最終成為具有巨大價值的公司,人工智能就是如此------Nvidia 通過專注於人工智能硬件成為最有價值的北美半導體公司。
在比特幣挖礦領域也是如此,當時比特大陸(Bitmain)、嘉楠科技(Canaan)和 Whatsminer 通過專注於 ASIC 礦機而成為獨角獸,而設計和製造高效 ZKP 硬件加速器的公司也將遵循相同的軌跡。
ZKP Web3 應用程序
1.ZK 跨鏈橋和互操作性
ZKP 可用於為跨鏈消息傳遞協議創建有效性證明,其中跨鏈消息可以在目標鏈上快速驗證,這類似於在底層 L1 上驗證 ZK Rollup 的方式。但是對於跨鏈消息傳遞,複雜性更高,因為要驗證的簽名方案和加密函數在源鏈和目標鏈之間可能不同。
2. ZK 鏈上遊戲引擎
Dark Forest 證明了 ZKP 可以使信息不完全的鏈上遊戲成為可能,這對於設計更具互動性的遊戲至關重要,在這些遊戲中玩家的行為在決定公開之前是保密的。隨著鏈上遊戲的成熟,我們預計 ZKP 將成為遊戲執行引擎的一部分,因此對於成功將隱私功能集成到高吞吐量鏈上遊戲引擎中的初創公司來說,機會巨大。
3. 身份解決方案
ZKP 可以在身份領域創建新的機會,譬如用於創建聲譽或連接 Web2 和 Web3 身份,目前我們的 Web2 和 Web3 身份是分開的,像 Clique 這樣的項目通過使用預言機連接這些身份。
ZKP 可以通過啟用 Web2 和 Web3 身份的匿名鏈接來進一步採用這種方法:可以為那些可以使用 Web2 或 Web3 特定領域專業知識的人,提供匿名 DAO 成員資格等場景的用例;另一個用例則是基於借款人的 Web2 社會地位(例如 Twitter 關注者的數量),提供無擔保 Web3 貸款。
4. 符合法規要求的 ZKP
Web3 使匿名在線帳戶能夠積極參與金融系統,從這個意義上說,Web3 實現了巨大的財務自由和包容性。隨著 Web3 法規的增加,ZKP 可在合規的基礎上不破壞匿名性,譬如 ZKP 可用於證明用戶不是受制裁國家的公民或居民,ZKP 還可用於證明合格投資者身份或任何其他 KYC/AML 要求。
5. 原生 Web3 私募債務融資
TradeFi 債務融資通常用於支持成長中的初創公司加速增長或啟動新的業務線,而無需籌集額外的風險資金。
Web3 DAO 和匿名公司的興起為 Web3 原生債務融資創造了機會,例如使用 ZKP,DAO 或匿名公司可以根據其增長指標的證明,以具有競爭力的利率獲得非抵押貸款,而無需向貸方透露借款人的信息。
6. 私有 DeFi
金融機構通常會對其交易歷史和風險敞口進行保密,但由於區塊鏈分析的不斷發展,當使用鏈上產品(即 DeFi 協議)時,要滿足這一點就十分具有挑戰性,一個可能的解決方案是開發以隱私為中心的 DeFi 產品,以保護協議參與者的隱私。
譬如 Penumbra 的 zkSwap,此外 Aztec 的 zk.money 通過模糊用戶參與的 DeFi 協議操作,也提供了一些私有 DeFi 賺錢機會。
一般來說,成功實施高效且注重隱私的 DeFi 產品的協議,可以從機構參與者那裡獲得可觀的用戶數量和收入。
7. 基於 ZKP 的 Web3 廣告
Web3 推動用戶對其數據的所有權,例如瀏覽歷史記錄、私人錢包活動等,Web3 還可以使這些數據貨幣化以造福用戶。由於數據貨幣化可能與隱私相矛盾,ZKP 可以在控制個人數據的哪些方面可以向廣告商和數據聚合商披露方面發揮重要作用。
8. 私人數據的共享和貨幣化
如果與正確的實體共享,我們的大部分私人數據可能都會產生很大的影響。譬如個人健康數據可以眾包,以幫助研究人員開發新藥;私人財務記錄可以與監管機構和監管機構共享,以識別和懲罰腐敗等等;ZKP 可以實現此類數據的私人共享和貨幣化。
9. 去中心化的情報組織
ZKP 可以催生去中心化的情報組織。在這些系統中,情報人員、數據偵探和間諜可以成為網絡的一部分,而無需互動或相互了解。參與者可以在接收私人付款以換取該數據之前,使用 ZKP 來證明對某些情報數據的了解。此類系統還可以促進協作和可組合的方式,以豐富或解釋收集的數據,同時保持參與者的隱私。
10. 私人治理
隨著 DAO 和鏈上治理的激增,Web3 正在向直接參與的民主靠攏,當前治理模式的一個主要缺陷是參與的非隱私性。ZKP 可能是解決此問題的基礎,治理參與者可以在不透露他們如何投票的情況下投票。此外 ZKP 可以將治理提案的可見性限制為 DAO 成員,從而使 DAO 能夠建立競爭優勢。
結論
ZKP 技術是 Web3 領域最具創新性的技術之一,它為突破性的協議和公司提供了多種機會。