第2課

ZK 協處理器如何工作

深入探討,本模塊分解了 ZK 協處理器的架構,包括證明引擎、zkVM 和驗證合約。它還比較了 Circom、Noir、Risc Zero 和 SP1 等關鍵開發工具,使用 Axiom 和 Bonsai 等真實案例來解釋證明生成和無需信任的執行。

核心架構:證明引擎、驗證合約、zkVM

ZK 協處理器的設計目的是從區塊鏈中卸載計算,同時保持可驗證性。其核心架構由三個主要組件組成:證明引擎、驗證合約和虛擬機(zkVM 或電路運行時)。

證明引擎負責在鏈下執行計算並生成密碼學證明,證明計算被正確完成。該引擎接收輸入數據,通過已定義的邏輯或程序運行它,並輸出簡潔的零知識證明。證明者通常是一個重量級過程,需要計算資源如 CPU 或 GPU,具體取決於所使用的證明系統類型。

驗證合約部署在鏈上,設計上是輕量級的。它唯一的目的是驗證提交的證明的正確性。它持有驗證密鑰,該密鑰在數學上源自證明者使用的相同邏輯。當智能合約收到證明時,它會根據密鑰檢查,並確認結果是否有效。與在鏈上運行完整計算相比,這個過程快速且成本低。

zkVM 或算術電路定義了程序的邏輯。它作爲證明者的運行時環境。在某些系統中,這是用低級 DSL 編寫的自定義電路,而其他系統則使用可以解釋高級語言代碼的完整虛擬機。這些組件共同實現了無需信任的鏈下執行和簡潔的鏈上驗證。

Circom、Noir、Risc Zero、SP1:語言和虛擬機

幾種工具和框架已經出現,支持 ZK 協處理器的開發。Circom 是最早也是最廣泛使用的電路語言之一。它允許開發者使用聲明式語法定義算術電路。這些電路隨後被編譯成 Groth16 或 PLONK 等證明系統。Circom 以其靈活性而聞名,但學習曲線陡峭,需要手動電路設計。

Noir 是一種更新的語言,旨在使 ZK 開發更加易於使用。由 Aztec 開發的 Noir 是一種類似 Rust 的語言,抽象了約束系統的大部分復雜性。它自動編譯成零知識電路,使編寫具有可讀語法的私有程序變得更容易。

除了語言之外,zkVM 因其能夠在 ZK 友好環境中運行通用代碼而受到關注。Risc Zero 提供了最先進的 zkVM 實現之一。它模擬 RISC-V 指令集,允許開發者將用 Rust 或 C 編寫的任何程序作爲零知識證明運行。由 Succinct 開發的 SP1 採用類似的方法,但旨在優化性能和在證明系統之間的可移植性。

這些環境至關重要,因爲它們決定了 ZK 協處理器的表達能力、效率和可組合性。雖然低級電路對於性能關鍵的應用仍然有用,但 zkVM 正在實現更廣泛的開發者採用和更快的迭代。

示例流程:Axiom 或 Bonsai 如何執行 ZK 邏輯

爲了理解 ZK 協處理器在實踐中如何工作,考慮一個像 Axiom 或 Risc Zero 的 Bonsai 這樣的系統的執行流程。

在 Axiom 的模型中,開發者定義了一個關於以太坊歷史數據的查詢 — 例如,檢查用戶在過去的區塊中是否持有特定餘額。這個查詢被發送到 Axiom 的鏈下協處理器。協處理器獲取相關的鏈上數據,處理查詢,並使用 zkVM 執行邏輯。一旦計算完成,協處理器生成一個證明結果正確性的零知識證明。這個證明被提交到鏈上的驗證合約,該合約驗證它並允許智能合約完全信任地使用結果。

Risc Zero 的 Bonsai 遵循類似的結構,但泛化了這個過程。開發者用 Rust 等高級語言編寫他們的應用程序邏輯。這段代碼被編譯成 zkVM 鏡像,並使用 Bonsai 的基礎設施在鏈下執行。執行後,生成一個證明,可以通過鏈上驗證器發布回任何區塊鏈。

這種架構允許開發者構建強大、信任最小化的邏輯,而不會使區塊鏈超載。它還實現了可重用、可組合的證明,可以服務於多個合約或應用程序。

什麼使證明無需信任且可驗證

ZK 協處理器的強大之處在於它支持的信任模型。與中心化的預言機或鏈下計算提供者不同,ZK 協處理器不要求用戶信任執行計算的實體。相反,信任被轉移到數學上。

這種信任的核心來自於零知識證明的結構。這些證明的設計確保任何無效的計算,哪怕是單個不正確的位,都會導致驗證失敗。假設密碼學假設成立,驗證合約不可能被欺騙接受錯誤的結果。

此外,由於驗證者只需要公共輸入、證明和驗證密鑰,因此不依賴於證明者的身分或行爲。任何第三方都可以生成證明,只要它通過驗證,就會被接受。這意味着證明者可以是去中心化的、無需許可的,甚至可以被激勵,這是進一步在證明網路中探索的特性。

通過將密碼學保證與區塊鏈終局性相結合,ZK 協處理器實現了一個新的無需信任的執行層,不依賴於中心化服務、聲譽或多籤共識。

在 DeFi、跨鏈和 L2 生態系統中的角色

ZK 協處理器在需要信任最小化、成本效率或私密性的領域找到了實際的牽引力。在 DeFi 中,它們可以計算時間加權平均價格、一段時間內的資產持有量或自定義風險模型,而無需在鏈上存儲所有數據。這使得更智能的金融合約成爲可能,而不會增加 gas 成本或使區塊鏈膨脹。

在跨鏈應用中,ZK 協處理器可以作爲輕客戶端。應用程序不必爲每個鏈運行完整節點,而是可以驗證另一個鏈狀態的簡潔證明。這大大簡化了橋接和消息協議,提高了安全性和互操作性。

Layer 生態系統也在採用 ZK 協處理器作爲優化 rollup 邏輯的方式。rollup 可以將特定任務委托給外部 ZK 協處理器,如欺詐檢測、預言機驗證或用戶定義的邏輯,而不是在 rollup 電路內運行每個交互。這降低了證明成本,使 rollup 更加模塊化。

因此,ZK 協處理器正在成爲基礎設施的重要組成部分。它們擴展了區塊鏈的功能,而不會犧牲去中心化或性能。隨着工具和運行時的成熟,它們可能成爲任何先進去中心化應用程式開發堆棧的默認選項。

免責聲明
* 投資有風險,入市須謹慎。本課程不作為投資理財建議。
* 本課程由入駐Gate Learn的作者創作,觀點僅代表作者本人,絕不代表Gate Learn讚同其觀點或證實其描述。