EIP-3382: 硬编码区块 Gas 上限
Authors | Philippe Castonguay (@PhABC) |
---|---|
Created | 2021-03-13 |
Discussion Link | https://ethereum-magicians.org/t/eip-3382-hardcoded-gas-limit |
简单总结
将区块 gas 上限硬编码为每个区块 12,500,000
gas。
摘要
更新区块验证规则,使得如果 gas_limit
头字段不等于 12,500,000
,则该区块无效。
动机
以太坊的工作量证明和权益证明设计都假设区块生产者在财务上是理性的,但不假设区块生产者是仁慈的。但有一个例外,即区块生产者选择区块的 gas 上限时,假设区块生产者关心链的长期健康和去中心化。实际上,区块 gas 上限是以太坊中唯一不由节点共识决定的参数,而是由区块生产者选择的。最初做出这个决定是为了在必要时允许紧急更改区块 gas 上限。大幅增加或减少此参数都可能产生不希望的严重后果。因此,这是一个关键参数,应该需要节点共识,以避免少数参与者对网络的其他部分施加任何突然的有害更改。
规范
在 EIP-1559 之后,将 gasLimit
称为 gasTarget
。
添加的共识约束
从 FORK_BLOCK_NUMBER
开始,header.gasLimit
必须等于 BLOCK_GAS_LIMIT
,其中 BLOCK_GAS_LIMIT
是一个硬编码常量,设置为 12,500,000
。
理由
将 gasLimit 保留在区块头中
虽然可以从区块头中删除 gasLimit
字段,但这会更改要哈希的数据结构,这可能会导致意想不到的后果。因此,将 gasLimit 保留在区块头中更容易。
选择的 Gas 上限
之所以提出 12,500,000
这个值,是因为它是撰写此 EIP 时的当前区块 gas 上限。实际金额可以通过后续的 EIP 进行更改,以避免偏离此 EIP 的核心意图。
向后兼容性
此 EIP 向后兼容。
安全考虑
快速更改 gas 上限可能会更难执行,如果出现需要更改 gas 上限的紧急情况,这可能会成为问题。
版权
版权及相关权利通过 CC0 放弃。
Citation
Please cite this document as:
Philippe Castonguay (@PhABC), "EIP-3382: 硬编码区块 Gas 上限 [DRAFT]," Ethereum Improvement Proposals, no. 3382, March 2021. [Online serial]. Available: https://eips.ethereum.org/EIPS/eip-3382.