Rollup 等用例已開始廣泛應用,然而要讓ZK 被主流採用,仍然需要發掘進一步的潛在用例和技術進步。
原文標題:《ZKPs in Web3: Now and the Future》
撰文:Mohamed Fouda、Qiao Wang
零知識技術(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 領域最具創新性的技術之一,它為突破性的協議和公司提供了多種機會。