V神:對提議者/區塊構建者分離友好的費用市場設計

為應對MEV 帶來的問題,Vitalik 對提議者/區塊構建者分離方案提出兩條思路。

來源| ethresear.ch

作者| Vitalik Buterin

特別感謝Justin Drake 和Flashbots 團隊的反饋和討論。

对现在运行中的去中心化共识网络的一个重大威胁是关于矿工可提取价值 (miner extractable value) 的经济学,即从选择下一个区块内容的能力中提取利润的复杂技巧。一个简单的 MEV 例子是根据前一个区块的价格变动在所有链上的去中心化交易所套利。尽管正常情况下 PoS 的奖励是合理的、平均的,即单个验证者的回报率跟强大的质押池是一样的,但现在找寻复杂的 MEV 提取机会已经形成相当显著的规模经济了。10 倍大的池子就有 10 倍的机会提取 MEV,但池子也需要能够在专有的优化上投入更多,以在每个机会里提取更多的价值。

除了這個問題以外,MEV 也讓去中心化的質押池變得更複雜,因為在去中心化質押池裡,打包交易和提議區塊仍然需要由一個實體來完成,他們可以輕易地秘密提取MEV,而不在池里分配這些收入。

最為人所知的是解決方案區塊提議者(proposer)/構建者(block builder)分離。不同於區塊提議者自己生成一個收入最大化的區塊,他們依賴一個市場,這個市場由外部的區塊構建者組成,他們生成包含完整區塊內容和給區塊提議者費用的交易捆,然後提議者選擇包含最高費用的交易捆。這樣,區塊提議者的選擇就被簡化為選擇費用最高的交易捆,這可以由一個簡單算法實現——在一個去中心化池裡,它甚至可以在MPC (多方計算) 裡完成,以防止作弊。

本文對如何實現這點提出了一些設計。

本文的想法非常直接地受2018 年的這篇文章啟發:

優化提案承諾方案20

提議者/構建者分離的區塊提議設計的所需特性

我們會專注的五大所需特性:

  • 無須信任提議者友好性:提議者欺負區塊構建者的風險幾乎是零,因此區塊構建者沒有動機偏向鏈下有聲譽的或與構建者有個人關係的提議者(因為這有可能偏向大型質押池)。
  • 無須信任構建者友好性:構建者欺負提議者的風險幾乎是零,因此提議者沒有動機偏向鏈下有聲譽或與構建者有個人關係的構建者(因為這有可能導致新進入市場的構建者不被選擇)。
  • 弱提議者友好性:這個機制不應該要求提議者有(i) 高帶寬或其他計算資源, 或(ii) 高技術水平
  • 不可竊取的交易捆(bundle):提議者應該不能接受由區塊構建者提議的交易捆,並從中提取交易形成自己的交易捆,從而阻止區塊提議者賺取利潤(並可能進一步傷害他們)
  • 共識層保持簡單與安全:從共識層的角度,該機制應該保持安全性不變,最好與現有的區塊提議機制一起可以被同一個分析框架。

想法1

  • 區塊構建者構建交易捆並發布這些交易捆的捆頭(bundle head)。一個交易捆頭包含對交易捆主體(bundle body) 的承諾(預期的區塊內容),給提議者的付款信息,以及構建者的簽名。
  • 提議者選擇提供最高費用的交易捆頭(僅需要考慮交易捆的構建者實際上是否有足夠的餘額可以支付)。他們對交易捆頭簽名並發布包含該交易捆頭的一個提議。
  • 當看到有簽名的提議後,提供打包交易捆頭的區塊構建者發布完整的交易捆。

此時,分叉選擇規則能夠做出以下三個判斷中的一個(而不是平常的兩個,存在區塊vs. 不存在區塊):

  • 不存在區塊提議
  • 存在區塊提議但不存在交易捆主體
  • 區塊提議和交易捆主體都存在

請注意,在第二種情況下,提議仍然會被打包到鏈上,區塊構建者給提議者的付款也仍會處理(但區塊構建者自己不會獲得任何費用或MEV )。

分析

五項特性中的三項是相當容易呈現的:

  • 區塊提議者無條件接收承諾的付款,因此交易捆不能欺負提議者
  • 三個步驟都非常自動化且低帶寬,因此這滿足弱提議者友好性
  • 提議者不能看到他們要的簽名交易捆的信息,因此這滿足交易捆不可竊取性。

共識層特性和無須信任提議者友好性這兩點比較棘手。這個設計的確會改變分叉選擇機制,從兩個選項增加到三個,這意味著提議者將不再是這個機制裡的最後一個行動者。理論上,人們可以推斷如果分叉選擇是可以做出決定的,那麼這應該沒問題,但這仍然是一個具有潛在未知性的重大變更。

區塊提議者看不到交易捆的內容,並不能通過竊取交易捆欺負區塊構建者,但他們可以對區塊構建者發起一種更微妙的攻擊。他們可以在slot 末發布提議,確保證明者(大概) 能及時看到提議,但區塊構建者沒有足夠的時間發布交易捆主體,因此很有可能證明者來不及看到交易捆主體。這會給區塊構建者帶來風險,並等於鼓勵他們偏向值得信任的提議者。另外,這還給了惡意的大多數機會,重罰那些他們不喜歡的區塊構建者。

我覺得有兩套方法可以緩解這個問題。

  • 證明者在他們接受提議的最長時間和他們接受交易捆主體的最長時間之間有2 秒的延遲。如果你信任證明者,這基本解決了問題,儘管區塊構建者丟失資金的這個風險仍然存在。另外,還不清楚讓證明者以這種方式投票是否有激勵作用(雖然可以想像到會有人通過要求他們對一個2 秒的可延遲驗證函數的提議做證明,強迫他們等待)
  • 如果交易捆的主體沒有被打包,提議者只能獲得付款的一半(而區塊構建者只需支付一半)。這使得提議者的破壞行為成本很高,但它仍然確保區塊構建者破壞的成本也是高昂的(當兩種情況的成本都足夠高時,總的來說你就能信任即使是匿名行動者都不會想做破壞行為)。例如,如果一個交易捆的提議者費用是1,區塊構建者獲利1.05:○ 誠實行為會帶來的構建者和提議者收益分別是0.05 和1。 ○ 提議者或證明者太遲發布,導致僅區塊頭被接受了,這樣構建者和提議者的收益分別是-0.5 和0.5。

想法2

  • 區塊構建者構建並發布交易捆頭。交易捆頭包含對內容的承諾、給提議者的付款、以及構建者的簽名。
  • 提議者對他們看到的交易捆頭進行選擇,形成列表,並對列表組成的聲明進行簽名。
  • 在看到該聲明時,被選的區塊構建者會發布相應的交易捆主體。
  • 提議者在他們之前承諾的一列交易捆頭中選出一個並用它發布提議。

還需要一個新的罰沒條件,任何在同一個slot 裡提議不在自己承諾列表裡的交易捆頭的提議者都會被逐出和被懲罰。

還要注意的是,在第2 步裡,提議者提交的交易捆頭列表也可以成為一個對交易捆頭進行加密的哈希值列表,其中哈希值都加密到區塊構建者的公鑰,因此只有構建者知道它們是否被接受了。這會減少DoS 攻擊風險。

分析

同樣地,五項特性中的三項式相當容易顯示的:

  • 提議者不能竊取交易捆,因為當他們已經把自己限制在一個有限的現有交易捆頭集裡時,他們只能看到交易捆的主體。
  • 當完整的交易捆沒有被打包前,構建者給提議者的付款是不可能成功的,因此提議者也無法在經濟上欺騙構建者。
  • 共識特性保持不變,因為系統設定仍然是提議者作為機制的最後行動者,共識規則決定的內容沒有變更。

在這個情況裡,更棘手的兩個特性是弱提議者友好性和無須信任區塊構建者友好性。對於這個方案的憂慮是惡意區塊構建者可以通過製造大量高交易費的提議攻擊提議者,但永遠不發布這些交易捆的主體。如果提議者對接受的交易捆數有上限,這種攻擊可以把所有合法交易捆排除在外,使得提議者沒有合法交易捆可以提議打包到區塊。如果提議者對接受的交易捆數沒有上限,那麼可能會有無數個滿的交易捆主體(試想:每個500 kB) 發送給提議者,這將需要非常大量的帶寬。

解決這個難題的一個辦法是以某種方式對交易捆頭的提交進行速率限制,這不是一個硬性限制。

  • 提交交易捆需要支付一定費用,通過類似EIP-1559 的機制來調整到某個速率(例如,每slot 8 個交易捆)
  • 成為區塊提議者需要押金(無論如何都是必要的,以確保提議者得到報酬),同時還需要一條規則,如果你發布的交易捆沒有被打包,但一個更低價的交易捆被打包了,那麼你在接下來的N 個slot 都無法提交交易捆。

只有在這種情況也會被扣費:你的交易捆沒有被打包,但更低價的交易捆被打包了,因為這種特定情況可能是你作惡了(或提議者作惡、或是網絡狀態不好)。

這方面有先例;之前的ENS 競拍設有0.5% 失敗者費用,以阻止有人在明顯不會贏的情況下出價,以迫使贏家支付更多。

但是,這些技術可能會引入對提議者的信任要求,因此他們需要謹慎處理,對打包交易捆失敗的懲罰不能太高。

一個替代方案是允許自由和無限制地發布交易捆主體,但限制主體在在網絡層廣播。一個簡單算法是:

  • 為交易捆得以傳播添加一個稍微延遲的最短時間限制:交易價格最高的交易捆是0 秒,第二高的交易是0.2 秒,第三高的是0.38 秒,一般來說對於第k 個最高交易價格的交易困是2∗[1−0.9^(k−1)] 秒。
  • 增加一條規則:如果一個節點已經廣播了一個更高交易費的交易捆主體,它不能再廣播了。

這兩項技術可以結合在一起:你可以用一個低價費用來減少預期的交易捆數,比如每個slot 50 捆,然後使用像這樣的網絡層機制來進一步減少帶寬要求。

結論

到目前為止,我不明確是否唯有上述兩種方法能解決這個問題,可能還有其他。在這兩種方法裡,想法(1) 在概念上更簡單,但它會給區塊構建者帶來風險,也會引入更複雜的分叉選擇規則要求。想法(2) 在分叉選擇和共識上更簡單,但在處理惡意區塊構建者帶來的DoS 攻擊上有困難,且任何解決這個問題的方法都可抗產生其他問題,儘管可以想到將其最小化的方法。到目前為止,我仍然不確定哪一個更好。

展開全文打開碳鏈價值APP 查看更多精彩資訊

Total
0
Shares
Related Posts