Evaluated on: · Spec revision: 2026-08-25 · ac450a4ab2 · Inclusion status at snapshot: PFI
Scope at the cutoff. Execution-layer assessment of the sealed Draft snapshot of EIP-8151. The proposal changes the existing ecRecover precompile so successful recovery performs an EIP-2929-priced raw-code account access and suppresses recovered addresses whose code is neither empty nor an EIP-7702 delegation indicator. Consensus-layer behavior is out of scope; no such surface is specified.
- Evaluator
- LLMChecklist v2
- Confidence
- Medium
- Under-specified at assessment cutoff
- Yes — 2 criteria affected
- Plausible range
- 21–23 (Medium–High)
- Snapshot
- 2026-08-25 · EIP revision
ac450a4ab2(2026-08-25)
Score bands · Checklist revision 2
- Low <12
- Medium 12–22
- High ≥23
28 criteria scored 0–3 (4 in exceptional cases; cross-EIP interactions is uncapped); nominal maximum 84.
Complexity profile
Each segment is one criterion's contribution to the LLM total. Hover or focus a segment for its score and rationale.
Top complexity drivers
Under-specified at assessment cutoff: Yes
The EIP text available at the assessment cutoff left material behavior unresolved. The affected criteria and the plausible total range record that uncertainty.
Why: The proposal does not completely order recovery, gas sufficiency, accessed-address warming, and the raw-code read when a successful recovery has insufficient gas for the added EIP-2929 charge. The normative steps and split reference functions therefore do not fix the consensus-visible outcome at every gas boundary.
Plausible total
21–23
recorded score 22 · plausible tiers Medium, High
Unresolved questions at the cutoff (2)
- If recovery succeeds but the call cannot pay the warm or cold surcharge, is recovered_address added to accessed_addresses before the call fails?
- Is the raw-code read attempted only after the entire surcharge is confirmed available, and what access is recorded at each exact gas boundary?
Notable ambiguities noted by the assessor (2)
- Special consideration: recovery success or failure, warm or cold status, static or non-static call context, permitted or disallowed code, later reversion or success, and exact gas sufficiency create a multiplicative test matrix rather than independent additive cases.
- The normative specification composes dynamic gas and raw-code permission, while the reference implementation presents them separately and omits an integrated gas call from its ecRecover function.
Criterion breakdown
| Criterion | Score | Why this score | Evidence / uncertainty |
|---|---|---|---|
| Modified precompiles | 3 | This is a behavior modification to one now-complex precompile: its output, gas, state access, and transaction access status all depend on recovery and account state. |
Confidence: High Uncertainty: The exact access/gas boundary is open, but the specified modification is complex regardless of that resolution. |
| Security risks | 3 | The proposal substantially changes security assumptions across a critical authorization primitive, immutable contracts, account-code migration, and cross-domain proof systems, requiring extensive state- and context-aware review and fuzzing. |
Confidence: High Uncertainty: The EIP describes the affected security surfaces clearly, although the package contains no implementation or test evidence by design. |
| Edge/boundary conditions | 3 | Multiple boundary-prone mechanisms form an elevated matrix: recovery success, code shape, warm/cold status, call context and reversion, and gas just below, at, or above the required charge must be crossed rather than tested independently. |
Confidence: High Uncertainty: Exact gas-boundary warming behavior is unspecified, but the elevated case matrix exists under any resolution. |
| Cross-EIP interactions | 3 | Coordinated vectors must cover EIP-2929 warm/cold accounting, EIP-3607 code restriction semantics, EIP-7702 raw delegation indicators, and changed EIP-2612-style authorization behavior. These are strong dependencies across multiple existing mechanisms, with four identified EIPs but no uncapped bonus beyond the base score. |
Confidence: High Uncertainty: EIP-2612's sealed supporting file is only a move notice, so its interaction is grounded in EIP-8151's own explicit permit discussion. Interacting EIPs: EIP-2612, EIP-2929, EIP-3607, EIP-7702 |
| State-access ordering within opcode executionUnder-specified | 2 | A new state-accessing operation is introduced within execution of calls to the precompile. Its position after successful recovery, and relative to dynamic charging and the code read, creates consensus-visible gas and access-set boundaries. |
Confidence: Medium Uncertainty: The text does not fully determine whether a recovered address becomes warm when the call cannot pay the added warm/cold charge. |
| Patterns affecting pre-existing tests | 2 | A considerable subset of pre-existing ecRecover success and gas vectors needs post-fork variants, but the rework remains concentrated in the ecRecover call category rather than diverse execution behavior. |
Confidence: Medium Uncertainty: The sealed package contains no test inventory, so the size of the affected pre-existing subset cannot be counted directly. |
| Performance risks | 2 | Database and cache effects cannot be fully measured as an isolated pure precompile benchmark, but the added work is limited to successful ecRecover calls and one recovered-account access per invocation. |
Confidence: Medium Uncertainty: The package gives gas pricing but no workload measurements for ecRecover frequency or code-read cost. |
| Unspecified behavior requiring cross-client consensusUnder-specified | 2 | Client agreement is needed for a localized set of gas-sufficiency and warming cases before precise vectors can be baselined; the core return and account-code rules are otherwise explicit. |
Confidence: Medium Uncertainty: The intended ordering may be apparent to implementers, but it is not fully determined by the sealed normative text and pseudocode. |
| EVM Gas rule changes | 1 | The proposal updates ecRecover to use an existing EIP-2929 account-access gas mechanism; it does not introduce a new gas-accounting model. |
Confidence: High Uncertainty: The warm/cold amounts and success/failure split are explicit; exact out-of-gas sequencing is recorded separately as under-specification. |
| New invariant on pre-existing tests | 1 | Existing tests that successfully invoke ecRecover gain a narrow new transaction-access invariant even when their original logic is unrelated to EIP-8151. |
Confidence: Medium Uncertainty: The package does not describe which pre-existing harness outputs expose the ephemeral accessed-address set. |
Show 18 zero-score criteria
| Criterion | Score | Why this score | Evidence / uncertainty |
|---|---|---|---|
| Added opcodes | 0 | No opcode is added. |
Uncertainty: No material uncertainty in the package. |
| Modified opcodes | 0 | No pre-existing opcode behavior is modified as such. |
Uncertainty: Call-path ordering is scored separately from opcode-result modification. |
| Added precompiles | 0 | No precompile is added. |
Uncertainty: No material uncertainty in the package. |
| Added system contracts | 0 | No system contract is added. |
Uncertainty: No material uncertainty in the package. |
| Modified system contracts | 0 | No pre-existing system contract is directly or indirectly modified. |
Uncertainty: Precompiles are assessed under their dedicated anchors. |
| Blob gas accounting changes | 0 | No blob gas accounting mechanism is added or changed. |
Uncertainty: No material uncertainty in the package. |
| State gas accounting changes | 0 | Reading raw code is an account access, not a state write, and no state gas mechanism or rate changes. |
Uncertainty: No material uncertainty in the package. |
| New EVM gas refund | 0 | No EVM gas-refund mechanism is introduced. |
Uncertainty: No material uncertainty in the package. |
| New transaction types | 0 | No new transaction type is introduced. |
Uncertainty: EIP-7702 is a dependency, not a transaction type introduced by EIP-8151. |
| New or modified transaction validity mechanisms | 0 | Existing transaction validity mechanisms are not changed. |
Uncertainty: The proposal borrows EIP-3607's account-code restriction concept but does not alter EIP-3607 transaction validation. |
| New block / header fields | 0 | No new block or header field is introduced. |
Uncertainty: No material uncertainty in the package. |
| Encoding changes (RLP/SSZ) | 0 | The proposal introduces no encoding change at a scored interface. |
Uncertainty: No material uncertainty in the package. |
| Block syncing changes | 0 | No block encoding or syncing validation mechanism is introduced. |
Uncertainty: No material uncertainty in the package. |
| New fork activation mechanism | 0 | Activation is an ordinary behavior switch without an activation-block mutation. |
Uncertainty: No material uncertainty in the package. |
| Engine API changes | 0 | The Engine API is unchanged. |
Uncertainty: No material uncertainty in the package. |
| Transition-tool interface changes | 0 | Existing state-transition inputs suffice; no interface field or mechanism is added. |
Uncertainty: No material uncertainty in the package. |
| New test-framework primitives | 0 | The package provides no requirement for a new test-framework primitive. |
Uncertainty: No test-framework design is included, so this zero reflects the absence of a demonstrated primitive requirement in the sealed evidence. |
| Cryptography | 0 | No cryptographic algorithm or recovery functionality is introduced or modified. |
Uncertainty: No material uncertainty in the package. |
Assessment provenance
- Assessed EIP revision
ethereum/EIPs@ac450a4ab2EIPS/eip-8151.md committed 2026-08-25 · information cutoff 2026-08-25T11:56:58Z- Rubric
- Checklist revision 2 ·
ethspecs/pm@3d8c0128c5 - Evaluator
- gpt-5.6-sol at xhigh reasoning effort · isolation
bubblewrap_one_eip_capsule_v1 - Source record
- Frozen research record
research/tasks/08-hegota-prospective-complexity-assessment/outputs/assessments/hegota-pfi-2026-08-26/eip-8151.yaml· sha256cf4ed273e02a - Supporting documents in the sealed package
supporting/eip-2612.md,supporting/eip-2929.md,supporting/eip-3607.md,supporting/eip-7702.md