Viewing run older run · latest of 8

EIP-2780 repricing: updating the cost of ETH transfers

Today every transfer pays a flat 21,000 gas, value or not. We measure the end-to-end cost of each: ZERO_VALUE_TRANSFER for a plain transfer and VALUE_TRANSFER for one that moves value, plus the marginal TX_VALUE_COST between them. Each is a separate per-client, per-case non-negative least squares fit on the runtime of test_ether_transfers_onchain_receivers, converted to proposed gas at the 100 Mgas/s anchor. Each parameter's worst case is the most expensive driver across all clients and cases.

Preliminary results. Clients are still working on their block-access-list (BAL) optimizations, so these gas values are expected to change as that work lands.

Summary

Each row is a gas budget EIP-2780 allots to one parameter over the receiver cases listed (TX_BASE_COST = 12,000, COLD_ACCOUNT_ACCESS = 3,000, TX_VALUE_COST = 6,000). Each cell is that client's worst proposed gas across those cases: green clears the goal, amber is up to 25% over, red is further over. Hover a goal name for the component sum behind it, its parameter(s), and the cases it covers.

Goal Target besuerigonethrexgethnethermindreth
No-value transfer 15,000 12,912 26,975 2,756 10,082 8,675 4,461
Transfer 21,000 18,618 55,702 5,167 19,233 12,187 7,055

The goals are EIP-2780's own component sums, so they differ by how many accounts a transfer touches: a self-transfer touches no second account, an ordinary receiver one (COLD_ACCOUNT_ACCESS) and a delegated receiver two (the delegating account and the one it points at). Away from self, a VALUE_TRANSFER goal is the matching no-value goal plus TX_VALUE_COST; a self-transfer moves value nowhere, so it is charged the bare base cost either way and its row covers both parameters. A client with no fit for a goal's cases shows —.

R² caveats: none — all worst-case drivers have R² > 0.5.

p-value caveats: none — all worst-case drivers have p ≤ 0.05.

Charts

No-value transfer — proposed gas per case vs. goal (15,000) (95% CI)

Transfer — proposed gas per case vs. goal (21,000) (95% CI)

Model fit quality (R², worse of the two regime fits) per (client, case)

Jumpdest cost

Contract (jumpdest) is excluded from the charts above, but still fit every run. This chart shows its proposed-gas diff against Contract — the case it's otherwise closest to in shape — for both parameters, so the cost of the extra JUMP is visible on its own.

Contract (jumpdest) − Contract — proposed gas diff per parameter (95% CI)