Evaluated on: · Spec revision: 2024-11-26 · b16c055363
Scope at the cutoff. At the selected draft revision, EIP-7823 modified the EIP-198 MODEXP precompile by limiting each of its three declared input lengths to 1024 bytes. An over-limit length was specified to stop the precompile, return an error, and consume all gas, while the existing pricing and allowed-input computation were otherwise left unchanged. The draft identified the change as backwards incompatible, but its compatibility and security discussions remained incomplete.
- Evaluator
- LLMChecklist v2
- Confidence
- Medium
- Under-specified at assessment cutoff
- Yes — 2 criteria affected
- Plausible range
- 12–14 (Medium)
- Assessment cutoff
- 2025-01-23 · EIP revision
b16c055363(2024-11-26)
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 fixes the numerical threshold and states that invalid input consumes all gas, but it does not define the precise consensus-visible form of the returned error or the ordering of the bound check relative to EIP-198's parsing and gas calculation. The unfinished compatibility and security sections also leave the consequences of that failure path unanalyzed. The missing behavior is localized to over-limit MODEXP calls.
Plausible total
12–14
recorded score 13 · plausible tiers Medium
Affected criteria (2)
Unresolved questions at the cutoff (3)
- What exact precompile-call success flag and return-data result does "returns an error" require?
- Is the length bound checked before the existing EIP-198 gas calculation and before any variable-length input is accessed?
- Are all combinations of multiple over-limit length fields required to have exactly the same failure result and gas outcome?
Notable ambiguities noted by the assessor (3)
- The phrase "returns an error" does not specify the call success indicator or return data for an over-limit precompile invocation.
- The draft does not state the order of the new limit check relative to the existing dynamic gas calculation and input parsing.
- Backwards compatibility and security analysis are expressly incomplete at the selected revision.
Criterion breakdown
| Criterion | Score | Why this score | Evidence / uncertainty |
|---|---|---|---|
| Modified precompiles | 2 | This is a behavior modification to one existing complex, variable-input and dynamically priced precompile, which directly matches the score-2 anchor. |
Confidence: High Uncertainty: The exact error representation is unspecified, but the existence of a consensus-visible behavior modification is unambiguous. |
| Patterns affecting pre-existing tests | 2 | Existing MODEXP vectors for oversized or specially crafted length fields must be reworked around the new validation outcome. This is a meaningful subset of that precompile's tests, but it is confined to the contrived class of over-limit inputs, matching the score-2 anchor. |
Confidence: Medium Uncertainty: The package contains no test inventory, so the exact fraction of pre-existing MODEXP vectors affected cannot be counted. |
| Security risks | 2 | The new check interacts with the existing precompile's parsing, dynamic gas, and failure behavior. A boundary or sequencing mismatch could create a consensus divergence, warranting targeted review and fuzzing of this limited component; this matches the score-2 anchor rather than an ecosystem-wide score 3. |
Confidence: Medium Uncertainty: The security section is unfinished, so the historical text does not resolve all compatibility and failure-propagation risks. |
| Cross-EIP interactions | 2 | The proposal directly modifies EIP-198 and requires coordinated tests of its parsing and gas rules, although that interaction is limited to one EIP and one precompile. This matches the score-2 anchor. Interacting EIPs: 198. |
Confidence: High Interacting EIPs: EIP-198 |
| Unspecified behavior requiring cross-client consensusUnder-specified | 2 | Clients can agree on the 1024-byte threshold, but tests still need a precise consensus interpretation of the localized new failure path and when it is selected. That requires agreement before baselining and matches score 2; it does not expose a broad, previously unobservable behavior of the score-3 kind. |
Confidence: High Uncertainty: General precompile-call conventions may make parts of "returns an error" obvious to implementers, but those conventions are not specified in the sealed sources. |
| EVM Gas rule changes | 1 | The all-gas failure rule updates gas treatment for an existing precompile, but it does not introduce a new general gas-accounting mechanism. This matches the score-1 anchor for updating an existing mechanism. |
Confidence: High Uncertainty: The draft does not specify the exact sequencing of the limit check relative to the existing gas calculation, but the stated all-gas outcome supports the primary score. |
| Performance risks | 1 | The new early-rejection path should be performance-validated, but it is self-contained, benchmarkable in isolation, and leaves allowed-input computation unchanged. This matches the score-1 anchor. |
Confidence: Medium Uncertainty: The draft supplies no performance plan or benchmark data, so validation effort is inferred only from the specified mechanism. |
| Edge/boundary conditionsUnder-specified | 1 | The proposal introduces one threshold mechanism that needs exact-limit and just-over-limit cases for each of three fields. Although it sits atop variable-length parsing, it remains one localized boundary-prone mechanism, matching the score-1 anchor. |
Confidence: Medium Uncertainty: The unspecified sequencing and error semantics may add coupled boundary cases; this is reflected in the under-specification range rather than in a higher primary score. |
Show 20 zero-score criteria
| Criterion | Score | Why this score | Evidence / uncertainty |
|---|---|---|---|
| Added opcodes | 0 | No opcode is added, matching the score-0 anchor. |
|
| Modified opcodes | 0 | No pre-existing opcode behavior is modified or deprecated, so the score-0 anchor applies. |
|
| Added precompiles | 0 | No new precompile is introduced, so the score-0 anchor applies. |
|
| Added system contracts | 0 | No system contract is added, so the score-0 anchor applies. |
|
| Modified system contracts | 0 | A precompile behavior change is scored in the precompile criterion and does not directly or indirectly modify a system contract. The score-0 anchor applies. |
|
| State-access ordering within opcode execution | 0 | The precompile validation change neither accesses state nor moves a gas charge relative to a state access, so the score-0 anchor applies. |
|
| Blob gas accounting changes | 0 | No blob gas accounting mechanism is introduced or modified, matching the score-0 anchor. |
|
| State gas accounting changes | 0 | There is no state-gas cost, charging site, budget, reservoir, or spill-path change, so the score-0 anchor applies. |
|
| New EVM gas refund | 0 | No refund mechanism is introduced, matching the score-0 anchor. |
|
| New transaction types | 0 | No transaction type is introduced, matching the score-0 anchor. |
|
| New or modified transaction validity mechanisms | 0 | Existing transaction validity rules and intrinsic gas calculations are not modified, so the score-0 anchor applies. |
|
| New block / header fields | 0 | No new block or header field is introduced, matching the score-0 anchor. |
|
| Encoding changes (RLP/SSZ) | 0 | There is no transaction, block, or interface-level encoding change, so the score-0 anchor applies. |
|
| Block syncing changes | 0 | No block-RLP validation mechanism requiring client syncing is introduced, so the score-0 anchor applies. |
|
| New fork activation mechanism | 0 | Ordinary fork-gated rule activation is not the special activation-block modification described by the positive anchor. The score-0 anchor applies. |
|
| Engine API changes | 0 | There is no Engine API change, matching the score-0 anchor. |
|
| Transition-tool interface changes | 0 | Existing transition-tool interfaces suffice, so the score-0 anchor applies. |
|
| New invariant on pre-existing tests | 0 | Tests unrelated to this EIP do not gain a universal or additional assertion; only tests of the changed MODEXP input class need different logic. The score-0 anchor applies. |
|
| New test-framework primitives | 0 | These outcomes can be expressed with ordinary precompile call, error, and gas assertions; the proposal does not require a new reusable framework abstraction. The score-0 anchor applies. |
Uncertainty: The sealed package does not describe the test framework, but no novel expectation type is implied by the EIP text. |
| Cryptography | 0 | No new cryptographic mechanism or algorithm is introduced, and the computation for allowed inputs is unchanged. Merely restricting the input domain does not trigger a positive cryptography anchor. |
|
Assessment provenance
- Assessed EIP revision
ethereum/EIPs@b16c055363EIPS/eip-7823.md committed 2024-11-26 · information cutoff 2025-01-23T23:05:03Z- 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/05-retrospective-complexity-assignment/outputs/fork-eips/osaka/eip-7823.yaml· sha256181572e1b002 - Supporting documents in the sealed package
supporting/eip-198.md