共識至上:重新思考 ZK 時代的基礎層

作者:krane, lamby (Asula), sylve, lancelot (Hyle) 來源:bedlam research 翻譯:善歐巴,金色財經

介紹

在過去一週,我們看到了多項關於以太坊共識層路線圖的提案。最值得注意的是,Justin Drake在 Devcon 2024 的演講中闡述了他對以太坊 ZK 時代的願景。它被稱為beam 鏈或beam 分叉,為以太坊批量實現了許多重大升級,包括縮短 slot 時間、加快最終確定性和以太坊共識的“snarkification”。人們對該提案的雄心和這些變化的時間表反應不一。然而,考慮到以太坊的經濟規模,我們也應該承認,謹慎對待以太坊有多麼重要。儘管承認這一點,但考慮一下以 rollup 為中心的生態系統的基礎層的最大雄心勃勃的未來是什麼樣的還是很有用的。本著“不為過去的所累,只為未來”的精神,本文介紹了一種利用 ZK 和共識研究進展的未來。

我們將首先從基本原理的角度研究基礎層,然後探索共識研究中的核心概念。最後,我們將深入探討如何將這項研究應用於新一代基礎層設計,尤其是在 ZK 機制下。

基礎層

如今,大多數 Rollup 都採用中心化排序器來對交易進行排序和執行。排序器生成區塊後,還負責生成執行證明以供其他人驗證。為了使執行可驗證,第三方需要 Rollup 的狀態數據以及執行證明。狀態數據和證明通常發佈到數據可用性 (DA) 層,狀態轉換由**驗證層(通常被誤稱為結算層)驗證。

早期,以太坊制定了以 rollup 為中心的路線圖,併成為最初的基礎層,同時執行 DA 和驗證。以太坊的獨特狀態(即在以太坊上發行的大量有價值資產)使其成為 rollup 的天然驗證或結算層。通過使用以太坊作為基礎,rollup 不僅可以繼承其安全性,還可以繼承其流動性。無論如何,當時市場上沒有專門的結算或 DA 選項。

即使在當今擁有許多專門層的世界裡,擁有最大 PoS 驗證器集和blob 支持的以太坊作為 DA 層也是一個非常安全的選擇。此外,以太坊上的資產家族的數量和市值一直在持續增長。由於“結算”是特定於資產的,因此對於允許強制退出的 rollup,必須在發行資產的鏈上進行驗證。如果 rollup 想要允許強制退出以太坊發行的資產,它必須使用以太坊進行驗證。

今天的以太坊看起來是這樣的:

qcvqjAX5sHXReQJcPK2SEZ6rWOFuEU87EcvgfAe4.png

然而,專門的 DA 層和結算層也確實在與以太坊直接競爭執行這些操作。例如,Celestia和EigenDA已經提供了明顯更高的 DA 吞吐量(儘管安全模型不同)。同樣,Initia正在擴展驗證或結算中心的概念,通過提供預言機、統一的錢包體驗和內置互操作性,為生態系統內的用戶提供更無縫的體驗(這也成為過去幾個月以太坊路線圖上的一個重要點)。

所有這些系統都採用與以太坊相同的形式,基礎層被分解為數據可用性和驗證,每個層都作為各自操作的專門樞紐:

nGxJlhq3a0l5VW1ayYqW5Mkga9e60pbJ4rN24Z6e.png

新設計的關鍵見解在於 DA 層和驗證層必須進行的優化分離。區塊鏈的最初作用是在兩個互不信任的交易對手之間實現可信第三方的去中心化。在以 rollup 為中心的系統中,基礎層的作用是充當 rollup 之間去中心化的可信第三方,以實現它們之間的互操作性。一旦基礎層驗證了 rollup 的狀態,所有其他 rollup 都可以隱式信任基礎層。以 rollup 為中心的設計的另一個核心屬性是,它允許應用程序在平均情況下(通過某種程度上中心化的排序器)為用戶提供快速且廉價的交易確認訪問權限,而不會在最壞情況下(通過強制退出基礎層)損害最終的審查阻力。

鑑於我們理解了數據可用性和驗證之間的分離,以及基礎層在提供最終的審查阻力、Rollup之間的互操作性和資產發行方面的核心功能,我們可以推斷如何構建更好的基礎層。目前,Rollup每隔幾個小時將狀態數據發佈到基礎層,這意味著Rollup排序器提供的預確認僅在此時間範圍內在基礎上完成。數據吞吐量高於以太坊 L1 的基礎層可以讓Rollup更頻繁地發佈數據,減少從Rollup預確認到基礎層確認的時間,從而提高Rollup的安全性。同樣,以更高的速度進行驗證可以實現Rollup之間的更快互操作性,從而無需流動性橋樑和做市商。我們可以利用對基礎層必須處理的工作負載形狀的具體見解來構建具有更高吞吐量和更快Rollup間通信的基礎層。

集成區塊鏈具有“熱狀態”區域,例如經常受到攻擊的 DEX 池。這使得所有參與者的交易的相對排序變得非常重要。另一方面,rollup 通常在很大程度上獨立的狀態空間上運行,大多數交易僅影響其自己的 rollup 內的狀態。雖然跨 rollup 交互確實會發生(例如,當用戶在 rollup 之間轉移資產或 rollup 相互組合時),但這些交互是明確的、定義明確的並且是提前知道的。由於每個 rollup 中的絕大多數交易都在脫節的狀態下運行,並且跨 rollup 交易是通過特定的互操作性機制處理的,因此在基礎層上對所有 rollup 數據進行嚴格的全排序的必要性較小。相反,只有在 rollup 明確交互的情況下才能有選擇地執行排序:

HaaEfmlNoUbNl3zZ5yF8KaFQI65V7FglMvMQh6co.png

兩個Rollup向基礎層發佈狀態差異列表和其狀態轉換的 ZK 證明

注意:我們假設Rollup 在此處發佈狀態差異列表以及其Rollup狀態轉換的 ZK 證明。

這裡的核心見解圍繞著交易之間的因果關係,並支撐了圍繞有向無環圖 (DAG) 共識模型所做的大量工作。一般來說,DAG 算法試圖明確指出依賴關係,以便計算/處理可以並行進行。借鑑這些想法,我們預計 rollup 基礎層將會出現,其中共識在很大程度上被放寬,以支持更高的吞吐量和更低的延遲。

Rollup 狀態的自然劃分表明,強制所有 Rollup 交易遵循總順序可能是一種不必要的開銷。delta和Hylé等系統利用了這一洞察力,允許 Rollup 獨立進行,只需要協調跨域資產轉移。然而,這並不是完全消除共識;相反,這是對真正需要共識的地方的改進。創新之處在於認識到這種排序可以侷限於實際需要的地方,而不是在所有交易中全局強制執行。

這種分區的最大影響是創建一個優雅的Rollup 解決方案,以增加專門執行環境的吞吐量,而不會犧牲與其他的Rollup 可組合性。

因果排序與全排序

在進一步討論之前,讓我們先回顧一下排序。廣義上講,共識是網絡中所有節點對有效交易排序的一致意見:

  • 線性區塊鏈必須就交易的全序達成一致,即在所有參與節點看來,事件發生的完整線性順序。彼此無關的交易仍會整齊地置於全局順序中。
  • 另一方面,因果排序只是對交易進行排序,即先發生的交易排在依賴於其輸出的交易之前。沒有因果關係的交易不需要相互排序。這也稱為偏序。DAG 只是在一組交易中實現偏序的數據結構。偏序還為 DAG 中不相交部分之間的並行交易執行打開了大門。在這裡,沒有所有節點都同意的單一、全局的交易排序。

全序可以建立在 DAG 之上。它需要額外的共識機制來就併發事件的順序達成一致。Narwhal And Tusk協議或 Sui 的Mysticeti中較新的演進就是一個例子。

PR8JzkDaaYtfT0IOq8HEoNEC1422fu5hjslMC3KK.png

DAG 內的交易可以獨立於其他不相關的交易進行確認。一旦交易獲得大多數驗證者的認可,它就被視為有效。允許單獨確認交易而不是在區塊內確認交易可以大大提高交易吞吐量,因為可以並行提出和確認許多交易。這可以被認為是單一領導者共識的泛化,其中任何驗證者都可以提出新交易(注意:這也可以被視為提出一個包含一個單獨交易的區塊)。

總結一下 DAG 中交易驗證的工作原理:

  • 用戶將交易廣播給驗證器節點的子集。
  • 當節點收到交易時,它首先根據圖的本地視圖檢查該交易是否與其當前知道的任何交易相沖突。
  • 如果存在衝突,例如試圖花費相同的資金,則交易會被拒絕。
  • 如果沒有衝突,接收節點將與網絡中的其他節點進行交互,以就交易的有效性達成某種形式的一致。其中一種方法是子採樣,其中節點通過對其他節點的子集進行採樣並詢問他們是否根據自己的本地觀點認為該交易有效來開始幾輪查詢。如果採樣節點的閾值為肯定響應,則查詢輪次被視為成功,並且表示已達到法定人數。重複此採樣過程,直到節點對交易有效性充滿信心。此過程允許節點快速就交易有效性達成概率共識,而無需全局一致。重複採樣有助於確保整個網絡達成共識,使得衝突交易極不可能同時被接受。

xRaCG8YyEgH8OdrZNpqo5HU7ZjWRdp1gjRufjlYD.png

對交易驗證進行子採樣

需要重申的是,任何節點在任何給定時間都可以運行此交互式過程來實現法定人數,從而允許有多種路徑來達成共識。從某種意義上說,每個驗證器或副本都在運行自己的區塊鏈,並定期與其他節點同步。這種在協調之前先推進多個不同區塊鏈的想法也在非 DAG 設計中進行了探索,例如Autobahn(仍然依賴於數據傳播和排序的分離)。在 Autobahn 中,每個驗證器維護自己的交易通道,然後在同步過程中進行協調。雖然本文中沒有明確將它們稱為區塊鏈,但我們認為通道與區塊鏈非常接近,同步過程類似於合併多個區塊鏈。

基礎層中的因果關係

現在,既然我們理解了因果關係的概念,我們可以嘗試拼湊出這個概念與基礎層的關係。如前所述,rollup 通常會發布狀態數據或狀態差異列表,這些列表對應於其自身持久分區狀態上的狀態更新。兩個 rollup 發佈的數據不會對某些“熱狀態”產生爭用,因為數據彼此完全不相交。這放寬了基礎層對全局排序的需求。此外,要驗證新的 rollup 狀態,只需驗證先前發佈的 rollup 狀態。因此,基礎層可以自由地對這些 rollup 交易進行排序,使它們能夠彼此獨立地進行,而不必等待全局排序:

KCHOwUtFFFk5FD2Cr1yC9GT0S3SrOVJ7WSrFs6IU.png

從更廣義上講,rollup 應該能夠自由地將數據和證明發布到基礎層,而無需擔心費用。當數據在網絡中傳播時,基礎層的驗證者將驗證 rollup 排序器發佈的證明。如果一定數量的驗證者驗證了該證明,則假定交易已確認。這樣的系統將允許 rollup 以數據通過基礎層傳播的速度實現確認。從理論上講,這也應該縮短排序器預確認和基礎層確認之間的時間。

4Nryc8KdJRiE6BPil7NJY2OMlxR2tWBw5a41d8jX.png

上述系統取決於基於 ZK 的執行分片,而不是複製執行作為可驗證應用程序的未來。

在兩個 rollup 之間移動數據的跨分片交易需要排序,但這也是部分的。例如,將資產 X 從 rollup A 轉移到 rollup B 需要 rollup A 的提款交易達到法定人數,然後 rollup B 才能包含存款交易。來自基礎層的快速確認將為同一生態系統中 rollup 之間的互操作性提供可靠的保證,從而為基礎層創造網絡效應。快速的互操作性加上大量有價值的資產可能足以使基礎層對潛在的 rollup 具有吸引力。總而言之,這種專門的設計將允許:

  • Rollup交易的確認時間快速。
  • Rollup之間的快速互操作性(無需流動性橋樑或做市商)。
  • 用於Rollup的專用 DA 吞吐量。
  • 用於Rollup的專用驗證工具(更多證明系統)。

簡要說明:基礎資產的價值累積

上述討論為 rollup 提供了一個廉價、快速且安全的基礎層。然而,目前圍繞以 rollup 為中心的路線圖的大部分討論都圍繞著 rollup 存在下 ETH 和以太坊的價值累積。擁有用戶關係的 L2(如 Base)能夠對其區塊空間收取溢價,並且只需將其收入的一小部分以 DA 費用的形式返還給以太坊。

通過允許 rollup 更頻繁地發佈狀態數據來實現快速互操作性,基礎層可以獲得一些原本會損失給做市商和流動性橋樑的收入。儘管更好的互操作性系統為基礎層帶來的價值完全取決於需要相互通信的 rollup 數量。在 rollup 不滿足多個應用程序需求的設置中,基礎層的價值累積變得更加清晰。應用程序只需使用基礎層進行交互即可實現可組合性。應用程序可以獲得高吞吐量和對自己空間的控制權,而不會犧牲可組合性。

還有一些論點認為,通過改進基礎層的執行來提高原生代幣的價值累積。這實際上允許基礎層與 rollup 競爭,違背了以 rollup 為中心的設計原則。包含執行的另一種方法(也可能是我們的首選方法)是構建enshrined rollup,其中基礎層資產通過重新質押來保護 rollup 排序器。如果需要,基礎層驗證者集甚至可以充當 rollup 的排序器集(儘管驗證者集不必相同)。事實上,在Martin Köppelmann 在 Devcon 2024 上的演講之後,enshrined 或原生 rollup 的話題開始升溫。對於像以太坊這樣的生態系統,它將允許 ETH 賺回一些損失的價值,同時也允許開發人員在 rollup 上更自由地進行實驗,因為 rollup 的質押可能會比以太坊 Layer-1 低得多。

結論

總的來說,我們認為 ZK 時代代表著以太坊和整個區塊鏈真正令人興奮且具有前瞻性的未來。在這篇文章中,我們概述了 ZK 與最先進的共識的結合如何代表以 rollup 為中心的系統中基礎層的潛在新方向。通過將零知識證明與借鑑自基於 DAG 的共識機制的想法相結合,我們可以重新構想真正針對 rollup 進行優化的基礎層。共識僅應用於實際共享狀態的地方,而不是作為所有操作的統一要求。隨著生態系統繼續向模塊化設計發展,我們預計這種更細緻入微的基礎層共識方法將成為模塊化區塊鏈的標準。

總的來說,我們認為,鑑於幾項新的支持技術剛剛投入生產,基礎層必須採用這項技術才能保持競爭力。

我們不能害怕擁有更大的夢想。

查看原文
  • 讚賞
  • 留言
  • 分享
留言
暫無留言