我們相信,Boojum 是 zkEVM 更安全、可擴充套件和高效的下一階段。本文源自 zkSync 於 Mirror.xyz 所著文章《Boojum Upgrade: zkSync Era’s New High-performance Proof System for Radical Decentralization》,由深潮 Techflow 編譯、整理。
(前情提要:ZK Rollup的兩個安全性難題:不變性和可升級性 )
(背景補充:Layer2模組化戰爭:OP Stack vs. ZK Stack,誰能贏? )
TLDR
- 升級:zkSync Era 正在過渡到新的 Boojum 證明系統,無需重新生成。
- 效能:Boojum 展示了一流的證明效能,補充了 zkSync Era 排序器,該排序器已經可以處理超過 100 TPS。
- 去中心化:Boojum 證明者僅需要 16 GB RAM,可實現未來大規模證明者去中心化。
zkSync 的使命是推進所有人的個人自由 —— 通過構建一個無需信任、安全、無需許可、價格合理、易於使用、彈性和可無限擴充套件的區塊鏈網路,使數位自我所有權普遍可及。
為了履行這一使命,zkSync Era 的 Alpha 版本於三個多月前向公眾開放,反響非常驚人。網路亮點:
- 鎖定總價值 TVL 5.77 億美元(來源:L2Beat);
- 過去 30 天的 23, 750, 000 筆交易 —— 是所有 L2 中最多的(來源:L2Beat);
- 9, 735 個原始碼驗證的智慧合約。
2023 年 3 月,基於 SNARK 的 zkSync Era 出世,利用了經過實戰檢驗的電路框架,該框架已經在主網上為 zkSync Lite 提供了近三年的支援。然而,我們知道這不會是 zkSync Era 證明系統的最終版本,因此設計了這個系統,使我們能夠在不進行重新生成的情況下對其進行根本性的更改。這意味著我們可以在不干擾開發者和使用者的情況下部署重大的密碼學升級。
在幕後,我們已經在進行密碼學升級的工作很長時間了。今天,我們很高興地宣佈第一個升級:zkSync Era 正在過渡到一種名為 「Boojum」 的新的 STARK 證明系統。
認識 Boojum
Boojum 是我們基於 Rust 開發的算術和約束庫,我們使用它來實現 zkSync Era 和 ZK Stack 的升級版本的 ZK 電路。
Boojum 是什麼?
Boojum 的特性:
- PLONK 算術化:在零知識協議的背景下,算術化是將一般計算轉化為數學形式的過程。與當前的證明系統一樣,升級系統仍然採用 PLONK 風格的算術化。採用這種方法,相對於一些替代形式,ZK 電路的編寫更簡單,使系統更易於開發、審計、維護和升級。
- 強大的承諾方案:Boojum 的核心在於 FRI 承諾方案,它是一個關鍵元件,使我們能夠承諾有界多項式,並隨後有效地證明所聲稱的(多項式的)opening 確實屬於低次多項式。
- 系統的效率:儘管當人們談論證明者效能時有時會忽略見證生成,但在當前版本的證明系統中,我們已經達到了優化的 GPU 證明者非常高效的程度,以至於見證生成時間與證明生成時間相當。通過 Boojum,我們提供了自動並行化(如果依賴圖允許)的見證生成,同時保持了定義見證生成函式的簡易性.
- 易於擴充套件:基本約束系統抽象非常簡潔,但它允許使用者以各種方式新增自定義門型別,例如為它們新增一些專門的多項式,或者重用所謂的 「通用列」。使用者在為其電路定義了簡單的幾何結構之後,擴充套件介面提供了自動生成證明者、驗證者和遞迴驗證者的能力。這樣可以實現非常高效的開發過程;如果使用者更改電路結構並選擇不同型別的門來使用,他們只需再次呼叫介面,它將重新生成金鑰並確保他們使用正確的證明者和驗證者。
- 單一堆疊:通過 Boojum,上述所有內容都可以僅使用標準、慣用的 Rust 表達,利用其型別系統的表達能力。GPU 證明者的計算密集部分是用 CUDA C++ 編寫的,但我們提供了 Rust 繫結以進行組合。
Boojum 預設使用大小為「 2 ^ 64 – 2 ^ 32 + 1」 的質數字段(被稱為 「Goldilocks field」),並提供相應欄位繫結原語的實現,例如 Poseidon 2 hash 函式,以及基於查詢表的更標準加密原語的實現,例如 SHA 256、Keccak 256 和 Blake 2s。
重要的是,在最後一步中,我們將使用非透明的基於配對的 SNARK 來包裝 STARK 證明,並在以太坊上驗證這個 SNARK。這個證明要小得多,驗證成本更低;這一步降低了證明系統的成本,從而降低了交易本身的成本。
為什麼選擇 Boojum?
在設計 Boojum 時,決策背後有兩個關鍵因素:(1)世界一流的證明效能,以及(2)降低去中心化的硬體要求。
世界一流的效能
當前基於 SNARK 的系統,雖然對於當前來說是有效的,但無法擴充套件到 ZK Stack 中的高交易量、接近即時的交易。zkSync Era 作為 Hyperchain 執行的未來目標是在未來幾年內支援這些系統。我們對這些系統的設想是,證明可以便宜快速地生成和驗證,從而實現快速的最終性和 Hyperchain 之間的互操作性。
證明系統的效能直接影響使用者為其交易支付的費用,隨著時間的推移,這些成本需要趨近於零。當前版本的證明系統足夠高效,可以構建 zkEVM,並在短短幾個月內處理數百萬筆交易,但是通過 Boojum,我們可以做得更好!
為了衡量網路的證明生成時間(以及與效能相關的其他關鍵指標),我們與 Celer 合作,Celer 團隊在基準測試和分析多個證明系統方面擁有豐富的經驗。在下面的圖像中,您可以看到 Boojum 在大多數進行效能分析的系統中表現出色。結果不言自明:我們的實施展示了世界一流的證明效能,據我們所知,這是目前在生產中使用的最快的證明系統。
為了進行公平比較,Celer 在基於 CPU 的證明者上進行了這些基準測試,但我們的主網系統使用的是基於 GPU 的證明者,速度更快。
轉向基於 STARK 的證明系統代表了效能的顯著提升,並將有助於確保最終性和對 zkSync Era 和其他基於 ZK Stack 的系統的增加活動水平的支援的低延遲。
降低去中心化硬體的要求
當人們認為這不是我們優化的唯一指標時,這些效能結果尤其令人印象深刻 —— 我們希望提高系統性能,同時降低執行它的硬體要求。
目前普遍使用的證明系統,包括我們現有的系統,在硬體方面要求較高。我們當前的證明系統在一組 A100 GPU 上執行,每個 GPU 具有 80 GB 的 RAM。對昂貴且功能強大的機器的需求對我們的目標構成了重大障礙:使用者驅動的去中心化證明生成的未來。要實現這個目標,僅僅使證明生成無需許可是不夠的;使用者還不應該需要一臺帶有數百 GB RAM 的昂貴機器來參與其中。
這是我們取得極其引人注目的進展的另一個領域!我們用於 Boojum 的 GPU 證明器僅需要 16 GB 的 RAM,這種低門檻是我們設想的未來的重要一步。基於 CPU 的證明也可以使用低至 64 GB 的 RAM,我們希望將其降低到 32 GB,並充分利用現代多核處理器。
最後,zkSync Era 基於 Rust 的序列器已經可以每秒處理 100 多個交易(TPS)。新的證明系統的引入不僅提高了效能,還降低了硬體要求,使其成為序列器的理想補充。Boojum 帶來的效能提升意味著系統可以更快地證明交易,而降低的硬體要求則改善了網路對更便宜的機器的訪問,以實現更高的橫向擴充套件性。
Boojum 的主網之旅
團隊已經花費數月時間開發這個升級,我們很高興現在已經到了在主網上測試系統的階段。我們也想分享一下迄今為止的一些故事。
升級 zkSync Era
首先,zkSync Era 的設計使我們能夠隨著時間的推移升級每個元件,證明系統也不例外。
與以太坊類似,我們使用 Merkle 樹資料結構來儲存有關網路狀態的資訊。鑑於我們正在證明有關系統狀態的陳述,這些資訊是證明系統所必需的。為了這個 Merkle 樹(以及證明系統與之互動的方式),一個關鍵的設計決策是使用非代數 hash 函式,具體來說是 Blake 2s。如果我們僅僅優化證明生成的便利性,我們就會使用代數 hash函式(例如 Poseidon 2),但這種選擇會將可觀察狀態與證明系統引數耦合起來 —— 例如質數位段的選擇。然後,對證明系統的任何升級都需要完全重新生成狀態。
從設計到審查的 Boojum 之旅
大約一個月前,我們開始逐漸形成了我們新的證明系統實現的完整端到端版本。考慮到這個變化的複雜性以及系統正確性的關鍵性,我們開始進行一系列的內部和外部審計。
當時,zkEVM 電路和 Boojum 算術化庫仍在積極開發中,但我們與外部安全審計員合作,重點關注我們的主要電路和 Boojum 元件的健全性潛在問題的早期識別。我們密切合作,向他們提供完整的原始碼和文件訪問許可權,他們對 zkEVM 電路和 Boojum 小工具進行了審查和測試,使用了自動化和手動測試的方法。
Boojum: 從審查到測試
這將帶我們來到今天,我們分階段推出的下一步:主網影子模式!我們很高興地宣佈,我們現在正在與現有的證明系統並行執行新的證明系統,儘管 Boojum 目前僅處於測試階段。我們已經開始為主網區塊生成和驗證 「影子證明」。
這些影子證明對於 zkSync Era 的主網版本並非必需 —— 這仍將由現有的證明系統驅動。我們只是驗證這些影子證明以進一步測試和優化系統,但使用的是 zkSync Era 使用者活動的真實生產資料。
Boojum: 從測試到主網
與我們所做的一切一樣,安全始終是首要考慮的因素。只有當我們對新系統的測試完全滿意時,我們才會考慮遷移,並在未來的幾周和幾個月內分享更多細節。我們還計劃進行進一步的審計和安全評估,以使這個令人興奮的升級更加接近全面部署,並逐漸淘汰當前的證明系統。
我們相信,Boojum 是 zkEVM 更安全、可擴充套件和高效的下一階段。