原文作者:Mohamed Fouda 以及 Qiao Wang|編譯:DeFi 之道
零知識(或簡稱 zk)是一種使能技術,它不僅可以改變 Web3,還可以改變其他的行業。作為一種足夠通用的技術,zk 可擁有大量的用例,而我們正處於弄清楚該技術可實現的所有用例的早期階段。 一些明顯的 zk 用例,已經找到了真正的應用,例如啓用交易隱私以及數據壓縮(即rollup)。 然而,要讓 zk 的採用變為主流,仍然需要許多潛在的用例和技術進步。
在本文中,我們首先來回顧下 ZKP 的不同應用。 然後我們會討論,實現這項技術的下一階段需要什麼,以及一些可以從這項技術中受益的創業想法。
一、ZKP 應用地圖
自發明以來,零知識證明(ZKP)已在 crypto 行業中找到了穩固的立足點。ZKP 確實有一些神奇之處,這使得該技術非常令人興奮。簡單來說,ZKP 允許一個實體向世界其他地方證明其知道了一條信息,或者其已經正確完成了一項任務,而無需透露該信息或顯示任務執行的細節。 zk 的神奇數學讓我們只需檢查生成的 ZKP 就可以相信知識或執行的完成。 出於這個原因,ZKP 的第一個,也是最一致的用例是以隱私為中心的 crypto 網絡。 ZKP 還用於提供以太坊 L1 上的 L2 交易的有效性證明,以引入 zk rollup 的概念。此外,ZKP 在不同的項目中還被用於其他的利基應用。
以隱私為中心的支付和協議
ZKP 自然地實現了隱私,特別是在缺乏可充當真相來源的中央權威的去中心化網絡中。 ZKP 允許 Web3 用戶(證明者)向網絡驗證者(驗證者)證明他們的交易是有效的,即他們有足夠的餘額可以花費,而無需透露交易細節,如交易金額、發送方或接收方地址。
ZKP 最初是為了支持 Zcash 網絡中的隱蔽支付(即隱私支付)而開發的,然後擴展到了其他網絡。隱私支付網絡的項目例子包括:
- 注重隐私的 L1:Zcash、Horizon、Aleo 以及 Iron Fish
- 通用链上的隐私智能合约:Tornado Cash
- 注重隐私的 L2:Aztec
zk rollup 的驗證
ZKP 的另一個主要用例是在底層 L1 上生成 rollup 有效性證明。通用 rollup 優化吞吐量,即通過不利用 ZKP 的隱私功能來證明更多的 TX。在這種權衡中,ZKP 僅作為 L2 交易執行正確性的證明。
由於無法有效地證明一些通用函數,因此很難生成 ZKP 來證明任意智能合約的正確執行。解決這個問題需要實現專用的VM,這些 VM 可以使用底層 zk 電路得到有效驗證。由於這種複雜性,zk rollup 一開始只支持支付或單個應用(例如 DEX),這樣就可以輕鬆生成 ZKP。這裡的例子包括 zkSync 1.0 以及 Loopring。之後,通用的 zkEVM 實現開始出現在市場上,包括 Starknet、zkSync 2.0、Polygon zkEVM 以及 Scroll。目前,所有的 zk rollup 都在以太坊上,但理論上也可以在其他鏈(包括比特幣)上實現 zk rollup。然而,比特幣 rollup 的實施將需要更改比特幣操作碼並進行硬分叉升級,而這通常不受比特幣社區的歡迎。
其他的零知識證明應用
除了以隱私為中心的應用和 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 的使用符合隱私用例,但其創建不完全信息博弈的應用是一個獨特的用例,其超越了 ZKP 在支付網絡中的金融應用範圍。
二、ZKP 的發展軌跡及其應用
在 2016 年之前,ZKP 還只是在小範圍的學術圈內被討論的一個研究課題。當 Zcash 創始團隊創建了 ZKP 變體 zk-SNARK 的第一個實現,以支持 Zcash 網絡中的屏蔽/隱私交易時,這一切都發生了變化。有了一個真實的用例之後,ZKP 引發的興趣變得越來越大,這導致了更多更好的 ZKP 變體,這些變體成為了第一節中我們討論的很多項目的基礎。然而,該技術需要進一步的 ZKP 開發才能實現主流的採用。
要瞭解如何進一步改進該技術,我們可以向 AI 等類似技術學習。在許多方面,ZKP 技術類似於人工智能(AI)技術,預計它將遵循類似的發展軌跡。與 ZKP 一樣,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-SNARK 以來,研發人員已經開發了更高級的算法。 2018 年,Starkware 的創始人開發了 STARK,這是一種無需可信設置且證明生成時間更短的 ZKP 方法,這項技術是 Starkware 旗下幾款產品(包括 StarkNet 在內)的基礎。
隨著 2019 年 PLONK 的引入,ZKP 繼續取得了進展,這是一種 SNARK 實現,它允許很多應用使用單個受信任的設置,而無需重復設置。 PLONK 刺激了多種實現的開發,這些實現被多種 Web 3 協議(例如 Aztec、Mina 和 Celo)所使用。
2、優化的執行引擎
ZKP 的一個主要限制是計算複雜性,這導致了證明時間過長。例如,Polygon 最近宣佈的 zkEVM 實現需要在 64 核服務器上使用大約 5 分鐘來生成 50 萬 gas 計算的證明。提高 ZKP 證明時間是使 ZKP 技術成為主流的關鍵部分。與 AI 類似,優化軟件執行引擎和使用專用硬體都是實現這一目標的必要條件。
優化軟體
很多 ZKP 生成操作是大規模並行的,這意味著並行處理(例如 GPU)可以加速 ZKP 計算。 CUDA 等專用 GPU 庫可用於加速 Nvidia GPU 上 ZKP 計算。由於每個項目都使用不同的 ZKP 算法,因此有幾個項目正在嘗試在內部進行開發。這裡一個值得注意的例子是 Filecoin 的 Groth16 算法的實現,它使用 GPU 來加速證明過程。另一個例子是 Edgeswap 使用 GPU 將 PLONK 的證明時間減少了 75%。
專用硬體
由於 GPU 對 ZKP 證明時間的改進會是有限的,因此另一種選擇是使用專用硬體,例如 FPGA 或 ASIC。在製造專用芯片(即 ASIC)的昂貴努力之前,FPGA 通常被視為硬體原型設計平台。 FPGA 或結合 GPU 和 FPGA 的混合解決方案,可以在中短期內為 Rollup 以及以隱私為中心的網絡加速 ZKP 發揮重要作用。然而,如果 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 的應用程式。
Web 3 中 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 硬體加速器
針對特定用例並建立早期市場領先地位的專業硬體公司,最終會成為極具價值的公司。當英偉達通過專注於人工智能硬體而成為北美最有價值的半導體公司時,人工智能(AI)就是如此。當比特大陸、嘉楠以及 Whatsminer 通過專注於 ASIC 礦機成為獨角獸時,比特幣挖礦領域也是如此。設計和構建高效 ZKP 硬件加速器的公司,將遵循相同的軌跡。
ZKP Web 3 應用
1、zk 跨鏈橋和互操作性
ZKP 可用於創建跨鏈消息傳遞協議的有效性證明,跨鏈消息可以在目的鏈上快速驗證。這類似於在底層 L1 上驗證 zk rollup 的方式。但是,對於跨鏈消息傳遞,複雜性會更高,因為要驗證的簽名方案和密碼學函數在源鏈和目標鏈之間可能不同。
2、zk 鏈上遊戲引擎
Dark Forest 證明 ZKP 可以實現信息不完整的鏈上遊戲。這對於設計更具互動性的遊戲是至關重要的,在這些遊戲中,玩家的行為在他們決定公開之前都是保密的。隨著鏈上遊戲的成熟,我們預計 ZKP 將成為遊戲執行引擎的一部分。對於成功將隱私功能集成到高吞吐量鏈上遊戲引擎中的初創公司來說,機會是巨大的。
3、身份解決方案
ZKP 可以在身份空間中實現多個機會。它們可用於信譽或連接 Web 2 和 Web 3 身份。目前,我們的 Web 2 和 Web 3 身份是分開的。 Clique 等項目通過使用預言機連接這些身份。 ZKP 可以通過啓用 Web 2 和 Web 3 身份的匿名鏈接來進一步採用這種方法。這可以為那些可使用 Web 2 或 Web 3 數據證明特定領域專業知識的人啓用匿名 DAO 成員資格等用例。另一個用例是基於借款人的 Web 2 社會地位(例如 Twitter 關注者的數量)的無抵押 Web 3 貸款。
4、合規性 ZKP 用例
Web 3 使假名在線帳戶能夠積極參與金融系統。從這個意義上說,Web 3 實現了巨大的財務包容性。隨著 Web 3 監管法規的增加,ZKP 可用於合規性而不會破壞假名。 ZKP 可用於證明用戶不是受制裁國家的公民或居民。ZKP 還可用於證明合格投資者身份或任何其他KYC/AML要求。
5、原生 Web 3 隱私債權融資
傳統金融債權融資通常用於支持成長中的初創公司以加速其增長或啓動新業務線,而無需籌集額外的風險資本。 Web 3 DAO 以及假名公司的興起,為 Web 3 原生債權融資創造了機會。例如,使用 ZKP、DAO 或假名公司可以在不向貸款人透露借款人信息的情況下,根據其增長指標的證明,以具有競爭力的利率獲得非抵押貸款。
6、隱私 DeFi
金融機構通常將其交易歷史和風險敞口保密。由於區塊鏈鏈分析技術的不斷進步,當使用鏈上(即 DeFi協議)時,要滿足這一要求具有挑戰性。一個可能的解決方案是開發以隱私為重點的 DeFi 產品,保護協議參與者的隱私。一個正在嘗試實現的協議是 Penumbra 的 zkSwap。此外,Aztec 的 zk.money 通過模糊用戶參與透明 DeFi 協議,提供了一些隱私 DeFi 賺錢機會。通常,成功實現高效且注重隱私的 DeFi 產品的協議,可確保機構參與者的大量交易以及收入。
7、Web 3 廣告的 ZKP 用例
Web 3 推送用戶對其數據的所有權,例如瀏覽歷史記錄、私人錢包活動等。Web 3 還支持為用戶的利益將這些數據貨幣化。由於數據貨幣化可能與隱私相矛盾,ZKP 可以在控制個人數據的哪些方面可透露給廣告商和數據聚合商方面發揮重要作用。
8、私人數據的共享和貨幣化
如果與正確的實體共享,我們的很多私人數據可能會產生很大的影響。個人健康數據可通過眾包來幫助研究人員開發新藥。私人財務記錄可以與監管機構和監督機構共享,以識別和懲治腐敗。ZKP 可以實現此類數據的私有共享和貨幣化。
9、去中心化的情報組織
ZKP 可以催生去中心化的情報組織。在這些情況下,情報運營商、數據偵探以及間諜可以成為網絡的一部分,而無需相互交流或瞭解。參與者可以使用 ZKP 來證明對某些情報數據的瞭解,然後再接受私人支付以換取這些數據。這樣的系統還可以促進協作和可組合的方式來豐富或解釋收集的數據,同時維護參與者的隱私。
10、隱私治理
隨著 DAO 和鏈上治理的普及,Web3 正在向直接參與的民主靠攏。當前治理模式的一個主要缺陷是參與的非隱私性。ZKP 可能是解決這個問題的基礎。治理參與者可以投票,而不必透露他們的投票情況。此外,ZKP 可以將治理提案的可見性限制為對 DAO 成員可見,從而允許 DAO 建立競爭優勢。
四、結論
ZKP 技術是 Web 3 領域最具創新性的技術之一,它為突破性協議和公司提供了多種機會。 在 Alliance,我們希望成為這一運動的核心部分,我們正在尋求支持和資助創始人朝著這個方向發展。
作者感謝 Shumo Chu、Carter McAlister 以及 Adam Porter 對本文的反饋。
其他閱讀資源:
1、零知識證明的硬體加速
2、去中心化的速度:零知識證明的進步
3、Zk-SNARKs:區塊鏈上的可更新的設置