多維度 EIP-1559

發表於 2022-03-10 22:47 作者: ETH中文

EVM 中的許多資源都具有這樣的屬性,它們的爆發容量 (我們能夠在一個或幾個區塊中處理多少容量) 和持續容量 (我們在很長一段時間內可以接受多少容量) 有非常不同的上限。這樣的例子包括:

  • EVM 的使用:區塊偶爾需要 2 秒來處理可能沒問題,但每個區塊都用這么長時間會使保持節點同步變得非常困難。

  • 區塊數據:當區塊到達時,客戶端有足夠的帶寬來處理 2 MB 的區塊,但沒有足夠的磁盤空間來存儲它們。

  • 見證數據:與數據同樣的問題——客戶端有足夠的帶寬處理中等到大型的見證數據,但沒有足夠的磁盤空間存儲它們。

  • 狀態大小填充:只要見證數據可以處理,讓狀態在一個區塊裏增長基本上是沒有限制的 (如果在一個區塊裏,狀態從 45 GB 激增到 46 GB,但進一步的狀態增長又回到正常狀態,誰會去注意呢?) ,但我們不能在每個區塊都有快速的狀態增長。

我們現有的方案是把所有資源都合在一個單一的多維資源 (“gas”) 裏,在處理這些差異方面做得很差。例如,平均來說,交易數據和 calldata 平均消耗一個區塊裏大約 3% 的 gas。因此,最壞的情況下的區塊比平均情況下的區塊包含多出大約 67 倍的數據。見證數據大小的情況是類似的:平均情況下的見證數據是幾百 kB,但最壞情況下,即使有了 Verkle gas 改革也會有幾 MB 的大小,也就是增加 10~20 倍。

把所有資源都塞進一個單一的虛擬資源 (gas) 迫使最壞的情況/平均情況比率是基於使用情況的,當基於使用情況的比率與我們知道客戶端可以處理的爆發容量和持續容量上限之間的比率出現嚴重不一致的時候,會導致非常不理想的 gas 开銷。

本文提出一個解決這個問題的替代方案:多維度 EIP-1559

假如有 n 項資源,每項都有一個爆發容量上限 bi 和一個持續容量目標 si (我們需要 bi >> si)。我們想要資源 i 在任何一個區塊裏數量都永遠不會超過 bi,且長期對資源 i 的平均消耗會等於 si

這個解決方案很簡單:我們讓每項資源都有一個獨立的 EIP-1559 目標方案!我們會有一個基本費用 f1...fn,其中 fi 代表一個單位資源 i 的基本費用。我們有一個硬性規定,每個區塊不能消耗超過 bi 單位的資源 i。fi 會通過一個目標規則來調節 (我們將使用指數調整,因爲我們現在知道它有更好的屬性):  在以太坊上,只有一項資源 (gas) 是從父塊調用傳送到子塊的,爲了讓上述方案行得通,我們仍然通過 gas 來對所有東西收費。

  • 方案 1 (更簡單但不那么純粹):我們保持執行的 gas 开銷是固定的,且我們保持目前的 EIP 1559;設 f1 爲基本費用。所有“特殊”資源 (calldata、存儲使用...) 的 gas 價格爲  。區塊有當前的 gas 上限和每項資源的 b1...bn 上限。優先費用的機制與現在一樣。

  • 方案 2 (更難但更純粹):gas 的基本費用固定在 1 wei (或 1 gwei,如果我們想的話)。使用每項資源 (執行也是其中一項) 的 gas 價格變成fi。沒有區塊 gas 上限,只會有每項資源的 b1...bn 上限。在這個模型裏,“gas” 和 "ETH"成爲真正的同義詞。優先費用以指定百分比的形式;支付給出塊者的優先費用等於基本費用乘以該百分比 (一個更高級的方法是指定 n 個優先費用的一個向量,每項資源是一個向量)。

多維度定價和背包問題異議

在過去,對多維度定價模型的主要反對意見是,它們會對區塊構建者的優化問題帶來困難:區塊構建者將不能簡單地按照從高到低的每 gas 費用來接受交易,他們必須在不同維度間做平衡,並解決一個多維度的背包問題。這會爲專有且優化的礦工創造空間,使他們的表現明顯優於現有的算法,從而導致中心化。

這個問題在兩個關鍵方面遠沒有以前嚴重:

1. 礦工可提取價值 (MEV) 已經爲優化的礦工創造了機會,因此現有算法是最優的這個情況已不再。提議者/構建者分離方案 (PBS) 就是解決這個問題的,把區塊生產的規模經濟從共識層隔離出去。

2. EIP-1559 意味着任何資源觸及上限都是臨界情況而不是普通情況,因此天真算法只會在少數特殊區塊裏表現不佳。

要想知道爲什么第 2 點是對的,我們需要注意一個非常重要的事實:在多維度 EIP-1559 的設計裏,每項資源的“松弛”參數 (目標最高值) 可以遠遠高於 2 倍。這是因爲今天這個 2 倍的松弛參數創造了一個爆發容量/持續容量之間的差距,這個差距來自不可預測的使用量,而在多維度 EIP-1559 的設計裏,這個松弛參數代表整個爆發容量/持續容量之間的差距。例如,我們可以將 calldata 使用量的目標定爲大約 256 kB (大約比今天多 8 倍), 在此基礎上有一個 8 倍的松弛參數  ,並且仍然有與現在相當的爆發容量上限。如果見證數據的 gas 开銷不變,我們可以把見證數據大小的上限設置爲另外的 2 MB,且見證數據大小有一個大約 6 倍的松弛參數。一個對最近 240 個區塊的調查顯示,甚至在 calldata 4 倍的松弛參數下,這些區塊中也只有 1 個達到上限!

這顯示了多維度 EIP-1559 有一個很好的副作用:它會使得需要優先費用競拍的臨界情況變得更加罕見,且突然交易量激增的情況也更快結束。

什么資源可以進行多維度定價?

我們可以從基礎的开始:

  • EVM 執行

  • 交易 calldata

  • 見證數據

  • 存儲容量增長

當加上分片後,分片數據也可以被添加到這個列表中。這已經在能夠支持更高量級的可擴展性上帶來很大改進了,同時降低使用量爆發的風險。

從長遠來看,我們甚至可以使定價更加細化:

  • 區分讀和寫的見證數據

  • 區分分支和分塊的見證數據

  • 分別對每個單獨的預編譯定價

  • 調用

  • 每個單獨的操作碼

這樣做的主要價值在於,它將增加一個 DoS 保護層:如果每個操作碼只能分到例如 100 毫秒的最大預期執行時間,那么,如果攻擊者發現一個操作碼或預編譯慢了 10 倍,他們只能增加 900 毫秒的預期執行時間到區塊裏。這與今天的情況不同,他們可以用該操作碼或預編譯來填充整個區塊,所以在任何單個操作碼或預編譯慢下來 10 倍的情況下,攻擊者也能創建區塊,但這樣的區塊不能在一個單一 slot 裏被處理。

標題:多維度 EIP-1559

地址:https://www.coinsdeep.com/article/4.html

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播信息之目的,不構成任何投資建議,如有侵權行為,請第一時間聯絡我們修改或刪除,多謝。

你可能還喜歡
熱門資訊