Vitalik提出多維EIP1559方案,優化gas模型并增加DoS保護

Kyle 2022-01-07 17:38 1.13萬
分享

以太坊虛擬機(EVM) 中的許多資源都具有以下屬性:它們對突增容量(即我們可以為一個或幾個區塊能夠處理的容量多少)和持續容量(即我們可以長時間擁有的容量多少)有非常不同的限制。舉一些例子:

EVM使用量:區塊處理時間偶爾在 2 秒可能沒問題,但是每個區塊都花費這么長時間則會使保持節點同步變得非常困難

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

見證數據:與數據相同的問題 - 客戶端有足夠的帶寬來處理中大型見證,但沒有足夠的磁盤空間來存儲它們

填充的狀態大?。夯旧蠜]有限制讓狀態在單個區塊中增加多少(如果狀態在一個塊中從 45 GB 激增到 46 GB,但之后的狀態增長恢復正常,誰會注意到?)只要見證人可以處理它,但我們不能在每個區塊中都出現快速的狀態增長

我們當前使用的方案是將所有資源組合成一個單一的多維資源(“gas”),在處理這些差異方面做得很差。例如,平均而言,交易數據加上調用數據會消耗區塊中約 3% 的gas。因此,最壞情況區塊包含的數據比平均情況多約 67 倍(包括來自 EIP 1559 的 2 倍松弛(slack))數據。見證(witness)的大小是相似的:平均情況下的見證只有幾百 kB,但最壞的情況下,即使進行了 Verkle gas 改革,見證的大小也有幾兆字節,增加了 10-20 倍。

將所有資源硬塞到單個虛擬資源(gas)中會迫使最壞情況/平均情況比率變成基于使用情況,當基于使用情況的比率以及我們知道客戶端可以處理的突發限制和持續限制的比率非常不一致時,會導致非常不理想的 gas 成本。

本文為這個問題提出了一個替代解決方案:多維 EIP 1559。

假設有 n 個資源,每個資源都有一個突增限制 bi 和一個持續目標 Si(我們需要 bi>>si)。我們希望任何單個區塊中的資源 i 的數量永遠不會超過 bi,并且資源 i 的長期平均消耗等于 Si。

解決方案很簡單:我們為每個資源維護一個單獨的 EIP 1559 目標(targeting)方案!我們維護一個基本費用(basefees)向量 f1...fn,其中 fi 是一個單位資源 i 的基本費用(basefee)。我們設計一個硬性規則,即每個塊消耗的資源 i 不能超過 bi 單位。fi 由一個targeting規則調整(我們將使用指數調整,因為我們現在知道它具有更好的屬性):

為了在以太坊環境中完成這項工作,其中只有一種資源(gas)從父調用傳遞到子調用,我們仍然以 gas 收取所有費用。

選項 1(更簡單但不那么純粹):我們保持執行 gas 成本固定,保持當前的 EIP 1559;讓 f1 成為基本費用(basefee)。所有“特殊”資源(調用數據、存儲使用……)的 gas 價格變為 fi/f1。區塊既有當前的 gas 限制,也有每個資源的限制 b1...bn。優先費用的運作方式與今天相同。

選項 2(更難但更純粹):gas basefee 固定為 1 wei(或者,如果我們想要,可以為1 gwei)。使用每種資源(其中執行一次)的 gas 價格變為 fi。沒有區塊gas限制;每個資源只有 b1...bn 的限制。在這個模型中,“gas”和“ETH”成為真正的同義詞。優先費用通過指定百分比來運作;支付給區塊生產者的優先費用等于basefee乘以該百分比(一種更高級的方法是指定 n 個優先費用的向量,每個資源一個)。

多維定價與背包問題(knapsack problem)異議

歷史上對多維定價模型的主要反對觀點是,它們對區塊構建者強加了一個困難的優化問題:區塊構建者不能簡單地按照每gas費用從高到低接受交易,他們必須不同維度之間平衡,并解決多維背包問題。這將為性能明顯優于庫存(stock)算法的專有優化礦工創造空間,從而導致中心化。

這個問題在兩個關鍵方面已經比以前弱得多:

礦工可提取價值 (MEV) 已經為經過優化的礦工創造了機會,因此stock算法的“船已經出港”以有意義的方式被優化。提議者/建造者分離 (PBS) 解決了這個問題,將區塊生產的規模經濟從共識層隔離開來。

EIP 1559 意味著任何達到限制的資源都屬于邊緣情況而不是平均情況,因此樸素的算法只會在少數異常區塊中表現不佳。

要了解為什么 (2) 是這種情況,我們需要注意一個非常重要的事實:在多維 EIP 1559 中,每個資源的“松弛(Slack)”參數(maximumtarget)可能遠高于 2x。這是因為今天的 2x Slack參數創建了一個突增/持續差距,該差距疊加在來自不可預測使用的爆發/持續差距之上,而在多維 EIP 1559 中,松弛參數代表整個突發/持續差距。例如,我們可以將 calldata 使用量瞄準為 ~256 kB(比今天多 8 倍),在此之上有一個 8 倍的Slack參數(bisi),并且仍然具有與今天相當的突增限制。如果見證 gas 成本不變,我們可以將見證大小綁定為又一約 2 MB,并且見證大小的Slack參數為約 6 倍。對 240 個最新區塊的調查表明,即使在 4 倍的 calldata Slack參數下,這些區塊中只有 1 個會達到限制!

這顯示了多維 EIP 1559 的一個很好的效果:它會使優先費用拍賣的邊緣情況更加罕見,并且更快地清除突增交易。

哪些資源可以多維定價?

我們可以從基礎開始:

EVM 執行

發送calldata

見證數據

存儲大小增長

有了分片之后,也可以將分片數據添加到此列表中。這已經給我們帶來了很多好處,能夠支持更多的可擴展性,同時降低突增使用帶來的風險。

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

通過讀取與寫入拆分見證

按分支與塊分割見證

單獨定價每個單獨的預編譯

調用

每個單獨的操作碼

這樣做的主要價值在于它會增加另一層 DoS 保護:如果每個操作碼僅被分配,例如100 毫秒的最大預期執行時間,那么如果攻擊者發現一個操作碼或預編譯的速度降低了 10 倍,他們只能將 900 毫秒的預期執行時間添加到塊中。這與今天形成鮮明對比的是,他們可以使用該操作碼或預編譯填充整個區塊,因此任何單個操作碼或預編譯減速10 倍都可能使攻擊者創建無法在單個間隔及時處理的區塊。

原文作者:Vitalik Buterin

本文來源:巴比特 原文作者:Vitalik Buterin 責任編輯:Seven
聲明:奔跑財經登載此文出于傳遞更多信息之目的,并不意味著贊同其觀點或證實其描述。文章內容僅供參考,不構成投資建議。投資者據此操作,風險自擔。

評論

還沒有人評論,快來評論吧

相關新聞

拜登預計將于下周發布關于加密貨幣和CBDC的行政命令

2022-02-18 18:12
奧巴馬總統和上屆政府都發布了與數字資產有關的行政命令。>

不以區塊鏈技術構建的元宇宙是不完整的,你同意嗎?

2022-02-18 17:35
元宇宙也有一個基本的、但略顯神秘的方面,將它與今天的互聯網區分開來,這就是區塊鏈。>
老雅痞 3170

尋找OpenSea的下一個挑戰者

2022-02-18 15:22
還有誰有可能挑戰OpenSea,打破NFT市場壟斷局勢?>
日本免费网