一文讀懂a16z推出的Jolt zkEVM

2024-04-10 13:16 金色財經


免責聲明: 內容不構成买賣依據,投資有風險,入市需謹慎!

一文讀懂a16z推出的Jolt zkEVM

金色財經 企業專欄 剛剛 關注

作者:Michael Zhu(a16z Crypto研究工程師),Sam Ragsdale(a16z Crypto投資工程師);翻譯:金色財經xiaozou

2024年4月9日,a16z 加密研究和工程團隊發布了Jolt的初步實現,這是一種新的 SNARK 設計方法,速度比現有技術快 2 倍,並且還會有更多改進。

可驗證計算(俗稱ZK)是一項非常強大的技術,既適用於區塊鏈也適用於非區塊鏈。它使一台計算機(verifier驗證者)能夠將計算委托給另一台更強大的計算機(prover證明者),並由其有效地驗證計算是否被正確執行。

在加密行業,可驗證計算的應用(尤其是SNARKs)包括:

Layer 2(L2)區塊鏈使用SNARKs來保證其狀態轉換的完整性。

  • 跨鏈橋使用SNARKs來證明一條鏈到另一條鏈上的存款/取款轉移。

  • 一個“ZK協處理器”(由Axiom定義)使用SNARKs來證明一些鏈上數據的鏈下計算,如若這些鏈上數據在智能合約中進行原生計算成本則太過高昂。

還有許多幾乎未被探索的有趣的非區塊鏈用例。例如,雲服務提供商可以向其客戶端證明他們正確地運行了委托給其服務器的某些計算。像npm或crates.io這樣的軟件注冊表可以證明二進制文件是從特定的源代碼編譯的,從而降低了軟件供應鏈攻擊的風險。或者一個人可以證明他們的《超級馬裏奧兄弟》的工具輔助競速(TAS)打破了世界紀錄(RISC Zero也描寫過這個想法)。

這些應用程序中有很多涉及到的程序過於復雜,無法轉換成電路DSL(特定域語言)——想象一下,例如,使用Circom語言重寫整個編譯器或NES模擬器。但是,如果程序編譯成由zkVM支持的指令集,則不需要手寫電路或DSL轉換:程序員只需要用他們選擇的高級編程語言編寫程序,由zkVM處理其余的工作。

那么,剩下的挑战就是zkVM prover的性能:它需要足夠快才有用。這對於區塊鏈用例尤其重要,因爲prover時間會影響延遲,從而影響用戶體驗。

可驗證計算長期以來一直被吹捧爲有望是區塊鏈擴容的終極解決方案,但該技術在採用方面面臨三大障礙:

  • 性能:與原生執行相比,證明程序的執行會引入高幾個數量級的开銷。

  • 復雜性:SNARKs的復雜性引發了人們對其實現安全的擔憂,因爲將肩負着數十億美元鏈上資產的安全保障。

  • 可用性:像Circom這樣的特定域語言(DSLs)所要求的專業知識是大多數軟件开發人員無法獲得的。

零知識虛擬機(zkVMs)的發展克服了第三個障礙(可用性),因爲zkVMs允許开發人員使用Rust或Go等高級編程語言編寫程序,而不需要任何底層SNARK的知識來證明其執行。但是zkVMs可用性的提高也導致了高昂的性能开銷(8到9個數量級)和復雜的部署。

去年,一篇Jolt文章爲zkVMs引入了一個新範式,承諾克服性能开銷和部署復雜性這兩大挑战。與基於STARK的既有想法相比,Jolt的理論背景有所不同。通過利用Lasso查詢參數和其他基於sumcheck的技術,Jolt可以比以往更快地證明程序,並且比以往更容易部署新的VM指令。

如今,我們很高興爲RV32I指令集發布一個Jolt开源部署,實現了那篇Jolt文章裏所做的承諾。

  • 快速:我們的部署比RISC Zero快5倍以上,比剛剛發布的SP1在初步基准測試中快2倍。

  • (相對)簡潔:整個代碼庫不到25,000行Rust(不到其他zkVMs的一半),單個CPU指令只需50行代碼即可實現。

下面,我們一起來看性能基准,可以看出Jolt是最先進的新興zkVM。我們還爲有興趣开發使用Jolt的應用程序的开發者提供了一些指導,同時也爲有興趣爲Jolt做出貢獻的开發者提供了一個路线圖預覽——我們預計在未來幾個月裏,Jolt會變得更快、更易使用。

a16z加密工程團隊是建立在對开源價值的堅定信念之上的。將Jolt打造爲一個开源的公共產品將加速zkVM研究、更廣泛的SNARK研究以及整個web3行業的發展。在封閉源代碼的孤島中構建加密技術(代碼無法由公衆審查),通常會給本不可信的系統帶去信任。

1、性能

一直以來,與原生執行相比,zkVMs會帶來大約8個數量級的开銷,這使得許多可驗證計算的應用程序無法實現。當前版本的Jolt將這一开銷降低到了6個數量級以下。

雖然我們已經具備了最先進的性能,但Jolt的底層技術(基於sumcheck協議)並沒有像更流行的技術(基於FRI)那樣受到工程師的關注。這表明Jolt還有更多的發展空間——我們已經在路线圖上設定了一些優化,我們預計還會有未發現的機會。

我們的a16z/zkvm基准測試在各種不同Rust程序上對Jolt、SP1和RISC Zero進行了基准點測定。結果是在許多同類RV32程序中,相對性能是相似的。下圖將參考一個執行Sha2哈希鏈的程序。

這些基准測試的結果如下所示。基准測試是在AWS r7g. 16xlarge ARM機上運行的,具有64 CPU內核和512 GiB DDR5 RAM。所有基准測試都僅針對CPU。

使用continuations的連續系統面臨着prover時間和證明大小之間的利弊權衡——當證明被分割成更多“shard分片”(或“段”)時,prover變得更快(由於分片之間的並行化),但在遞歸之前具有證明體積更大。證明大小基准測試如下所示,其中SP1的結果由分片計數參數化:SP1(shard_count)。RISC Zero有一個固定大小的分片,因此它的分片計數隨着程序周期計數隱式增長。RISC Zero支持遞歸(SP1和Jolt尚未支持),但下面的基准測試是在沒有遞歸的情況下進行的性能檢測。我們也不使用“預編譯”,因此基准測試反映了核心zkVM證明系統的性能。

2、如何在Jolt上开發建設

爲了使Jolt盡可能易用,Jolt SDK(由a16z crypto工程合作夥伴Noah Citron構建)提供了圍繞Jolt核心功能的簡式wrappers。你所要做的就是:向要證明的函數添加jolt_sdk::provable屬性。

然後,你將能夠使用build_*函數來創建一個prover和verifier。

請在代碼庫中查看完整的Fibonacci示例(及其他)。

爲了更深入地了解Jolt架構,Jolt Book(WIP)是一個關於沒有在Jolt文章中記錄的設計選擇和代碼庫的實時更新文檔。在接下來的幾周內,我們將面向有興趣在Jolt上進行开發建設或想要了解Jolt內部機制的开發者發布更多內容。

3、接下來是什么

雖然Jolt是zkVM領域的一個重要裏程碑,但我們還有很長的路要走。退一步說,我們的性能基准測試表明,Jolt prover(在M3 Max上)證明了一個程序的速度與100kHz處理器一樣快——是阿波羅11號載人飛行登月任務機載計算能力的兩倍多。再做一個謙虛的比較,和TI-84圖形計算器相比慢150倍。

爲了達到計算機級別的性能,我們有很多工作要做。我們將繼續改進Jolt的性能和可用性,以便爲开發者提供最好的开發體驗。路线圖上的以下主要任務讓我們倍感興奮:

  • BiniusBen Diamond和Jim Posen最近提出了一個多线性多項式承諾方案,該方案對像Jolt這樣的系統尤其有用,因爲承諾值很小。Binius與Justin Thaler的小域sumcheck算法相結合,將顯著提高Jolt的prover性能(我們預計是5-10倍)。

  • 更多指令:Jolt代碼庫目前部署了RV32I,但Jolt結構非常靈活。我們計劃添加RISC-V “M” extension提供對整數乘法和除法的支持,如Jolt一文中所述。此外,Jolt可以輕松支持64位變體RV64IM。

  • Continuations連續系統:目前,由於內存限制,Jolt無法證明任意長度的計算。我們將使用continuations將長計算分成更小的計算塊,每個塊都可以由Jolt證明。這將減少內存使用,並在證明單個計算時支持額外的並行性。

  • 證明遞歸:通過將Jolt與另一證明系統組合在一起,我們進一步減少了證明大小和驗證時間。例如,Jolt驗證器可以使用Circom語言實現,以生成可在鏈上有效驗證的恆定大小的Groth16證明。

4 好文章,需要你的鼓勵
了解更多區塊鏈一线報道,與作者、讀者更深入探討、交流,歡迎添加小助手QQ: 3150128700, 進入[金色財經讀者交流群]。
聲明:本文系金色財經原創稿件,版權屬金色財經所有,未經授權不得轉載,已經協議授權的媒體下載使用時須注明"稿件來源:金色財經",違者將依法追究責任。
本文作者: 金色財經
打开金色財經App 閱讀全文 打开金色財經,閱讀體驗更佳 金色財經 > 金色財經 > 一文讀懂a16z推出的Jolt zkEVM 免責聲明: 金色財經作爲开放的資訊分享平台,所提供的所有資訊僅代表作者個人觀點,與金色財經平台立場無關,且不構成任何投資理財建議。

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播信息之目的,不構成任何投資建議,如有侵權行為,請第一時間聯絡我們修改或刪除,多謝。

標題:一文讀懂a16z推出的Jolt zkEVM

地址:https://www.sgitmedia.com/article/27863.html

相關閱讀: