
作者:Kernel Ventures Turbo 郭
編輯:Kernel Ventures Rose、Kernel Ventures Mandy、Kernel Ventures Joshua
TLDR:ZK 協處理器是 dApp 利用鏈外運算資源的解決方案。本文探討了協處理器的現有解決方案、各種應用以及未來的發展。涵蓋的主要主題如下:
RISC Zero的zkVM是一種ZK協處理器解決方案,允許鏈上合約呼叫鏈下zkVM來運行特定的Rust程式碼並將結果傳回至鏈上,同時提供zkp用於鏈上驗證計算的正確性。
ZK 協處理器有不同的解決方案。除了zkVM之外,使用者還可以為自己的程式編寫客製化的ZK電路,或使用預製框架編寫電路,從而使合約能夠利用鏈下計算資源。
ZK 協處理器可以在 DeFi 中發揮作用,例如將 AMM 計算卸載到鏈下以捕獲類似於 MEV 的價值,或為 AMM 啟用複雜且計算密集型的邏輯。 ZK 協處理器還可以促進借貸協議的即時利率計算,使保證金計算透明等。 zkAMM有兩種實作方式,一種使用zkVM,另一種使用zkOracle。
ZK 協處理器還有其他潛在的用例,例如錢包使用它來執行鏈下身份驗證。它可以為鏈上遊戲提供更複雜的計算,並減少 DAO 治理等應用程式所需的天然氣。
ZK 協處理器的前景仍然不確定,但與使用者編寫自己的電路相比,使用鏈下資源介面的解決方案更加用戶友好。然而,「介面」解決方案背後整合了哪些運算服務供應商,無論是傳統的雲端供應商還是去中心化的資源共享網絡,是另一個需要討論的重要主題。
1. ZK協處理器的目的與應用

資料來源:Kernel Ventures
ZK協處理器的核心是將鏈上運算移至鏈下,利用ZK證明保證鏈下運算的可靠性,讓智慧合約在驗證運算可靠性的同時可以輕鬆處理大量運算。這與zkRollups的想法類似,但Rollups在鏈協定層使用鏈下運算資源,而ZK協處理器則由dApp使用鏈下資源來利用。
以RISC Zero為例來說明ZK協處理器的一種解決方案,RISC Zero開發了Bonsai ZK協處理器架構,其核心是RISC Zero的zkVM。開發者可以在 zkVM 上產生「某個 Rust 程式碼被正確執行」的 zkp。使用zkVM,實作一個ZK協處理器的具體流程是:
開發者向 Bonsai 的中繼合約發送請求,即在 zkVM 中執行開發者所需的程式。
中繼合約將請求傳送到鏈下請求池。
Bonsai 在鏈下 zkVM 中執行請求,進行大規模計算,然後產生收據。
這些證明也稱為“收據”,由 Bonsai 通過中繼合約發布回鏈上。

來源:RISC 零
在Bonsai中,經過驗證的程序稱為Guest Program,收據用於證明Guest程序已經正確執行。收據包括日記帳和印章。具體來說,日誌承載了zkVM應用程式的公共輸出,而印章則用於證明回執的有效性,即證明訪客程式已正確執行。印章本身是由證明者產生的 zkSTARK。驗證收據可確保日誌是使用正確的電路等建構的。
Bonsai 簡化了開發者將 Rust 程式碼編譯為 zkVM 字節碼、上傳程式、在 VM 中執行並接收證明回饋的過程,讓開發者更專注於邏輯設計。它不僅使部分合約邏輯,而且使整個合約邏輯能夠在鏈下運作。 RISC Zero 還利用延續性,將大型證明的生成分解為較小的部分,從而能夠在不消耗過多記憶體的情況下產生大型程式的證明。除了RISC Zero之外,還有其他項目,例如IronMill,=nil; Foundation 和 Marlin 提供了類似的通用解決方案。
2. ZK協處理器在DeFi中的應用
2.1 AMM - Bonsai 作為協處理器
zkUniswap 是一種利用鏈下運算資源的 AMM。其核心功能是使用 Bonsai 將部分交換計算卸載到鏈外。用戶在鏈上發起交換請求。 Bonsai的中繼合約取得請求,啟動鏈下計算,完成後將計算結果和證明傳回EVM的回呼函數。如果證明成功驗證,則執行交換。
然而,交換並不是一次性完成的。請求和執行過程在不同的事務中,帶來一定的風險。也就是說,在提交請求和完成交換之間,池的狀態可能會改變。由於驗證是基於請求提交時池的狀態,如果請求仍處於待處理狀態,且池的狀態發生變化,則驗證將無效。這是此類系統的設計和安全性的重要考慮因素。
為了解決這個問題,開發人員設計了池鎖。當使用者啟動請求時,除了結算交換之外的所有操作都會被暫時鎖定,直到鏈下計算成功觸發鏈上交換或交換逾時(預設時間限制)。有了時間限制,即使中繼或 zkp 出現問題,礦池也不會無限期鎖定。具體時間限制可能是幾分鐘。
zkUniswap 採用獨特的設計來捕獲 MEV,因為開發人員的目標是讓協議從 MEV 中受益。理論上,zkAMM 也有 MEV,因為第一個提交交換的人可以鎖定它並領先其他人,從而導致天然氣戰爭,而建造者仍然可以優先考慮交易排序。然而,zkUniswap 使用一種稱為可變利率漸進式荷蘭式拍賣(VRGDA)的方法將 MEV 利潤據為己有。這種方法允許 zkUniswap 提取協議的 MEV 值。
zkUniswap的概念相當有趣。它涉及在拍賣中降低鎖定資產的價格,如果鎖定資產很快就被出售,協議會識別出高需求並自動提高價格。如果鎖定資產的銷售放緩,協議就會降低價格。這種創新方法有可能成為新的收入來源。本質上,該協議引入了一種獨特的交易優先機制,定價競爭透過這種機制直接使專案受益。
2.2 AMM - zkOracle 作為協處理器
除了使用zkVM之外,也有人提出使用zkOracle來利用鏈外運算資源,值得注意的是zkOracle是一個I/O(輸入和輸出)預言機,可以處理輸入和輸出。一般來說,預言機有兩種類型,一種是輸入預言機,一種是輸出預言機。輸入預言機處理(計算)鏈下資料並將其放到鏈上,而輸出預言機處理(計算)鏈上資料並將其提供給鏈下。 I/O 預言機 (zkOracle) 首先進行輸出,然後進行輸入,從而允許鏈利用鏈外計算資源。
zkOracle一方面使用鏈上資料作為資料來源,另一方面利用ZK保證預言機節點運算的誠實性,進而實現協處理器的功能。因此,AMM 的核心運算可以放在 zkOracle 中,允許傳統的 AMM 功能,同時還可以使用 zkOracle 實現更複雜和運算密集的操作。

來源:github Fewwwww/zkAMM
2.3 借貸利率計算、保證金計算及其他應用
拋開實作方式不談,透過ZK協處理器的加入,可以實現很多功能。例如,貸款協議可以根據即時參數而不是預先定義的條件來調整利率。例如,當借貸需求強勁時,提高利率以吸引供給;當借貸需求減少時,降低利率。這就需要藉貸協議即時取得大量的鏈上數據,對數據進行預處理,並在鏈下計算參數(除非鏈上成本極低)。
複雜的計算,例如確定保證金餘額、未實現利潤/損失等,也可以使用協處理器來執行。使用協處理器的優點是它使這些應用程式更加透明和可驗證。保證金引擎的邏輯不再是一個秘密的黑盒子。儘管計算是在鏈下執行的,但使用者可以完全信任其執行的正確性。這種方法也適用於選擇權計算。
3. ZK協處理器的其他應用
3.1 皮夾-使用 Bonsai 作為協處理器
Bonfire Wallet 使用 zkVM 來卸載鏈下身份驗證的計算。該錢包的目標是允許用戶使用生物識別資訊(指紋)或加密硬體 yubikey 創建一次性錢包。具體來說,Bonfire Wallet採用了常見的Web認證標準WebAuthn,讓使用者無需密碼,直接使用裝置即可完成Web驗證。所以在Bonfire Wallet中,使用者用WebAuthn產生一個公鑰(不是鏈上的,而是用於WebAuthn的),然後用它來創建錢包。每個Burner錢包都有一個鏈上合約,其中包含WebAuthn的公鑰。合約需要驗證使用者的WebAuthn簽名。但這個計算量很大,所以用 Bonsai 將這個計算卸載到鏈下,透過 zkVM guest 程式在鏈下驗證簽名,並產生 zkp 進行鏈上驗證。

來源:營火錢包
3.2 鏈上資料檢索-使用者編寫的ZK電路
Axiom 是一個不使用 zkVM 但使用不同協處理器解決方案的應用程式。我們先介紹一下 Axiom 的目標是什麼。它利用 ZK 協處理器允許合約存取歷史鏈上資訊。實際上,使合約能夠讀取歷史數據非常具有挑戰性,因為智能合約通常會獲取即時的鏈上數據,而這可能非常昂貴。合約很難存取有價值的鏈上數據,例如歷史帳戶餘額或交易記錄。

來源:Axiom 演示
Axiom節點存取所需的鏈上資料並在鏈下執行指定的計算,然後為計算產生零知識證明,證明結果是基於有效的鏈上資料正確計算的。該證明在鏈上進行驗證,確保合約可以信任該結果。
為了產生用於鏈外計算的zkp,需要將程式編譯成ZK電路。之前我們也提到使用 zkVM 來實現這一點,但 Axiom 表示對此有許多解決方案,並且需要平衡效能、靈活性和開發體驗:
客製化電路:如果開發者為自己的程式自訂電路,性能肯定是最好的,但開發需要時間;
eDSL/DSL:開發人員仍然編寫自己的電路,但有一些可選框架可以幫助開發人員解決 zk 相關問題,從而平衡效能和開發體驗。
zkVM:開發者直接在現有虛擬機器上執行ZK,非常方便,但Axiom認為效率低。
因此,Axiom選擇了第二種方案,並為使用者提供了一套最佳化的ZK模組,讓他們可以設計自己的電路。
與 Axiom 類似的項目包括 Herodotus,其目標是成為跨鏈訊息傳遞的中間件。由於資訊處理是鏈下的,因此允許不同的鏈獲取處理後的資料是合理的。另一個專案 Space and Time 使用類似的架構來實作資料索引。
3.3 鏈上游戲、DAO治理等應用
除了上述之外,鏈上遊戲、DAO治理也可以使用ZK協處理器。 RISC Zero 認為,任何需要超過 250k Gas 的計算使用 ZK 協處理器都會更便宜,但其計算方式仍有待進一步研究。 DAO 治理也可以使用 ZK 協處理器,因為它涉及多人和多個合約,計算量非常大。 RISC Zero 聲稱使用 Bonsai 可以減少 50% 的 Gas 費。許多 ZKML 項目,例如 Modulus Labs 和 Giza,都使用與 ZK 協處理器相同的解決方案,但 ZK 協處理器的概念更廣泛。
值得一提的是,ZK協處理器領域還有一些輔助項目,例如ezkl,它提供了ZK電路的編譯器、部署ZK的工具包以及將鏈上計算卸載到鏈下的工具。
4. 未來展望
協處理器為鏈上應用提供類似「雲端」的外部運算資源,提供經濟高效且豐富的運算,而鏈上處理則專注於基礎運算。在實務中,zkVM也可以運行在雲端。從本質上講,ZK 協處理器是一種將鏈上運算移至鏈下的架構方法,具有無限的鏈下運算資源來源。
本質上,鏈下運算資源可以由傳統雲端供應商提供,甚至可以由去中心化運算資源共享、本地設備提供。這三個方向各有特色。傳統雲端供應商可以提供相對成熟的鏈下運算解決方案,未來去中心化運算資源的「穩健性」可能會更強,而本地運算也擁有很大的潛力。但目前,許多ZK協處理器專案處於閉源服務供應商階段,因為這些服務的生態系統尚未完全形成,不同專案之間的服務專業化尚未定義。未來兩種可能的情況是:
ZK協處理器的每個部分都有大量的專案相互競爭。
具有優秀服務體驗的單一項目可能會主導市場。
從開發人員的角度來看,當使用 ZK 協處理器時,他們可能只與單一「介面」專案互動。這與 Amazon Web Services 擁有大量市場份額的原因類似,因為開發人員往往習慣特定的部署方法。然而,這個鏈下運算資源「介面」專案背後整合了哪些運算服務商(傳統雲端公司、去中心化資源共享)的問題是另一個值得討論的議題。
Kernel Ventures 是一家研究和開發社群驅動的加密貨幣創投基金,擁有70 多項早期投資,專注於基礎設施、中間件、dApp,尤其是ZK、Rollup、DEX、模組化區塊鏈以及將吸引下一個十億加密用戶的垂直領域例如帳戶抽象、資料可用性、可擴展性等。
參考:
ZK 協處理器可擴充性指南:https://www.risczero.com/news/a-guide-to-zk-coprocessors-for-scalability
為以太坊定義 zkOracle:https://ethresear.ch/t/defining-zkoracle-for-ethereum/15131
zkUniswap:首創的 zkAMM:https://ethresear.ch/t/zkuniswap-a-first-of-its-kind-zkamm/16839
什麼是ZK協處理器?
協處理器簡介:https://crypto.mirror.xyz/BFqUfBNVZrqYau3Vz9WJ-BACw5FT3W30iUX3mPlKxtA
基於 Hyper Oracle 構建的最新應用程式(獎勵:您現在可以建立的東西):https://mirror.xyz/hyperoracleblog.eth/Tik3nBI9mw05Ql_aHKZqm4hNxfxaEQdDAKn7JKcx0xQ
營火錢包:https://ethglobal.com/showcase/bonfire-wallet-n1dzp