New gas proposal

Generated 2026-06-10 07:09:53Z · fork osaka · anchor_rate 100 Mgas/s

Note: this is a bundled snapshot of the analysis output. The accompanying figures (heatmaps and per-parameter provenance plots) are omitted here; the figure-rich version is published on the live analysis site linked from the EIP’s discussions-to thread.

Summary: 18 parameters proposed — 1 increased, 16 decreased, 0 new, 0 unresolved · 0 warnings · 3 poor-fit selections

Contents

Proposed gas parameters

Gas param Current gas Proposed gas Diff Diff %
OPCODE_DIV 5 2 -3 -60%
OPCODE_SDIV 5 2 -3 -60%
OPCODE_MOD 5 2 -3 -60%
OPCODE_SMOD 5 3 -2 -40%
OPCODE_ADDMOD 8 3 -5 -62%
OPCODE_MULMOD 8 4 -4 -50%
OPCODE_KECCAK256_BASE 30 12 -18 -60%
OPCODE_KECCAK256_PER_WORD 6 3 -3 -50%
PRECOMPILE_ECRECOVER 3000 841 -2159 -72%
PRECOMPILE_BLAKE2F_BASE 0 94 +94 n/a
PRECOMPILE_BLAKE2F_PER_ROUND 1 1 0 0%
PRECOMPILE_BLS_G1ADD 375 236 -139 -37%
PRECOMPILE_BLS_G2ADD 600 277 -323 -54%
PRECOMPILE_ECADD 150 108 -42 -28%
PRECOMPILE_ECPAIRING_BASE 45000 8247 -36753 -82%
PRECOMPILE_ECPAIRING_PER_POINT 34000 11712 -22288 -66%
PRECOMPILE_POINT_EVALUATION 50000 23825 -26175 -52%
PRECOMPILE_P256VERIFY 6900 3814 -3086 -45%

Client comparison

Worst client vs. second-worst client per gas parameter. The Ratio column is worst gas / second-worst gas — values close to 1× mean the worst case sits next to the rest of the field, while large ratios flag the worst client as an outlier.

Gas param Worst client Worst gas Second-worst client Second-worst gas Ratio
OPCODE_DIV besu 2 erigon 2 1.00×
OPCODE_SDIV besu 2 erigon 2 1.00×
OPCODE_MOD besu 2 erigon 2 1.00×
OPCODE_SMOD besu 3 erigon 2 1.50×
OPCODE_ADDMOD besu 3 erigon 2 1.50×
OPCODE_MULMOD besu 4 nethermind 4 1.00×
OPCODE_KECCAK256_BASE besu 12 geth 9 1.33×
OPCODE_KECCAK256_PER_WORD nethermind 3 besu 2 1.50×
PRECOMPILE_ECRECOVER erigon 841 geth 781 1.08×
PRECOMPILE_BLAKE2F_BASE erigon 94 besu 41 2.29×
PRECOMPILE_BLAKE2F_PER_ROUND besu 1 erigon 1 1.00×
PRECOMPILE_BLS_G1ADD ethrex 236 besu 175 1.35×
PRECOMPILE_BLS_G2ADD ethrex 277 besu 212 1.31×
PRECOMPILE_ECADD erigon 108 reth 96 1.12×
PRECOMPILE_ECPAIRING_BASE reth 8247 ethrex 8182 1.01×
PRECOMPILE_ECPAIRING_PER_POINT nethermind 11712 ethrex 6162 1.90×
PRECOMPILE_POINT_EVALUATION ethrex 23825 nethermind 23399 1.02×
PRECOMPILE_P256VERIFY ethrex 3814 erigon 1411 2.70×

Per-client proposed gas for each parameter. Cells are colored by log2(proposed / current) — red means the proposal is more expensive than the current gas cost, green means cheaper, and white sits at unchanged. Annotations show the absolute proposed gas value; blank rows are parameters with no prior baseline (see warnings below).

Worst-case provenance per gas param

One collapsible block per gas parameter showing every per-client candidate that the worst-case selector saw. Rows are model combos (the source regression’s test_name, target_opcode, model_coef_name, and any model_by factors — components constant within a parameter are dropped from the label). Cells carry each candidate’s proposed gas; the cell the per-client selector picked is outlined in black. Colors are log2(proposed / current) against that parameter’s baseline on a per-parameter symmetric scale.

Single-combo parameters omitted (see proposal table for the sole estimation): OPCODE_DIV, OPCODE_SDIV, OPCODE_ADDMOD, OPCODE_MULMOD, PRECOMPILE_ECRECOVER, PRECOMPILE_BLS_G1ADD, PRECOMPILE_BLS_G2ADD.

OPCODE_MOD — 4 combos × 6 clients
OPCODE_SMOD — 4 combos × 6 clients
OPCODE_KECCAK256_BASE — 4 combos × 6 clients
OPCODE_KECCAK256_PER_WORD — 4 combos × 6 clients
PRECOMPILE_BLAKE2F_BASE — 2 combos × 6 clients
PRECOMPILE_BLAKE2F_PER_ROUND — 2 combos × 6 clients
PRECOMPILE_ECADD — 5 combos × 6 clients
PRECOMPILE_ECPAIRING_BASE — 2 combos × 6 clients
PRECOMPILE_ECPAIRING_PER_POINT — 2 combos × 6 clients
PRECOMPILE_POINT_EVALUATION — 2 combos × 6 clients
PRECOMPILE_P256VERIFY — 2 combos × 6 clients

Warnings

Missing parameters

None.

Incomplete client coverage

None.

Missing glue adjustments

Priced glue opcodes with a poor fit — 28 (glue_opcode, client) fits skipped `p_value >= glue_contribution_p_value_threshold` (0.05) or `rsquared < glue_contribution_rsquared_threshold` (0.5) — the contribution of these (glue_opcode, client) fits was **skipped** when computing the glue adjustment, so the listed gas params carry a target coefficient that is not net of this glue opcode's runtime on the affected clients. See `glue_opcodes_autogenerated_report.md` for per-fit metrics. | Glue opcode | Affected clients | Affected gas params | | --- | --- | --- | | `AND` | `erigon` (R²), `ethrex` (R²) | — | | `CALLDATALOAD` | `besu` (both), `erigon` (R²), `ethrex` (R²), `geth` (R²), `nethermind` (R²), `reth` (R²) | `OPCODE_ADDMOD`, `OPCODE_MOD`, `OPCODE_MULMOD`, `OPCODE_SMOD` | | `EXP` | `erigon` (R²), `nethermind` (both) | — | | `GT` | `besu` (R²) | `PRECOMPILE_BLAKE2F_BASE`, `PRECOMPILE_ECADD`, `PRECOMPILE_ECPAIRING_BASE`, `PRECOMPILE_P256VERIFY`, `PRECOMPILE_POINT_EVALUATION` | | `JUMP` | `besu` (R²) | `OPCODE_ADDMOD`, `OPCODE_MULMOD` | | `JUMPDEST` | `besu` (R²) | `OPCODE_ADDMOD`, `OPCODE_MULMOD`, `PRECOMPILE_BLAKE2F_BASE`, `PRECOMPILE_ECADD`, `PRECOMPILE_ECPAIRING_BASE`, `PRECOMPILE_ECRECOVER`, `PRECOMPILE_P256VERIFY`, `PRECOMPILE_POINT_EVALUATION` | | `JUMPI` | `besu` (R²), `erigon` (R²) | `PRECOMPILE_BLAKE2F_BASE`, `PRECOMPILE_ECADD`, `PRECOMPILE_ECPAIRING_BASE`, `PRECOMPILE_P256VERIFY`, `PRECOMPILE_POINT_EVALUATION` | | `KECCAK256` | `besu` (R²), `erigon` (R²), `ethrex` (both), `geth` (R²), `nethermind` (both), `reth` (both) | — | | `LT` | `besu` (R²) | — | | `MSTORE` | `reth` (R²) | `OPCODE_KECCAK256_BASE`, `PRECOMPILE_ECPAIRING_BASE`, `PRECOMPILE_ECRECOVER`, `PRECOMPILE_P256VERIFY`, `PRECOMPILE_POINT_EVALUATION` | | `RETURNDATASIZE` | `besu` (R²), `erigon` (R²) | — | | `SELFBALANCE` | `besu` (R²), `nethermind` (R²) | — | | `SWAP` | `besu` (R²) | — |

Poor-fit selections

Rows where the winning fit’s p-value exceeded modeling.poor_fit_p_value_threshold (0.05) or its R² fell below modeling.poor_fit_rsquared_threshold (0.5). The failing threshold(s) are noted alongside each row; selections in ### Winners with poor fit still drive the proposal, while ### Other weak candidates lists losing candidates that the selector dropped in favor of a qualified alternative. See runtime_estimation_autogenerated_report.md for per-fit runtime_ms, pvalue, and rsquared metrics.

Winners with poor fit

Gas param Client Test Target opcode Coef runtime_ms pvalue rsquared Failed
PRECOMPILE_BLAKE2F_PER_ROUND reth test_blake2f_benchmark BLAKE2F num_rounds 0 1 0.9896 p-value
PRECOMPILE_BLS_G1ADD ethrex test_bls12_381 BLS12_G1ADD target_coef 0.002351 0.001 0.05318
PRECOMPILE_BLS_G2ADD ethrex test_bls12_381 BLS12_G2ADD target_coef 0.00277 0.001 0.06885

Other weak candidates

PRECOMPILE_BLAKE2F_PER_ROUND — 1 weak combo | Test | Target opcode | Coef | Combo | Failing clients | | --- | --- | --- | --- | --- | | `test_blake2f_uncachable` | `BLAKE2F` | `num_rounds` | — | `erigon` (p-value), `reth` (p-value) |