Discussion topic for EIP-8198
Update Log
- 2026-02-10: EthMagicians thread on Quick Slots in Hegota
- 2026-03-17: Initial draft
External Reviews
None as of 2026-03-17.
Outstanding Issues
None as of 2026-03-17.
Discussion topic for EIP-8198
None as of 2026-03-17.
None as of 2026-03-17.
I believe this EIP should consider for the slot-time-dependent constants it introduces to follow the same pattern EIP-7892 introduced BPO forks.
Rather than hardcoding the new values in the spec, define a SLOT_SCHEDULE (or extend the fork config) that maps epoch → SLOT_DURATION_MS and its derived parameters:
SLOT_SCHEDULE:
- EPOCH: <FORK_EPOCH>
SLOT_DURATION_MS: 8000
BASE_REWARD_FACTOR: 42
INACTIVITY_PENALTY_QUOTIENT: 37748736
CHURN_LIMIT_QUOTIENT: 98304
MIN_PER_EPOCH_CHURN_LIMIT_ELECTRA: 85333333333
MAX_PER_EPOCH_ACTIVATION_EXIT_CHURN_LIMIT: 170666666666
MIN_EPOCHS_FOR_BLOB_SIDECARS_REQUESTS: 6144
MIN_EPOCHS_FOR_DATA_COLUMN_SIDECARS_REQUESTS: 6144
The EIP already frames this as Phase 1 (infrastructure) followed by iterative reductions. If we plan to potentially reduce slot time further a schedule-based approach means those future reductions can be deployed as config-only updates the same way blob scaling works today rather than requiring new EIPs with hardcoded constant tables each time. Not only that, any of the other parameters could potentially be updated without any changes in the software purely with a spec file change.
PR opened with the suggestion: Update EIP-8198: Use SLOT_SCHEDULE for slot-time-dependent constants by smartprogrammer93 · Pull Request #11458 · ethereum/EIPs · GitHub
The SLOT_SCHEDULE idea discussed above now has an upstream-facing executable EL implementation:
https://github.com/ethereum/execution-specs/pull/3473
It is currently one commit / eight files over Amsterdam, with exact validation green through static, spec-tools, focused/full EIP-8198 tests, diff check, exact changed-file-set verification, and immutable head/base checks.
EIP-side proposal: https://github.com/ethereum/EIPs/pull/11458
The narrow design question is whether EIP-8198 should pay the EL refactor cost once so later slot-duration reductions become schedule/config changes rather than new duration-specific execution logic.
Current head: f06d972f496ca9325559f840db45a10cfd6f86e1
Following up on the EL design question I raised above: I built the competing schedule-free implementation and tried to falsify it against the schedule-driven implementation rather than continuing to argue for the latter.
The experiment covers synthetic 12s → 10s → 8s → 6s eras. The competing EL carries fixed fork-local gas-limit, base-fee and blob parameters and has no runtime slot-duration schedule, epoch lookup or slot lookup. It was tested against the schedule-driven implementation as the behavioral oracle across repeated gas scaling, base-fee response, blob parameters, blob pricing and the integer-rounding boundary.
Result: 109/109 focused tests pass. I did not find an execution invariant that requires the EL to retain slot-duration history at runtime. Fork-local reparameterization can preserve the cumulative wall-clock behavior across the tested transitions.
Experiment and exact evidence: [COMPLETED EXPERIMENT] EIP-8198: schedule-free EL survives falsification by chugarchugarr · Pull Request #5 · chugarchugarr/execution-specs · GitHub
Green focused run: [COMPLETED EXPERIMENT] EIP-8198: schedule-free EL survives falsification · chugarchugarr/execution-specs@4cecc23 · GitHub
So I’m withdrawing the stronger version of my earlier claim. The schedule-driven implementation remains useful as an executable oracle and repeated-era regression harness, but the evidence I have now does not establish that the EL itself needs to own the slot-duration schedule. I’ve left that implementation parked unless a future execution rule exposes an invariant that fork-local parameters cannot preserve.
I support adopting a SLOT_DURATION_SCHEDULE (or equivalent fork-config extension) modelled on the BPO pattern introduced by EIP-7892. This approach better matches the phased design of EIP-8198: the initial change establishes the necessary infrastructure, while subsequent slot-duration reductions can be enacted as configuration updates rather than new hard-coded constant tables.
The original single-transition table served mainly as a clear illustration. Replacing it with an explicit schedule keeps the derived parameters (rewards, penalties, churn limits, retention windows, etc.) consistently linked to the active slot duration and reduces long-term coordination cost.
I recommend continuing refinement of the schedule format so that it cleanly supports the piecewise timeline, ratio-based scaling, and the gas-limit transition at the fork boundary. The first activation should remain conservative (current consensus leans toward 10 seconds) pending further performance data.