DCIPs/EIPS/eip-3651.md

47 lines
1.8 KiB
Markdown

---
eip: 3651
title: Warm COINBASE
description: Starts the `COINBASE` address warm
author: William Morriss (@wjmelements)
discussions-to: https://ethereum-magicians.org/t/eip-3651-warm-coinbase/6640
status: Last Call
last-call-deadline: 2023-03-28
type: Standards Track
category: Core
created: 2021-07-12
requires: 2929
---
## Abstract
The `COINBASE` address shall be warm at the start of transaction execution, in accordance with the actual cost of reading that account.
## 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.
## Specification
At the start of transaction execution, `accessed_addresses` shall be initialized to also include the address returned by `COINBASE` (`0x41`).
## 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.
## Backwards Compatibility
There are no known backward compatibility issues presented by this change.
## Security Considerations
There are no known security considerations introduced by this change.
## Copyright
Copyright and related rights waived via [CC0](../LICENSE.md).