Skip to content

Commit

Permalink
BEP-310: Warm COINBASE
Browse files Browse the repository at this point in the history
  • Loading branch information
buddh0 committed Oct 30, 2023
1 parent bfe4fdb commit fec0bad
Showing 1 changed file with 62 additions and 0 deletions.
62 changes: 62 additions & 0 deletions BEPs/BEP-310.md
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.

0 comments on commit fec0bad

Please sign in to comment.