Evaluated on: · Spec revision: 2026-08-25 · ac450a4ab2 · Inclusion status at snapshot: PFI
Scope at the cutoff. Execution-layer assessment of the Draft EIP-7851 snapshot. The proposal extends EIP-7702 with an ECDSA-disabled delegation prefix, adds the state-writing SETSELFDELEGATE opcode, changes delegated-code recognition, and adds authorization, transaction-validity, and transaction-pool rules.
- Evaluator
- LLMChecklist v2
- Confidence
- Medium
- Under-specified at assessment cutoff
- Yes — 3 criteria affected
- Plausible range
- 23–25 (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
- Modified opcodes3
- Security risks3
- Edge/boundary conditions3
- State-access ordering within opcode execution2
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 opcode byte is TBD. The snapshot also does not fully specify charge and state-access ordering or how its new code write participates in a separate block-level state-gas regime. These omissions are confined to the directly affected anchors.
Plausible total
23–25
recorded score 23 · plausible tiers High
Unresolved questions at the cutoff (4)
- What byte value is assigned to SETSELFDELEGATE_OPCODE?
- At what point is fixed gas charged relative to stack validation, the static check, raw-code access, no-op decisions, and the write?
- Does a successful code replacement incur distinct state gas or affect a state-gas budget or spill path, and if so how?
- Which opcode accesses or writes are recordable in the block-level access list at each gas boundary?
Notable ambiguities noted by the assessor (2)
- Special consideration: gas-boundary vectors multiply across static/non-static context, enabled/disabled prefix, valid/invalid code shape, zero/nonzero delegate, success/no-op, revert/success, and re-entrant/direct execution.
- ECDSA-authenticated transaction is not enumerated by type, so the breadth of sender-code validity coverage must be explicit in tests.
Criterion breakdown
| Criterion | Score | Why this score | Evidence / uncertainty |
|---|---|---|---|
| Modified opcodes | 3 | Existing code-executing opcodes obtain a different result for the new recognized prefix; any such non-gas behavior modification mandates score 3. |
Confidence: High Uncertainty: Existing-operation vectors must be repeated for the second prefix. |
| Security risks | 3 | A defect can permanently affect user control and funds while interacting with multiple critical execution and authorization components, requiring extensive review and fuzzing. |
Confidence: High Uncertainty: Application-level ECDSA verification remains outside the protection. |
| Edge/boundary conditions | 3 | Multiple boundary-prone mechanisms interact, with an elevated matrix across frame locality, re-entrancy, revert, static execution, and raw-code shape. |
Confidence: High Uncertainty: Gas/access ordering at boundary gas amounts is unspecified. |
| State-access ordering within opcode executionUnder-specified | 2 | A new state-accessing and state-writing operation is introduced whose position in the gas/access order must be settled, matching score 2. |
Confidence: High Uncertainty: Ordering relative to the static check, raw-code read, no-op branches, and code write is not specified. |
| New or modified transaction validity mechanisms | 2 | Existing authorization and sender-validity paths gain a state-dependent branch requiring updated vectors, but no redesigned testing infrastructure. |
Confidence: High Uncertainty: ECDSA-authenticated transaction is not enumerated by transaction type, so coverage across existing families must be derived. |
| Patterns affecting pre-existing tests | 2 | Existing delegation and transaction-validation suites need coordinated updates across several paths, but only for the delegated-EOA category. |
Confidence: Medium Uncertainty: The package has no test inventory, so the exact number of pre-existing vectors needing rework is unavailable. |
| Performance risks | 2 | The opcode is locally benchmarkable, but sender-state reads and delegation resolution affect existing pool and execution paths with stated limited impact. |
Confidence: Medium Uncertainty: No benchmarks are packaged; the EIP characterizes execution-load change as small. |
| Cross-EIP interactions | 2 | EIP-7851 depends on and modifies EIP-7702 and needs coordinated ecrecover consideration with EIP-8151; the interactions are important but limited. |
Confidence: High Uncertainty: Only the two explicit numbered interactions are counted; indirect dependencies of supporting documents are excluded. Interacting EIPs: EIP-7702, EIP-8151 |
| Unspecified behavior requiring cross-client consensusUnder-specified | 2 | Clients need agreement on localized details, especially the opcode byte and within-opcode order, before complete vectors can be baselined. |
Confidence: High Uncertainty: Implementation, devnet, and discussion evidence is absent from the sealed package and was not consulted. |
| Added opcodes | 1 | Under this anchor it is one simple opcode: small stack mechanics and constant gas, despite its stateful semantic importance. |
Confidence: High Uncertainty: The opcode byte is TBD, but the count and stack/gas shape are explicit. |
| EVM Gas rule changes | 1 | Adding a fixed charge for one opcode updates the existing opcode gas-cost mechanism; it does not introduce a separate or dynamic execution-gas model. |
Confidence: High Uncertainty: The amount is explicit, but charge ordering relative to checks and state access is unspecified and scored in the state-access-ordering row. |
Show 17 zero-score criteria
| Criterion | Score | Why this score | Evidence / uncertainty |
|---|---|---|---|
| Added precompiles | 0 | No precompile is introduced by this proposal. |
Uncertainty: The companion is an interaction, not part of EIP-7851's mechanism. |
| Modified precompiles | 0 | EIP-7851 modifies no existing precompile logic or gas schedule. |
Uncertainty: Coordination with EIP-8151 is scored under Cross-EIP interactions. |
| Added system contracts | 0 | No system contract is introduced. |
Uncertainty: No system-contract surface appears in the snapshot. |
| Modified system contracts | 0 | No direct or indirect system-contract modification is specified. |
Uncertainty: No system-contract dependency is identified by the package. |
| Blob gas accounting changes | 0 | No blob gas accounting mechanism is introduced or modified. |
Uncertainty: No blob surface appears in the snapshot. |
| State gas accounting changesUnder-specified | 0 | No StateGasCosts rate, state-gas charging site, block budget, reservoir, or spill rule is defined, so the documented proposal scores zero. |
Uncertainty: Integration of this new code-writing path with a separate state-gas regime is materially unspecified and recorded separately. |
| New EVM gas refund | 0 | No gas-refund mechanism is introduced. |
Uncertainty: EIP-7702's refund is not extended or invoked by EIP-7851's opcode. |
| New transaction types | 0 | The proposal introduces no new transaction type. |
Uncertainty: It depends on the existing EIP-7702 transaction mechanism. |
| New block / header fields | 0 | The block and header schemas are unchanged. |
Uncertainty: No block/header surface appears in the snapshot. |
| Encoding changes (RLP/SSZ) | 0 | An account-code marker is outside this anchor's RLP/SSZ scope. |
Uncertainty: EIP-7702 transaction structures are reused without re-encoding. |
| Block syncing changes | 0 | No RLP validation mechanism for block syncing is introduced. |
Uncertainty: Transaction validity affects block acceptance but is not block-RLP validation under this anchor. |
| New fork activation mechanism | 0 | No state or internal variable is modified specifically at activation. |
Uncertainty: Existing enabled delegations are explicitly unchanged. |
| Engine API changes | 0 | The Engine API is unchanged. |
Uncertainty: No Engine API surface appears in the package. |
| Transition-tool interface changes | 0 | No transition-tool interface field or mechanism is specified. |
Uncertainty: Implementing the rules in a transition tool is distinct from changing its external interface. |
| New invariant on pre-existing tests | 0 | The snapshot defines feature-specific expectations but no new assertion that unrelated pre-existing tests must carry. |
Uncertainty: No packaged test-format material identifies a mechanically added invariant outside EIP-7851 cases. |
| New test-framework primitives | 0 | These are expressible with ordinary EVM state and transaction expectations; no new framework abstraction is required by the snapshot. |
Uncertainty: No test-framework implementation is packaged, so this is limited to the specified observable outcomes. |
| Cryptography | 0 | No cryptographic primitive or functionality is introduced or modified; an already recovered identity is gated by raw account code. |
Uncertainty: ECDSA is context, but its algorithm is unchanged. |
Assessment provenance
- Assessed EIP revision
ethereum/EIPs@ac450a4ab2EIPS/eip-7851.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-7851.yaml· sha2566934ca2deb9d - Supporting documents in the sealed package
supporting/eip-7702.md,supporting/eip-8151.md