原文作者:Frank,PANews
4 月10 日,a16z Crypto 發布了名為Jolt 的zkEVM 解決方案,旨在加速和簡化區塊鏈擴展操作。 Jolt 整合了SNARK 零知識證明,為EVM 相容Rollups 提供了框架,可以幫助開發人員創建基於SNARK 的L2解決方案。團隊表示,與目前的zkVM 相比,Jolt 的速度「快了兩倍」。
由於Jolt 的技術原理較為複雜,以下是關於可能涉及的幾個技術名詞關係的簡單解釋:
zkSNARK 是一種強大的零知識證明原語,是建立zkVM 和zkEVM 的基礎
zkVM 是一個通用的零知識虛擬機器概念,支援任意指令集
zkEVM 是zkVM 的一個特例,專門用於相容EVM
ZK Rollup 採用zkVM 或zkEVM 來提升以太坊的可擴充性,同時兼顧隱私性
Jolt 是什麼?
Jolt 是一種新型的SNARK 的解決方案,提供了一種更簡潔,高效的方案來建構zkVM(零知識虛擬機)。實際上,早在2023 年8 月,a16z crypto 就已經提出了名為Lasso 和Jolt 相關概念。在SNARK 技術存在又慢又高昂的成本的背景下,這兩項技術被提出。
其中Lasso,是一種新的查找參數,可以顯著降低證明者成本;Jolt,使用Lasso 提供了一個新的框架,用於為所謂的zkVM 和更廣泛的前端設計SNARK。它們共同提高了SNARK 設計的效能、開發人員體驗和可審核性,進而提高了web3 中的建置。從而提升零知識證明在區塊鏈領域的使用。
在理解Jolt 之前,或許需要先了解zkVM 和zkEVM。
zkVM 是一個通用的概念,指零知識虛擬機器。與zkEVM 類似,zkVM 允許用高級語言如C++或Rust 編寫程序,然後虛擬機把程序編譯成某種中間表示(如電路或算術約束),再用zkSNARK 等證明系統對中間表示的執行過程進行證明。相較於zkEVM,zkVM 不限於相容EVM,而是支援任意指令集。 Jolt 就是一個針對RISC-V 指令集的高效能zkVM 實作。
我們可以將zkVM 看作一個特殊的“黑盒子”,它可以在保護隱私的前提下,向外界證明自己確實按照預定的程序執行了計算。但傳統的zkVM 在產生這個證明的過程中需要進行大量繁瑣的計算,導致效能非常低。
Jolt 的核心創新是找到了更有效率的數學方法,來產生這個證明:
首先,Jolt 巧妙地將待證明的計算轉化為一種特殊的多項式,我們姑且稱之為「計算多項式」。這個多項式的特點是,只有當黑盒子確實正確執行了計算,它的值才會等於零。
為了證明「計算多項式」的值等於零,Jolt 使用了一種稱為「sumcheck」的互動式協定。這個協議可以在較短的時間內,讓驗證者確信多項式值為零,而不需要實際計算整個多項式。這有點類似老師只檢查學生的幾題,就能判斷整份考卷是否正確。
Jolt 的技術優勢
關於Jolt 的技術原理非常複雜,簡單來說。在區塊鍊網絡的發展過程中,zkVM 是一種在提升區塊鍊網絡拓展性的關鍵技術,能夠在保障隱私的情況下提供有效的證明。 Vitalik 在最近的香港Web3嘉年華的主題演講中,就圍繞著zkSNARK 技術進行了詳細的論述。 Vitalik 表示:“尋找ZKSNARKS 在隱私方面非常有用,在可擴展性方面也非常有用。”
但證明產生的速度和計算開銷一直是zkSNARK 技術實用化的一大挑戰,也是近年來學術界和業界重點攻關的方向。傳統的zkSNARK 方案,如Pinocchio 和Groth 16 ,在證明較為複雜的計算邏輯時,證明生成的時間可能會長達幾個小時甚至幾天,而且需要消耗大量的內存和存儲資源。這種效能瓶頸嚴重限制了zkSNARK 在許多實際場景下的應用。
而如果要讓區塊鏈實現大規模應用,達到即時驗證的效果。提升zkSNARK 的效能是非常關鍵的一步。
具體來說,zkSNARK 的證明產生過程涉及複雜的密碼學算法,如橢圓曲線配對、多項式插值等,這些操作對計算資源的消耗非常大。尤其是當被證明的計算電路規模較大時,證明產生的計算複雜度會呈指數級上升。
根據a16z Crypto 表示,在CPU 上,初始Jolt 實現大約比RISC Zero 快6 倍,比最近發布的SP 1 快2 倍,並且未來幾週內將Jolt 的速度提高約1.5 倍。
Jolt 目前的速度已經比現有的zkVM 快2 倍以上,但仍有很大的優化空間。
Jolt 也巧妙地運用多項式的某些代數性質,實現了更有效率的多項式承諾方案。這進一步減少了證明的大小和驗證的時間。
Jolt 可能帶來的變化
從工程角度來說,Jolt 採用了一系列優化手段,例如更緊湊的電路設計、更高效的管線、更充分的平行化等等,最大限度地挖掘硬件的算力。
假設你是Web3開發者,想要在以太坊上部署一款鏈上撲克遊戲。這個遊戲需要在鏈上洗牌、發牌、比較牌面大小等,每個操作都需要透過zkVM 電路來實現隱私保護和可驗證性。
如果你使用現有的zkVM 方案如ZoKrates 或bellman,建構這樣一個電路可能需要幾個小時甚至幾天的時間。因為目前的zkVM 效能仍較為低下,產生複雜電路的零知識證明需要大量的運算資源和時間開銷。這意味著開發和測試週期會非常漫長。
而如果你使用Jolt 來建構同樣的電路,情況會發生顯著變化。根據Jolt 團隊的測試,目前的Jolt 實現產生證明的速度已經比主流的zkVM 方案快2-5 倍。這意味著,如果原來產生證明需要10 小時,現在可能只需要2-5 小時。
總的來說,Jolt 所帶來的2-5 倍效能提升,這意味著zkVM 技術的可用性和易用性得到了大幅改善。這將顯著降低Web3開發者的門檻,縮短應用程式的開發週期,同時為終端用戶帶來更好的使用體驗。從更長遠來看,Jolt 預計將加速zkVM 技術的大規模應用,讓更多的隱私保護和可驗證運算能力惠及每一個Web3用戶。
當然,Jolt 目前還處於發展的早期階段, 2-5 倍的效能提升只是一個開始。隨著Jolt 技術的不斷迭代優化,zkVM 的效能將會進一步的突破,最終為實現Web3的大規模應用鋪平道路。