BEP-311: Implement EIP-3651 Warm COINBASE #311
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
BEP-311: Implement EIP-3651 Warm COINBASE
1. Summary
As part of Shanghai upgrade, EIP-3651: Warm COINBASE is required to be implemented to BSC.
2. Abstract
The
COINBASE
address shall be warm at the start of transaction execution, in accordance with the actual cost of reading that account.3. Motivation
Direct
COINBASE
payments are becoming increasingly popular because they allow conditional payments, which provide benefits such as implicit cancellation of transactions that would revert.But accessing
COINBASE
is overpriced; the address is initially cold under the access list framework introduced in EIP-2929.This gas cost mismatch can incentivize alternative payments besides ETH, such as ERC-20, but ETH should be the primary means of paying for transactions on Ethereum.
4. Specification
At the start of transaction execution,
accessed_addresses
shall be initialized to also include the address returned byCOINBASE
(0x41
).5. Rationale
The addresses currently initialized warm are the addresses that should already be loaded at the start of transaction validation.
The
ORIGIN
address is always loaded to check its balance against the gas limit and the gas price.The
tx.to
address is always loaded to begin execution.The
COINBASE
address should also be always be loaded because it receives the block reward and the transaction fees.6. Backwards Compatibility
There are no known backward compatibility issues presented by this change.
7. Security Considerations
There are no known security considerations introduced by this change.
8. License
The content is licensed under CC0.
9. Reference
William Morriss (@wjmelements), "EIP-3651: Warm COINBASE," Ethereum Improvement Proposals, no. 3651, July 2021. [Online serial]. Available: https://eips.ethereum.org/EIPS/eip-3651.