零知識證明 (ZKP) 自發明以來就在加密行業中找到了強大的立足點。

原文:ZKPs in Web 3: Now and the FutureAlliance DAO

作者:Mohamed FoudaQiao Wang

編譯: ChinaDeFi

原用標題(譯後) Web3:零知識證明的路在何方?

封面: Photo by  Krystian Piątek  on  Unsplash

零知識技術 (簡稱 ZK) 是一種使能技術,它不僅將改變 Web3,還將改變其他行業。它是一種可以通用的技術,具有大量的用例。我們正處於弄清這項技術所能實現的所有用例的早期階段。一些明顯的 ZK 用例已經有了實際的應用程序,如啟用交易隱私和數據壓縮,即 Rollup。然而,要使 ZK 獲得主流採用,仍然需要許多潛在的用例和技術進步。

在本文中,我們將首先回顧 ZKP 的不同應用。然後會討論什麼可以使這項技術的下一階段成為可能,以及關於一些可以從這項技術中受益的初創公司的想法。

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-Rollup 驗證

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 之外,我們還在其他區塊鏈協議中發現了其他應用程序。本節將介紹這些用例。

Mina

Mina 使用 ZKP 將區塊鏈狀態壓縮到一個很小的尺寸 (~22 KB)。為了實現這一點,Mina 使用遞歸 ZKP,即其他 ZKP 的 ZKP。當在 Mina 網絡中生成一個區塊時,ZK-SNARK 用於生成該區塊的證明,以確保其有效性。當新區塊引用以前的區塊時,新區塊的 ZKP 會驗證所有以前的區塊,同時保持恆定的大小。

Filecoin

Filecoin 使用 ZKP 來確保存儲提供者正確地存儲了他們聲稱要存的數據。這個過程稱為複制證明 (PoReb)。在這個過程中,存儲提供者生成 ZKP 來證明它們存儲的是數據的唯一副本,也就是說,沒有引用由另一個提供者維護的副本。此外,由於證明的大小比存儲的數據小得多,使用 ZKP 減少了存儲提供者的帶寬需求。

Celo Plumo

Celo Plumo 使用 ZKP 來創建可以在手機和其他資源有限的設備上使用的超輕型網絡客戶端。儘管客戶端是輕量級的,但它保證了所訪問狀態的正確性。

Dark Forest

Dark Forest 是 ZKP 遊戲領域中最受歡迎的應用。儘管 ZKP 的使用符合隱私用例,但把它用於創建不完全信息遊戲的應用確實是比較獨特的,超越了 ZKP 在支付網絡中的金融應用範圍。

ZKP 及其應用的發展軌跡

在 2016 年之前,ZKP 只是一個研究課題,只在少數學術圈子內被討論。當 Zcash 創始團隊創建了 ZKP 變體 ZK-SNARK 的第一個可生產實現,以支持 Zcash 網絡中的屏蔽/私人交易時,這一切都改變了。有了真實的用例,對 ZKP 的興趣也就愈加濃郁,從而也產生了更好的 ZKP 變體,這也成為第一節中討論的許多項目的基礎。然而,該技術要實現主流採用還需要進一步的 ZKP 開發。

為了了解如何進一步改進這項技術,我們可以藉鑑類似的技術,如人工智能。在許多方面,ZKP 技術類似於人工智能技術,預計也將遵循類似的軌跡。和 ZKP 一樣,人工智能一開始也是一項很有前途的技術,可以解決很多問題。然而,最初的人工智能算法在能力上受到限制,計算複雜度遠遠超過了現有硬件的能力。這使得人工智能應用的開發和使用變得緩慢和不切實際,使得人工智能就局限在了研究實驗室裡。通過發明 DNN 等新架構並利用 GPU 來提高執行速度,現在正在逐步改進。這最終帶來了一些突破,比如 2012 年的 AlexNet,它以巨大的優勢贏得了最著名的計算機視覺比賽 ImageNet。AlexNet 是人工智能時代的開始,催生了當前的人工智能應用程序,如 GPT-3, Dall.E 2 和 Stable Diffusion。

ZKP 今天的狀態類似於 AI 早期的狀態,AI 是一項有前途的技術,仍在積極開發中,只是計算密集型導致其驗證時間過長。從 AI 的經驗中,我們可以確定 ZKP 技術起飛需要解決一些問題。

  • 算法/電路改進

與 AI 從 LeNet-5 到 AlexNet 到 Resnet-50 到 Transformer 的發展方式相同,ZKP 算法將經歷發展階段,其會帶來性能的顯著提高。其實我們已經看到了這方面的進展。自 2011 年引入 ZK-SNARK 以來,我們已經開發出了更先進的算法。2018 年,Starkware 的創始人開發了 STARK,這是一種 ZKP 方法,不需要可信設置,證明生成時間更短。這項技術是 Starkware 公司包括 StarkNet 在內的幾款產品的基礎。

隨著 2019 年 PLONK 的引入,ZKP 得到持續發展,這是一種 SNARK 實現,其允許許多應用程序使用單個受信任的設置,而無需進行重複設置。PLONK 刺激了多種實現的開發,這些實現被多種 Web3 協議(例如 Aztec、Mina 和 Celo)使用。

  • 優化執行引擎

ZKP 的一個主要限制是計算的複雜性,這導致了證明時間過長。例如,最近 Polygon 發布的 zkEVM 實現了在 64 核服務器上用 5 分鐘生成 500k gas 計算的證明。提高 ZKP 驗證時間是 ZKP 技術主流化的關鍵。與 AI 類似,優化軟件執行引擎和使用專用硬件都是實現這一目標的必要條件。

優化軟件

許多 ZKP 生成操作是大規模並行的,這也就意味著並行處理,例如 GPU,可以加速 ZKP 的計算。專用的 GPU 庫 (如 CUDA) 可以用於加速 Nvidia GPU 上 ZKP 的計算。由於每個項目都使用不同的 ZKP 算法,因此有幾個項目正在嘗試在內部開發這種算法。這裡顯著的例子是 Filecoin 對 Groth16 算法的實現,該算法使用 GPU 來加速證明過程。另一個例子是 Edgeswap 使用 GPU 將 PLONK 的證明時間縮短了 75%。

專用硬件

由於 GPU 通常使得 ZKP 驗證時間的改進有限,在這種情況下,我們的另一種選擇是使用專用硬件,如 FPGA 或 ASIC。FPGA 通常被認為是在製造專用芯片 (即 ASIC) 之前的硬件原型平台。FPGA、或者結合了 GPU 和 FPGA 的混合解決方案,可以在中短期內,在加速中心化網絡和以隱私為重點的網絡的 ZKP 方面發揮重要作用。然而,如果 ZKP 技術發展到我們預期的水平,ASIC 將最終贏得這個市場。目前,ZKP 的硬件加速還沒有得到充分解決,這可能是因為 ZKP 算法的多樣性和碎片化。然而,我們相信,有了正確的商業模式,一些初創公司可以專注於開發和貨幣化這部分技術堆棧。

  • 軟件抽象層

為了釋放 ZKP 的潛力,需要構建幾個抽象層和工具。這些抽像對於簡化 ZKP 應用程序的開發過程是非常必要的,而且應該允許每一組開發人員專注於他們最擅長的工作。例如,應用程序開發人員不應該擔心 ZK 電路的底層細節及其工作方式。再次使用 AI 的類比,通過創建多個抽象層,AI 可能取得巨大進步。使用這些抽象,AI 應用程序開發人員不需要擔心硬件資源分配。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 工具

  • 高級開發框架

類似於 AI 中的 Tensorflow 和 PyTorch,高級 ZKP 開發框架對於解鎖應用級別的創新至關重要。這些框架需要:

  • 抽象底層 ZKP 後端的複雜性;
  • 支持各種 ZKP 後端和硬件環境,例如 CPU 和 GPU;
  • 可進行高效的調試和測試;
  • 提供具有示例和教程的豐富開發環境。

以太坊生態系統中最接近的例子是 Hardhat 和 Foundry,但它們不太可能很快支持 zkEVM 或 ZKP。

  • ZK-Rollup SDK

ZK-Rollup 越來越流行,可以為遊戲或高吞吐量的 DeFi 協議啟用特定於應用程序的 L2。在這個場景中,ZK-Rollup 主要進行執行和結算,而 L1 將處理共識和數據可用性。然而,啟動特定於應用程序的 ZK-Rollup 仍然非常複雜。我們相信,提供開發人員友好的 SDK 來發布自定義 ZK-Rollup 的初創公司將解決真正的業務需求,並可以通過提供開發工具箱、開發人員服務、測序器服務和支持基礎設施來成為有價值的企業。

  • ZKP 硬件加速器

瞄準特定用例並建立早期市場領先地位的專業硬件公司被證明是非常有價值的公司。當英偉達專攻人工智能硬件,成為北美最有價值的半導體公司時,人工智能領域就是如此。比特幣挖礦領域也是一樣,Bitmain、Canaan 和 Whatsminer 通過專攻 ASIC 挖礦成為獨角獸。設計和製造高效 ZKP 硬件加速器的公司也很可能將遵循同樣的軌跡。

ZKP Web3 應用程序

  • ZK 橋和互操作性

ZKP 可用於為跨鏈消息傳遞協議創建有效性證明,其中跨鏈消息可以在目標鏈上被快速驗證。這類似於在底層 L1 上驗證 ZK-Rollup 的方式。然而,對於跨鏈消息傳遞,由於要驗證的簽名方案和加密函數在源鍊和目標鏈之間可能不同,因此復雜性更高。

  • ZK 鏈上游戲引擎

Dark Forest 證明了 ZKP 可以使信息不完整的鏈上游戲成為可能。這對於更具互動性的遊戲設計至關重要,因為在這些遊戲中,玩家的行為是保密的,直到他們決定將其公之於眾。隨著鏈上游戲的成熟,我們希望 ZKP 成為遊戲執行引擎的一部分。對於成功將隱私功能集成到高吞吐量鏈上游戲引擎中的初創公司來說,機會是巨大的。

  • 身份解決方案

ZKP 在身份領域中擁有多個機會。它們可以用於信譽或連接 Web2 和 Web3 身份。目前,我們的 Web2 和 Web3 身份是分開的。Clique 等項目通過使用預言機連接這些身份。通過啟用 Web2 和 Web3 身份的匿名鏈接,ZKP 可以將這種方法更進一步。這可以為那些使用 Web2 或 Web3 數據證明特定領域專業知識的人啟用匿名 DAO 成員的用例。另一個用例是基於借款人的 Web2 社會地位 (例如 Twitter 追隨者數量) 的無擔保 Web3 貸款。

  • 用於法規遵從性的 ZKP

Web3 使匿名在線賬戶能夠積極參與金融系統。從這個意義上說,Web3 實現了巨大的金融自由和包容性。隨著 Web3 法規的增加,ZKP 可以用於遵從而不破壞匿名性的活動。ZKP 還可用於證明投資者身份或任何其他 KYC/AML 要求。

  • 原生 Web3 私人債務融資

TradeFi 債務融資通常用於支持成長型初創公司,以加速其增長或啟動新的業務線,而無需籌集額外的風險投資。Web3 DAO 和匿名公司的興起為 Web3 原生債務融資創造了機會。例如,通過使用 ZKP、DAO 或匿名公司可以根據其增長指標的證明以具有競爭力的利率獲得無抵押貸款,而無需向貸方透露借款人的信息。

  • 私人 DeFi

金融機構通常不公開自己的交易歷史和風險敞口。由於鏈分析的不斷進步,當使用鏈上協議 (例如 DeFi 協議) 時,要滿足這一點是具有挑戰性的。一種可能的解決方案是開發以隱私為中心的 DeFi 產品,以保護協議參與者的隱私。一個正在嘗試實現這一願景的協議是 Penumbra 的 zkSwap。此外,Aztec 的 zk.money 通過模糊用戶參與的 DeFi 協議,提供了一些私人 DeFi 的賺錢機會。一般來說,成功實現高效且注重隱私的 DeFi 產品協議可以從機構參與者那裡獲得可觀的收入。

  • Web3 廣告的 ZKP

Web3 推動了讓用戶擁有自己的數據的潮流,例如瀏覽歷史、私人錢包活動等。Web3 還為用戶的利益支持這些數據的貨幣化。由於數據貨幣化可能與隱私相矛盾,ZKP 可以控制個人數據的哪些方面允許透露給廣告商和數據聚合商。

  • 私人數據的共享和貨幣化

如果與正確的實體共享,我們的許多私人數據都可以產生很大的影響。個人健康數據可以通過眾包來幫助研究人員開發新藥。私人財務記錄可以與監管機構和監督機構共享,以發現和懲罰不當行為。ZKP 可以實現這種數據的私人共享和貨幣化。

  • 私人治理

DAO 和鏈上治理正在被普及,當前治理模式的一個主要缺陷是參與的非隱私性。ZKP 是解決這個問題的基礎。治理參與者可以在不透露投票方式的情況下進行投票。此外,ZKP 可以限制治理提案對 DAO 成員的可見性,從而使得 DAO 建立競爭優勢。

結論

ZKP 技術是 Web3 領域中最具創新性的技術之一。它為突破性協議和公司提供了一些機會。

免責聲明:作為區塊鏈信息平台,本站所發布文章僅代表作者及嘉賓個人觀點,與 Web3Caff 立場無關。文章內的信息僅供參考,均不構成任何投資建議及要約,並請您遵守所在國家或地區的相關法律法規。