EIP-3651 COINBASE Starts Warm (Warm COINBASE)

Final · Fees & gas · EIP status Final · created 2021-07-12

Makes the COINBASE block proposer reward address warm from the start of a transaction, lowering the gas cost of accessing this address to match its actual cost.

Why it is needed

Payments that send ETH directly to COINBASE, the reward address of the block proposer, are increasingly common. They allow conditional payments that happen only when conditions are met, and if the transaction fails and reverts, the payment is automatically cancelled as well. However, under the access list scheme introduced by EIP-2929, the COINBASE address is classified as cold (not yet read) at the start of a transaction, so the first access incurs an expensive gas cost. Since the node must always read this address anyway, the price is higher than the actual cost. If this price mismatch continues, it creates an incentive to pay with other means such as ERC-20 tokens instead of ETH, and this proposal is motivated by the view that ETH should be the primary means of paying for transactions on Ethereum.

What changes

Today

After EIP-3651

Who is affected

In depth

Specification: add COINBASE to accessed_addresses

When transaction execution starts, accessed_addresses is initialized to also include the address returned by the COINBASE opcode (0x41). Under the EIP-2929 scheme, addresses in this set are treated as warm, and the warm cost applies to later accesses. This is a small EIP whose specification change is this single line.

Rationale: an address that is always loaded anyway

The addresses initialized as warm from the start are the addresses that must already be loaded when transaction validation begins. The ORIGIN address is always loaded to check the balance against the gas limit and gas price, and the tx.to address is always loaded to start execution. The COINBASE address is also the address that receives the block reward and transaction fees, so it must always be loaded. Treating it as warm therefore matches the actual read cost.

Motivation: direct COINBASE payments and the price mismatch

Paying directly to COINBASE is increasingly used because it enables conditional payments and implicitly cancels the payment of a transaction that would revert. However, under the access list scheme of EIP-2929, COINBASE starts cold, so the access price is overstated. The original text states that this mismatch can create an incentive to use alternative payment means such as ERC-20 instead of ETH, and that ETH should be the primary means of transaction payment on Ethereum.

Compatibility and security

The original text states that this change has no known backward compatibility issues and no known security considerations.

Status and prerequisites

The status of this EIP is Final, meaning its content is settled. It lists EIP-2929 as a prerequisite (requires) and works on top of the cold and warm access cost scheme.

Original EIP · ← EIPs