-
Notifications
You must be signed in to change notification settings - Fork 565
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
1 changed file
with
62 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,62 @@ | ||
<pre> | ||
BEP: 310 | ||
Title: Implement EIP-3651: Warm COINBASE | ||
Status: Draft | ||
Type: Standards | ||
Created: 2023-10-30 | ||
</pre> | ||
|
||
|
||
# BEP-310: Warm COINBASE | ||
|
||
- [BEP-310: Warm COINBASE](#bep-310-warm-coinbase) | ||
- [1. Summary](#1-summary) | ||
- [2. Abstract](#2-abstract) | ||
- [3. Motivation](#3-motivation) | ||
- [4. Specification](#4-specification) | ||
- [5. Rationale](#5-rationale) | ||
- [6. Backwards Compatibility](#6-backwards-compatibility) | ||
- [7. Security Considerations](#7-security-considerations) | ||
- [8. License](#8-license) | ||
- [9. Reference](#9-reference) | ||
|
||
|
||
## 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](./eip-2929.md). | ||
This gas cost mismatch can incentivize alternative payments besides ETH, such as [ERC-20](./eip-20.md), 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 by `COINBASE` (`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](https://creativecommons.org/publicdomain/zero/1.0/). | ||
|
||
## 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. |