探索具有延遲函數的可驗證連續排序

本文為機器翻譯
展示原文

感謝 Switchboard 團隊的 Conor、Lin 和 Swapnil、Taiko 團隊的 Cecilia 和 Brecht、Alex Obadia、Justin Drake、Artem Kotelskiy 和 Chainbound 團隊的審核。

抽象的

在分散的環境中就時間達成一致可能具有挑戰性:掛鐘可能會在機器之間漂移,代理可能會謊報其當地時間,並且通常很難區分惡意和不同步的時鐘或網絡延遲。

以太坊可以看作是一個全球時鐘,其滴答速率約為每 12 秒 1 次。此滴答速率由共識協議強制執行:過早或過晚生成的區塊和證明將被視為無效。但是,為了實現低於 12 秒的粒度,我們應該怎麼做呢?我們是否始終需要共識協議來跟蹤時間?

我們希望在不受信任的 L2 序列器的背景下探討這些問題,他們沒有任何動力去遵循當前由受信任的 L2 序列器維護的 L2 區塊時間表,並且可能會玩各種形式的計時遊戲以最大化他們的收入。

在本文中,我們引入了一種機制,用於在具有輪換領導者機制的去中心化 rollup 中強制執行序列器的及時性、安全性和非提取性排序,而無需依賴額外的共識、誠實多數假設或利他主義。為此,我們使用三個關鍵原語:

  1. 客戶端訂購偏好,
  2. 以太坊作為全球 12 秒時鐘,
  3. 可驗證的延遲函數。

最後,我們展示了 MR-MEV-Boost 的案例研究,這是 MEV-Boost 的一種修改,它能夠實現基於預確認的變化,其中可以應用探索的相同構造來減少提議者的計時遊戲。

基本原理

Rollup 排序器是負責排序(大多數情況下是執行)L2 交易並偶爾在 L1 上更新 L2 狀態根的實體。目前,中心化排序器受益於構建它們的團隊的聲譽抵押,以保持以下五個屬性:

  • 響應性及時通過軟承諾/預先確認來響應用戶交易。我們要強調的是,此定義包括在 rollup 對等網絡上及時廣播不安全的頭像。
  • 明確性(安全性) :在 L1 上提交有序批次時遵守預先確認的承諾,這最終將決定交易的總體排序。
  • 非提取性排序:不通過搶先交易或夾持從用戶那裡提取 MEV,或通過接受賄賂來獲得搶先交易特權。
  • 活躍度:將批次發佈到 L1 並定期更新規範彙總狀態。
  • 抗審查:確保無論發送者、內容或任何外部因素如何,排序器都不會故意排除任何有效交易。

在本文中,我們關注的是如何在無權限、不受信任的環境中維護前四個屬性。請注意,抗審查性由結構保證:通過在不同地域和管轄區引入多個組織不同的排序器,我們可以有力地保證任何交易最終都會被接受。

考慮一個去中心化的排序器集合S := \{S_1,\dots,S_n\} S : = { S 1 , , S n },它具有可預測的領導者輪換機制和與已知數量的 L1 時隙相對應的排序窗口。為簡單起見,我們假設S_{i} S i是當前領導者, S_{i+1} S i + 1是下一個領導者。在任何時間點,只有一個排序器處於活動狀態並鎖定彙總狀態。

以下是序列器S_i S i可以探索的兩種策略,以最大化其預期值:

1. 延遲納入交易

假設用戶在某個 L2 時隙向S_i S i發送交易。然後,排序器可以等待一段時間再將交易插入塊中,以便與搜索者合作進行夾層攻擊或直接搶先交易來提取更多 MEV。特別是,由於 MEV 隨時間呈超線性增長,因此過早提交交易不符合排序器的最佳利益。最壞的情況是排序器延遲包含交易,直到排序器旋轉$^1$。

2. 不要在 Rollup 點對點網絡中發佈不安全的頭像

在這種情況下,排序器在彙總網絡中發佈不安全區塊的動機很低:由於 L2 區塊是由排序器簽名的(例如在Optimism中),它們充當具有約束力的承諾,用戶可以在出現模稜兩可的情況時將其削減。

這對 rollup 的用戶體驗產生了重大的下游影響:下一個排序器和用戶都需要等到一批交易被納入後才能看到最新的交易。對於用戶來說,這意味著他們無法及時瞭解其交易的狀態,而下一個排序器則有可能在無效狀態下構建區塊。

我們現在將探索緩解這些行為的機制併為序列器引入削減條件。

基本原則 1:交易截止日

我們引入了一種新的 EIP-2718 交易類型,其中包含一個附加字段:

  • deadline - uint256表示交易被視為有效的最後一個 L2 區塊編號。

這個想法並不完全是新的。例如, LimeChain團隊在他們的Vanilla Based Sequencing文章中探討了這一點。然而,在我們的變體中, deadline字段是作為交易有效負載的一部分進行簽名的,並且不會在 L1 時隙中表示。

其背後的原因是,sequencer 無法篡改deadline字段或block.number (因為它是一個單調遞增的計數器),因此,如果 sequencer 將用戶交易插入到block.number > deadline的塊中,則很容易修改 L2 派生管道以歸因於故障。

這種方法可以緩解問題1。然而,它並沒有以任何方式解決響應性問題,因為排序器仍然可以延遲提議區塊以提取更多 MEV。

原語 2:以太坊作為全球時鐘

一個簡單的旋轉排序器設計是, S_i S i在其排序窗口W_i W i結束後失去結算批次的能力,這由 L1 智能合約決定。但是,排序器仍然需要一些時間來發布包含最新 L2 塊的批次。因此,我們引入了一個包含窗口,該窗口比W_i W i提前n \geq 1 n 1 個時隙,其中S_i S i仍然有時間使用最後的 L2 塊將彙總批次放到 L1 上,即使排序的責任已轉移到S_{i+1} S i + 1

如果出現任何安全故障,序列器應被削減。如果序列器未能在其包含窗口結束前發佈所有分配的 L2 塊,它將放棄所有相關獎勵。或者,也可以對活躍度故障進行懲罰。這也有助於解決與下一個序列器的協作問題,確保它在n\cdot12 n 12秒內知道最新的塊。理想情況下,我們希望將n n保持在儘可能小的值1 1

這裡仍存在一些潛在問題:將交易納入以太坊是概率性的,這意味著您無法確定您發送的交易是否會及時納入。在這種情況下,這意味著誠實領導者發送的最後一批交易可能不會在其納入窗口結束時納入 L1。可以通過兩種方法來解決此問題:

  • 一種“基於”的設置,其中排序器也是 L1 區塊提議者,並且可以包含他們必須提議的任何交易,或者
  • 使用像Bolt這樣的協議的提議者承諾。我們將在下面的“進一步的工作”部分中對此進行更詳細的闡述。

請注意,我們假設有一個註冊表智能合約可供當前活動的排序器參考,即它實現某種領導者選舉機制並負責排序器債券以及獎勵和懲罰。rollup 治理將決定註冊表是否可以完全免許可或是否應使用允許列表。如果出現任何不當行為,治理將用於暫時或永久將排序器從允許列表中刪除。

原語 3:可驗證延遲函數

可驗證延遲函數(下稱 VDF)是一種加密原語,它允許證明者向驗證者顯示運行某個函數所花費的一定時間,並以驗證者可以快速檢查結果的方式進行。

例如,考慮加密哈希函數h h並定義應用程序

H(n,s) := (h \circ \underset{n\ 次}\dots \circ h)(s),
H n s = h∘ n 時間s h ) ( s ) ,

其中s s是一個字節數組, n n是一個自然數。

組合(或鏈接)哈希函數(如 SHA-256)無法通過並行計算輕鬆加速,但該解決方案缺乏有效的驗證$^2$,因為驗證結果的唯一方法是重新計算函數組合。該解決方案在Boneh 的論文中以樸素 VDF 的形式出現,因此被稱為弱的

VDF 的另一個例子是對隱藏順序的群進行迭代平方,利用它可以構造時間鎖謎題。我們將在下一節中探討後者的用法。

為什麼是 VDF?

VDF 在排序環境中非常有用,因為它們可以作為區塊持續時間的經過時間的證明(特別是block_time / max_adversary_speedup ,請參閱“安全注意事項” )。考慮以下區塊生產管道算法:

  1. 在 L2 塊N N開始時,序列器開始計算一個 VDF,對於誠實玩家來說,該 VDF 需要花費 L2 塊的時間(或略少一些)來計算,並使用前一個塊哈希作為其輸入。
  2. 在 L2 時隙結束後,序列器構建一個塊B_N B N ,其中標頭包含 VDF 的結果,表示為V_N V N 。我們稱之為密封塊。這意味著塊哈希摘要包含V_N V N

該算法具有創建 VDF 計算鏈的良好特性,在某種意義上類似於Solana 的歷史證明,我們從中繼承了安全保證。這在排序器上下文中給我們帶來了什麼?如果我們記得排序器有一個特定的截止日期,它必須在該截止日期之前發佈由 L1 時隙計劃設置的批次,那麼我們可以讓 L1 強制至少需要結算一定數量的 L2 塊。這有兩個下游結果:

  • 排序器必須在排序窗口開始時立即開始生成和封裝區塊。將此與交易截止期限屬性配對會產生交易確認的時間上限。如果他們不遵循 VDF 和 L1 設置的區塊時間表,他們就有可能無法發佈任何批次。
  • 我們通過消除隱瞞數據的動機(不考慮純粹的惡意攻擊)來緩解問題#2 :這是因為序列器無法篡改現有的 VDF 鏈,這將需要重新計算所有後續 VDF 並導致無效批次。

總的來說,為了便於理解,我們將考慮一個通用的 VDF,將其作為“黑匣子”提供,同時牢記哈希鏈示例,該示例目前對 ASIC 等臨時硬件具有更強的保證。請參閱下面的“安全注意事項”以瞭解更多見解。

證明 VDF 正確

如果排序器在 L2 區塊頭中提供了無效的 VDF,則應將其削減,理想情況下,我們希望在結算時確保這一點。但是,由於 gas 成本,在 EVM 上重新計算長哈希鏈是不可行的。

那麼如何證明 VDF 的迭代次數無效?一種方法是樂觀地強制執行(或者在 ZK-rollup 的情況下在結算時),要求在 rollup 的派生管道中提供有效的 VDF 鏈輸出。如果樂觀 rollup 中存在模稜兩可的情況,則可以使用欺詐證明來挑戰排序器。

硬件要求

由於根據定義,VDF 不能通過並行來加速,因此只能使用 CPU 的單個核心來計算 VDF,在我們的塊生產算法中也是如此。

這使得它與大多數工作量證明共識算法(如比特幣)不同且更加輕量級,比特幣需要掃描一個值,使得當使用 SHA-256 進行散列時,散列以一定數量的零位開頭。

還值得注意的是,現代 CPU 已針對計算 SHA-256 哈希函數進行了優化。自 2016 年以來,英特爾從Goldmount系列芯片開始,在CoreXeon 系列的部分型號中提供SHA 擴展,引入了三條新指令,專門用於更高效地計算哈希函數算法的不同步驟。

最後,單核性能多年來一直停滯不前,這表明投資最新一代 CPU 的收益很小,從而降低了系統的要求。

案例研究:MR-MEV-Boost

Multi-Round-MEV-Boost是 MEV-Boost 的修改版,通過在單個 L1 時隙內運行多輪 MEV-Boost 拍賣來實現基於預確認。此原語的用途是在每輪之後輸出由 L2 區塊構建器構建的基於彙總區塊。如文章所示,這種方法繼承了 L1 PBS 管道,並因此減輕了基於預確認的一些負面外部性。

與 MEV-Boost 一樣,此分叉依賴於選擇加入的提議者作為拍賣人,通過調用中繼的getHeader ( Builder-API ) 端點來結束密封拍賣。簽署密封出價後,提議者調用getPayload ( Builder-API ) 來接收中標出價的實際內容,並在基於 rollup 的網絡中發佈區塊。

在原始協議中,拍賣結束通常與 L1 時隙結束一致(更準確地說,大約晚於其一秒);延遲拍賣會導致無法及時廣播區塊以收集所有必要的證明並放棄所有相關獎勵的風險很高。因此,每十二秒都會提出一個區塊時間,並由以太坊共識強制執行。

相比之下,鑑於它包含在時隙期間發生的多輪,在 MR-MEV-Boost 中,不受信任的提議者會被激勵在幾秒後或更早結束拍賣^{3} 3根據收到的出價,以提取更多 MEV。在最壞的情況下,MR-MEV-Boost 將反映 L1 區塊時間。這造成的另一個後果是基礎彙總的時隙時間不一致。這可以看作是一種更為嚴重的計時遊戲形式。

文章中討論瞭解決該問題的可能方法如下:

  1. 引入用戶激勵:如果用戶確定提議者行為不當,他們就會停止向該提議者發送交易。
  2. 引入一個委員會(共識)來證明及時性並維持時段長度。

我們現在認為,確實存在一種無需用戶採取行動就能強烈限制提議者的無需信任的解決方案,而且它利用了我們在去中心化排序背景下用於 VDF 驅動的區塊生產算法的相同構造。

構造過程相當簡單,包括計算持續時間為x := 12/r x : = 12 / r秒的 VDF,其中r r是 L1 時隙中的輪數(L2 塊時間)。提議者必須使用之前基於彙總塊的哈希作為公共輸入來計算此 VDF,並在輪次結束時將其與修改後的getPayload調用的主體一起發送。VDF 的輸出隨後存儲在彙總塊頭中,如果無效,則在成功進行欺詐證明後可能導致提議者被削減。

通過這種方法,提議者可以延遲一輪結束的時間是有限的:例如,如果第一次拍賣晚了一秒結束,那麼在最後一輪中,它將無法為 VDF 提供三秒的計算時間,而是兩秒,從而導致無效塊並隨之而來削減$^4$。這是因為為了開始計算有效的 VDF,它需要前一個塊哈希作為其輸入,這意味著一個密封的塊。

安全注意事項

VDF 對於此用途來說真的安全嗎?
假設對手擁有的硬件能夠以比誠實玩家基線更快的速度計算 VDF ,而不會被注意到(否則 VDF 的迭代次數將由協議調整)。那麼,攻擊者的速度越快( max_adversary_speedup ),我們的構造對其可能行動空間的限制就越少。特別是,序列器將能夠稍後提交塊,並能夠重新組織其中一些塊以提取更多價值。

然而,鑑於我們不需要“快速證明”屬性,哈希鏈已被證明與 Solana 的歷史證明相得益彰,並且至少在短期內仍將如此。此外,我們的安全要求不會像需要永遠銘刻在以太坊中的東西那樣嚴格。

在下面的“進一步工作”部分可以找到一些獲得更強的安全保障的解決方案和方向。

當前的限制

測序儀的可信度

與許多利用(重新)質押的新服務一樣,排序器的可信度有一個上限,即其質押的金額:如果 MEV 機會超過了這個上限,那麼理性的、不受信任的參與者寧願被削減並獲得 MEV 獎勵。

領導人輪換可能是關鍵時刻

如批處理程序和註冊表智能合約部分所述,與排序窗口相比,包含窗口至少向前移動了一個時隙。這是必要的,因為在輪換領導者之前需要時間來結算最後一個批次,但留下了至少 12 秒的額外時隙時間,在此期間,排序器有空間重新組織最後的 L2 塊,然後將它們發佈到 rollup 對等網絡上。因此,如果立即開始排序,S_{i+1} S i + 1可能會在無效狀態下構建塊,因此活性會暫時受到損害。

最後,根據最近關於 blob 的插槽包含率的數據,一個額外的插槽可能不足以解決一批問題。這可以通過利用新的包含預確認協議來緩解,如下所述。

測序儀最後查看

我們的構造使得排序器在提交區塊後很難對其進行重組,但它並不能完全解決搶先交易問題。具體來說,排序器可能會在構建具有相關deadline字段的區塊時從用戶交易中提取價值。以下部分將探討一種可能的解決方案及其侷限性。

結論

在本文中,我們探索了在去中心化彙總環境中強制執行不受信任的 L2 序列器的及時性、安全性和非提取排序的機制。
所討論的原語確保排序器能夠更可預測、更公平地運行,從而緩解交易延遲和數據扣留等問題。此外,這些技術可以減少對現有單排序器彙總的信任假設,符合彙總作為“帶有區塊鏈腳手架的服務器”的概念。這些發現為未來開發去中心化、安全的彙總架構提供了一個強大的框架。

進一步的工作

可信執行環境 (TEE),確保排序器未運行 ASIC

可信執行環境是 CPU 的安全區域,通常稱為“飛地” ,可幫助保護其中加載的代碼和數據的機密性和完整性。
它在區塊鏈協議中的使用是一個活躍的研究領域,主要關注點是信任硬件製造商以及過去某些實現中發現的各種漏洞(這裡是最新的)。
根據用例,這些信任假設和漏洞可能會成為交易破壞者。然而,在我們的設置中,我們只需要保證序列器不使用專門的硬件來計算 VDF,而不必擔心安全區機密數據可能洩露或掛鐘/單調時鐘被操縱。

適應現有的反 ASIC 工作量證明算法

Monero區塊鏈於 2014 年推出,是比特幣的隱私和不可追蹤替代品,它使用一種名為RandomX的抗 ASIC 工作量證明算法。引用他們的README

RandomX 是一種針對通用 CPU 進行優化的工作量證明 (PoW) 算法。RandomX 使用隨機代碼執行(因此得名)以及多種內存硬性技術來最大限度地降低專用硬件的效率優勢。

然而,該算法利用了一定程度的並行性;它是否可以適應單核版本,從而產生新的弱 VDF,是一個有趣的研究方向。
這種方法雖然與使用 TEE 無關,但可以實現相同的結果,即保證測序儀不使用複雜的硬件。

時間鎖定難題,防止搶先交易

正如“當前限制”部分所述,我們的構造不會限制序列器搶先交易用戶的問題。幸運的是,這可以通過要求用戶使用時間鎖定謎題加密敏感交易來解決,我們將在另一篇文章中更詳細地展示。然而,這種解決方案並不是免費的:加密交易或加密內存池可能會激勵垃圾郵件和統計套利,尤其是在協議費用不是很高的情況下

納入預先確認和數據可用性層

通過使用一些新的預確認協議(如 Chainbound 的Bolt或 Primev 的MEV-Commit )來保證在同一時隙內包含,可以提高 L1 合約的批量提交效率。特別是,排序窗口應該恰好在提議者運行上述協議的時隙之前的時隙結束,以便利用包含承諾。

此外,該批次可以發佈到由提議者運行的高效、輕量級數據可用性層中,以在時隙開始時強制執行可配置秒數的截止日期,否則序列器將被削減。


腳註

  1. 更準確地說,如果操作員控制多個後續測序儀,它可能會延遲包含直到最後一個測序儀旋轉。
  2. 在 Solana 中,SHA-256 鏈的驗證實際上是並行的,但需要將與約 400 毫秒計算相關的塊分成 32 個碎片,這些碎片在計算完成後立即轉發給其餘驗證者。因此,通過並行計算哈希鏈的中間步驟可以加快驗證速度。
  3. 一般而言,提議者會提前結束某些輪次,從而延遲其他輪次。例如,它可以強制延長最後一輪,以利用可能的 L1 <> L2 套利機會。
  4. 有一種極端情況是,提議者即使誠實也可能無法計算所有 VDF,這是由於輪換機制造成的:由於 VDF 的公共輸入必須是前一個 rollup 區塊哈希,因此在輪換期間,下一個領導者需要一些時間才能從 rollup 網絡聽到區塊,可能超過 1 秒。這可能會導致下一個提議者在計算 VDF 時出現延遲。
    為了降低這種風險,下一個提議者可以依靠各方來接收這些信息,例如流媒體服務和/或可信中繼。

來源
免責聲明:以上內容僅為作者觀點,不代表Followin的任何立場,不構成與Followin相關的任何投資建議。
喜歡
8
收藏
2
評論