撰寫:zkSync
編譯:深潮 TechFlow
TLDR
升級:zkSync Era 正在過渡到新的 Boojum 證明系統(tǒng),無需重新生成。
性能:Boojum 展示了一流的證明性能,補充了 zkSync Era 排序器,該排序器已經(jīng)可以處理超過 100 TPS。
去中心化:Boojum 證明者僅需要 16 GB RAM,可實現(xiàn)未來大規(guī)模證明者去中心化。
zkSync 的使命是推進(jìn)所有人的個人自由——通過構(gòu)建一個無需信任、安全、無需許可、價格合理、易于使用、彈性和可無限擴(kuò)展的區(qū)塊鏈網(wǎng)絡(luò),使數(shù)字自我所有權(quán)普遍可及。
為了履行這一使命,zkSync Era 的 Alpha 版本于三個多月前向公眾開放,反響非常驚人。網(wǎng)絡(luò)亮點:
鎖定總價值TVL 5.77 億美元(來源:L2Beat);
過去 30 天的 23,750,000 筆交易——是所有 L2 中最多的(來源:L2Beat);
9,735 個源代碼驗證的智能合約。
2023 年 3 月,基于 SNARK 的 zkSync Era 出世,利用了經(jīng)過實戰(zhàn)檢驗的電路框架,該框架已經(jīng)在主網(wǎng)上為 zkSync Lite 提供了近三年的支持。然而,我們知道這不會是 zkSync Era 證明系統(tǒng)的最終版本,因此設(shè)計了這個系統(tǒng),使我們能夠在不進(jìn)行重新生成的情況下對其進(jìn)行根本性的更改。這意味著我們可以在不干擾開發(fā)者和用戶的情況下部署重大的密碼學(xué)升級。
在幕后,我們已經(jīng)在進(jìn)行密碼學(xué)升級的工作很長時間了。今天,我們很高興地宣布第一個升級:zkSync Era 正在過渡到一種名為“Boojum”的新的 STARK 證明系統(tǒng)。
認(rèn)識 Boojum
Boojum 是我們基于 Rust 開發(fā)的算術(shù)和約束庫,我們使用它來實現(xiàn) zkSync Era 和 ZK Stack 的升級版本的 ZK 電路。
Boojum 是什么?
Boojum 的特性:
PLONK 算術(shù)化:在零知識協(xié)議的背景下,算術(shù)化是將一般計算轉(zhuǎn)化為數(shù)學(xué)形式的過程。與當(dāng)前的證明系統(tǒng)一樣,升級系統(tǒng)仍然采用 PLONK 風(fēng)格的算術(shù)化。采用這種方法,相對于一些替代形式,ZK 電路的編寫更簡單,使系統(tǒng)更易于開發(fā)、審計、維護(hù)和升級。
強大的承諾方案:Boojum 的核心在于 FRI 承諾方案,它是一個關(guān)鍵組件,使我們能夠承諾有界多項式,并隨后有效地證明所聲稱的(多項式的)opening 確實屬于低次多項式。
系統(tǒng)的效率:盡管當(dāng)人們談?wù)撟C明者性能時有時會忽略見證生成,但在當(dāng)前版本的證明系統(tǒng)中,我們已經(jīng)達(dá)到了優(yōu)化的 GPU 證明者非常高效的程度,以至于見證生成時間與證明生成時間相當(dāng)。通過 Boojum,我們提供了自動并行化(如果依賴圖允許)的見證生成,同時保持了定義見證生成函數(shù)的簡易性.
易于擴(kuò)展:基本約束系統(tǒng)抽象非常簡潔,但它允許用戶以各種方式添加自定義門類型,例如為它們添加一些專門的多項式,或者重用所謂的“通用列”。用戶在為其電路定義了簡單的幾何結(jié)構(gòu)之后,擴(kuò)展接口提供了自動生成證明者、驗證者和遞歸驗證者的能力。這樣可以實現(xiàn)非常高效的開發(fā)過程;如果用戶更改電路結(jié)構(gòu)并選擇不同類型的門來使用,他們只需再次調(diào)用接口,它將重新生成密鑰并確保他們使用正確的證明者和驗證者。
單一堆棧:通過 Boojum,上述所有內(nèi)容都可以僅使用標(biāo)準(zhǔn)、慣用的 Rust 表達(dá),利用其類型系統(tǒng)的表達(dá)能力。GPU 證明者的計算密集部分是用 CUDA C++編寫的,但我們提供了 Rust 綁定以進(jìn)行組合。
Boojum 默認(rèn)使用大小為 2^64 - 2^32 + 1 的素數(shù)字段(被稱為“Goldilocks field”),并提供相應(yīng)字段綁定原語的實現(xiàn),例如 Poseidon2 哈希函數(shù),以及基于查找表的更標(biāo)準(zhǔn)加密原語的實現(xiàn),例如 SHA256、Keccak256 和 Blake2s。
重要的是,在最后一步中,我們將使用非透明的基于配對的 SNARK 來包裝 STARK 證明,并在以太坊上驗證這個 SNARK。這個證明要小得多,驗證成本更低;這一步降低了證明系統(tǒng)的成本,從而降低了交易本身的成本。
為什么選擇 Boojum?
在設(shè)計 Boojum 時,決策背后有兩個關(guān)鍵因素:(1)世界一流的證明性能,以及(2)降低去中心化的硬件要求。
世界一流的性能
當(dāng)前基于 SNARK 的系統(tǒng),雖然對于當(dāng)前來說是有效的,但無法擴(kuò)展到 ZK Stack 中的高交易量、接近實時的交易。zkSync Era 作為 Hyperchain 運行的未來目標(biāo)是在未來幾年內(nèi)支持這些系統(tǒng)。我們對這些系統(tǒng)的設(shè)想是,證明可以便宜快速地生成和驗證,從而實現(xiàn)快速的最終性和 Hyperchain 之間的互操作性。
證明系統(tǒng)的性能直接影響用戶為其交易支付的費用,隨著時間的推移,這些成本需要趨近于零。當(dāng)前版本的證明系統(tǒng)足夠高效,可以構(gòu)建 zkEVM,并在短短幾個月內(nèi)處理數(shù)百萬筆交易,但是通過 Boojum,我們可以做得更好!
為了衡量網(wǎng)絡(luò)的證明生成時間(以及與性能相關(guān)的其他關(guān)鍵指標(biāo)),我們與 Celer 合作,Celer 團(tuán)隊在基準(zhǔn)測試和分析多個證明系統(tǒng)方面擁有豐富的經(jīng)驗。在下面的圖像中,您可以看到 Boojum 在大多數(shù)進(jìn)行性能分析的系統(tǒng)中表現(xiàn)出色。結(jié)果不言自明:我們的實施展示了世界一流的證明性能,據(jù)我們所知,這是目前在生產(chǎn)中使用的最快的證明系統(tǒng)。
為了進(jìn)行公平比較,Celer 在基于 CPU 的證明者上進(jìn)行了這些基準(zhǔn)測試,但我們的主網(wǎng)系統(tǒng)使用的是基于 GPU 的證明者,速度更快。
轉(zhuǎn)向基于 STARK 的證明系統(tǒng)代表了性能的顯著提升,并將有助于確保最終性和對 zkSync Era 和其他基于 ZK Stack 的系統(tǒng)的增加活動水平的支持的低延遲。
降低去中心化硬件的要求
當(dāng)人們認(rèn)為這不是我們優(yōu)化的唯一指標(biāo)時,這些性能結(jié)果尤其令人印象深刻——我們希望提高系統(tǒng)性能,同時降低運行它的硬件要求。
目前普遍使用的證明系統(tǒng),包括我們現(xiàn)有的系統(tǒng),在硬件方面要求較高。我們當(dāng)前的證明系統(tǒng)在一組 A100 GPU 上運行,每個 GPU 具有 80 GB 的 RAM。對昂貴且功能強大的機(jī)器的需求對我們的目標(biāo)構(gòu)成了重大障礙:用戶驅(qū)動的去中心化證明生成的未來。要實現(xiàn)這個目標(biāo),僅僅使證明生成無需許可是不夠的;用戶還不應(yīng)該需要一臺帶有數(shù)百 GB RAM 的昂貴機(jī)器來參與其中。
這是我們?nèi)〉脴O其引人注目的進(jìn)展的另一個領(lǐng)域!我們用于 Boojum 的 GPU 證明器僅需要 16 GB 的 RAM,這種低門檻是我們設(shè)想的未來的重要一步?;?CPU 的證明也可以使用低至 64 GB 的 RAM,我們希望將其降低到 32 GB,并充分利用現(xiàn)代多核處理器。
最后,zkSync Era 基于 Rust 的序列器已經(jīng)可以每秒處理 100 多個交易(TPS)。新的證明系統(tǒng)的引入不僅提高了性能,還降低了硬件要求,使其成為序列器的理想補充。Boojum 帶來的性能提升意味著系統(tǒng)可以更快地證明交易,而降低的硬件要求則改善了網(wǎng)絡(luò)對更便宜的機(jī)器的訪問,以實現(xiàn)更高的橫向擴(kuò)展性。
Boojum 的主網(wǎng)之旅
團(tuán)隊已經(jīng)花費數(shù)月時間開發(fā)這個升級,我們很高興現(xiàn)在已經(jīng)到了在主網(wǎng)上測試系統(tǒng)的階段。我們也想分享一下迄今為止的一些故事。
升級 zkSync Era
首先,zkSync Era 的設(shè)計使我們能夠隨著時間的推移升級每個組件,證明系統(tǒng)也不例外。
與以太坊類似,我們使用 Merkle 樹數(shù)據(jù)結(jié)構(gòu)來存儲有關(guān)網(wǎng)絡(luò)狀態(tài)的信息。鑒于我們正在證明有關(guān)系統(tǒng)狀態(tài)的陳述,這些信息是證明系統(tǒng)所必需的。為了這個 Merkle 樹(以及證明系統(tǒng)與之交互的方式),一個關(guān)鍵的設(shè)計決策是使用非代數(shù)哈希函數(shù),具體來說是 Blake2s。如果我們僅僅優(yōu)化證明生成的便利性,我們就會使用代數(shù)哈希函數(shù)(例如 Poseidon2),但這種選擇會將可觀察狀態(tài)與證明系統(tǒng)參數(shù)耦合起來 ——例如素數(shù)字段的選擇。然后,對證明系統(tǒng)的任何升級都需要完全重新生成狀態(tài)。
從設(shè)計到審查的 Boojum 之旅
大約一個月前,我們開始逐漸形成了我們新的證明系統(tǒng)實現(xiàn)的完整端到端版本。考慮到這個變化的復(fù)雜性以及系統(tǒng)正確性的關(guān)鍵性,我們開始進(jìn)行一系列的內(nèi)部和外部審計。
當(dāng)時,zkEVM 電路和 Boojum 算術(shù)化庫仍在積極開發(fā)中,但我們與外部安全審計員合作,重點關(guān)注我們的主要電路和 Boojum 組件的健全性潛在問題的早期識別。我們密切合作,向他們提供完整的源代碼和文檔訪問權(quán)限,他們對 zkEVM 電路和 Boojum 小工具進(jìn)行了審查和測試,使用了自動化和手動測試的方法。
Boojum: 從審查到測試
這將帶我們來到今天,我們分階段推出的下一步:主網(wǎng)影子模式!我們很高興地宣布,我們現(xiàn)在正在與現(xiàn)有的證明系統(tǒng)并行運行新的證明系統(tǒng),盡管 Boojum 目前僅處于測試階段。我們已經(jīng)開始為主網(wǎng)區(qū)塊生成和驗證“影子證明”。
這些影子證明對于 zkSync Era 的主網(wǎng)版本并非必需 ——這仍將由現(xiàn)有的證明系統(tǒng)驅(qū)動。我們只是驗證這些影子證明以進(jìn)一步測試和優(yōu)化系統(tǒng),但使用的是 zkSync Era 用戶活動的真實生產(chǎn)數(shù)據(jù)。
Boojum: 從測試到主網(wǎng)
與我們所做的一切一樣,安全始終是首要考慮的因素。只有當(dāng)我們對新系統(tǒng)的測試完全滿意時,我們才會考慮遷移,并在未來的幾周和幾個月內(nèi)分享更多細(xì)節(jié)。我們還計劃進(jìn)行進(jìn)一步的審計和安全評估,以使這個令人興奮的升級更加接近全面部署,并逐漸淘汰當(dāng)前的證明系統(tǒng)。
我們相信,Boojum 是 zkEVM 更安全、可擴(kuò)展和高效的下一階段。
免責(zé)聲明:本文不構(gòu)成投資建議,用戶應(yīng)考慮本文中的任何意見、觀點或結(jié)論是否符合其特定狀況,及遵守所在國家和地區(qū)的相關(guān)法律法規(guī)。
歡迎轉(zhuǎn)載分享!
轉(zhuǎn)載請注明本文地址:
如有文章侵犯了您的權(quán)利,請聯(lián)系本站站長,我們將在第一時間刪除相關(guān)內(nèi)容,謝謝!