
EIP-TBA:透過新的費用計算規則提升交易Gas上限
這項以太坊改進提案(EIP-TBA)提出了一種新的費用計算規則,旨在提高交易的Gas上限,以期提升網路效率和容量。
2025年12月20日,凌晨4:19 1
注意:尚未創建 PR,因為建議先獲取建議。
要求
EIP-1559, EIP-2718, EIP-3529, EIP-7702, EIP-7825
簡單摘要
允許交易指定大於 uint24 最大值的 gas 限制。
摘要
為大型交易引入了新的費用計算規則。應用範圍僅限於特定的交易格式。
動機
EIP-7825 引入了 16,777,216 (2²⁴) 的嚴格 gas 硬上限。此限制阻礙了元交易的構建和大型合約的部署。通過引入更靈活的費用計算規則,我們可以避免未來的開發障礙,同時仍然有效緩解 DoS 攻擊。
規格
參數
| 參數 | 值 |
|---|---|
COMPRESSION_RATIO | 2 |
THRESHOLD_GAS_LIMIT | 45,000,000 |
BLOCK_GAS_LIMIT | 60,000,000 |
GAS_USED | 未設定 |
GAS_USED_IN_TX | 未設定 |
GAS_LIMIT | 未設定 |
EXECUTION_GAS_LIMIT | 未設定 |
GLOBAL_REFUND_GAS | 未設定 |
驗證規則
對於 TransactionType 為 0x02 和 0x04 的 EIP-2718 交易格式,如果 GAS_LIMIT 為 uint32,則有效 EXECUTION_GAS_LIMIT 的確定方式如下,其中 / 表示向下取整的整數除法:
if GAS_LIMIT <= THRESHOLD_GAS_LIMIT:
EXECUTION_GAS_LIMIT = GAS_LIMIT
else:
EXECUTION_GAS_LIMIT = THRESHOLD_GAS_LIMIT + (GAS_LIMIT - THRESHOLD_GAS_LIMIT) / COMPRESSION_RATIO
如果 GAS_LIMIT > BLOCK_GAS_LIMIT,則該交易被視為無效。
執行遵循 EIP-1559 和 EIP-7702,除了 gas 計數使用 EXECUTION_GAS_LIMIT,並且 GAS_USED 的計算方式如下:
if GLOBAL_REFUND_GAS <= GAS_USED_IN_TX / 5:
GAS_USED = GAS_LIMIT - GLOBAL_REFUND_GAS
else:
GAS_USED = GAS_LIMIT - GAS_USED_IN_TX / 5
原理
Gas Used 等於指定的 Gas Limit
此費用模型受到 Monad 的 gas 計數方法的啟發,其中消耗了整個指定的 gas 限制。此設計緩解了利用極高 gas 限制但實際執行成本極低的 DoS 攻擊。它允許將大型交易包含在區塊中,同時根據它們引入的風險對其進行適當定價。
合理的應用範圍
此 EIP 將其應用限制在類型 2 和類型 4 的交易格式,因為作者認為這些格式對大量 gas 使用的需求最高,同時也鼓勵減少對舊格式的依賴。未來,此規則可能會根據實際使用模式擴展到其他格式。
調優參數說明
COMPRESSION_RATIO 參數增加了超過定義閾值的 gas 的有效成本,以補償過度佔用區塊空間的風險。仍然允許 gas 退款,因為它們退還了之前過度收取的 gas。此外,EIP-3529 將退款上限設置為不超過已用 gas 的 20%,因此此設計不會引入超出已知範圍的新攻擊向量。
向後兼容性
此 EIP 需要硬分叉,因為它引入了對 gas 費用計算規則的更改。
安全考量
合理的 Gas Limit 規範
由於 gas 使用量是從指定的 gas 限制派生的,因此錢包界面在建議超過 EIP-7825 中定義的 gas 限制時必須極其謹慎。
參數調優和客戶端改進
短期內,此 EIP 的參數可以進行調整,以更好地反映實際情況。長期來看,必須改進客戶端以處理來自具有非常大 gas 限制的交易的更重工作負載。
測試案例
以下是根據指定 gas 限制的交易的 gas 使用量列表:
GAS_LIMIT | GLOBAL_REFUND_GAS | GAS_USED_IN_TX | EXECUTION_GAS_LIMIT | GAS_USED |
|---|---|---|---|---|
| 1,500,000 | 0 | 1,000,000 | 0 | 1,000,000 |
| 2,000,000 | 0 | 2,000,000 | 0 | 2,000,000 |
| 4,000,000 | 300,000 | 2,000,000 | 0 | 1,700,000 |
| 5,000,000 | 1,200,000 | 4,000,000 | 0 | 3,200,000 |
| 18,000,000 | 0 | 18,000,000 | 18,000,000 | 18,000,000 |
| 20,000,000 | 0 | 4,000,000 | 20,000,000 | 20,000,000 |
| 24,000,000 | 2,000,000 | 23,000,000 | 24,000,000 | 22,000,000 |
| 30,000,000 | 10,000,000 | 25,000,000 | 30,000,000 | 25,000,000 |
| 48,000,000 | 0 | 40,000,000 | 46,500,000 | 48,000,000 |
| 54,000,000 | 9,000,000 | 48,000,000 | 49,500,000 | 45,000,000 |
| 60,000,000 | 30,000,000 | 50,000,000 | 52,500,000 | 50,000,000 |
1 讚
相關文章