Evaluated on: · Spec revision: 2025-07-01 · d386b29b5a
Scope at the cutoff. At the information cutoff, this draft introduced P256VERIFY at address 0x100, accepting exactly 160 input bytes for secp256r1 ECDSA verification and charging a fixed 3450 gas. It specified the curve parameters, encodings, validation checks, verification algorithm, fixed success and failure outputs, and uniform gas consumption on invalid inputs. It aimed to retain RIP-7212 interface compatibility while correcting recovered-point-at-infinity and modular-comparison edge cases; it specified no transaction, block, state, Engine API, or opcode changes.
- Evaluator
- LLMChecklist v2
- Confidence
- Medium
- Under-specified at assessment cutoff
- Yes — 1 criterion affected
- Plausible range
- 10–12 (Low–Medium)
- Assessment cutoff
- 2025-07-02 · EIP revision
d386b29b5a(2025-07-01)
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
- Edge/boundary conditions3
- Added precompiles1
- EVM Gas rule changes1
- Patterns affecting pre-existing tests1
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 specification is materially complete for most constructible cases, but it does not expressly state how the 32-byte message hash becomes the integer used in scalar multiplication, and its absolute no-revert wording does not expressly carve out insufficient supplied gas. Both gaps are localized and have strong intended readings from the adjacent encoding and gas rules.
Plausible total
10–12
recorded score 11 · plausible tiers Low, Medium
Affected criteria (1)
Unresolved questions at the cutoff (2)
- Is message hash h decoded as an unsigned big-endian integer before scalar multiplication?
- Does the no-revert requirement apply only after the fixed precompile gas cost has been supplied?
Notable ambiguities noted by the assessor (2)
- The byte-to-integer interpretation of message hash h is implied but not stated explicitly.
- The unconditional no-revert wording does not explicitly distinguish insufficient supplied gas.
Criterion breakdown
| Criterion | Score | Why this score | Evidence / uncertainty |
|---|---|---|---|
| Edge/boundary conditions | 3 | Multiple independent boundary-prone mechanisms are present, and the recovered infinity and modular-reduction paths require specially constructed cryptographic cases in addition to ordinary adjacent-boundary vectors. This elevated case set matches score 3. |
Confidence: High |
| Added precompiles | 1 | One precompile with constant input length and constant gas cost is a simple precompile under the anchor, exactly matching score 1; cryptographic complexity is scored separately. |
Confidence: High |
| EVM Gas rule changes | 1 | This adds a gas-schedule entry using the existing fixed-cost precompile charging model. It updates an existing gas-accounting mechanism rather than introducing a new dynamic accounting mechanism, matching score 1. |
Confidence: Medium Uncertainty: The score treats addition to the fixed precompile cost schedule as an update to the existing mechanism, rather than as a wholly new gas mechanism. |
| Patterns affecting pre-existing tests | 1 | Existing cases aimed at the 0x100 address or the compatible RIP-7212 interface need only localized expected-result updates for the corrected edge cases. That is a minor subset of pre-existing tests, matching score 1. |
Confidence: Medium Uncertainty: The EIP does not enumerate the pre-existing execution test inventory; the score is limited to tests that exercise address 0x100 or reuse the stated compatible interface and edge cases. |
| Security risks | 1 | Incorrect implementation could affect consensus or users, but the fixed-input verifier is self-contained, can be validated in isolation, and does not alter an existing protocol security invariant. This matches score 1. |
Confidence: Medium Uncertainty: The consensus-failure consequence makes the review important, but the EIP text does not specify interactions with multiple existing critical components that would support the higher anchors. |
| Performance risks | 1 | The introduced computation requires performance validation but can be benchmarked independently without changing existing performance behavior, exactly matching score 1. |
Confidence: High |
| Cryptography | 1 | It introduces one well-known cryptographic mechanism with substantial existing specification and testing resources, exactly matching score 1. |
Confidence: High |
| Cross-EIP interactions | 1 | The sole interaction is a limited compatibility relationship with proposal 7212. Interface and corrected-edge vectors need coordinated consideration, but the new precompile can otherwise be tested independently, matching score 1. |
Confidence: Medium Uncertainty: The referenced proposal is designated RIP-7212 rather than a mainline EIP, but it is the only numbered proposal with an explicit behavioral and interface coupling in the historical text. Interacting EIPs: EIP-7212 |
| Unspecified behavior requiring cross-client consensusUnder-specified | 1 | These are a few localized specification gaps with obvious intended readings: interpret h consistently with the stated big-endian scalar convention and retain ordinary insufficient-gas call behavior. They therefore match score 1 rather than requiring broad re-baselining. |
Confidence: Medium Uncertainty: If the surrounding encoding and ordinary precompile gas conventions are deemed fully determinative, score 0 is plausible; if explicit client agreement is needed before vectors can be baselined, score 2 is plausible. |
Show 19 zero-score criteria
| Criterion | Score | Why this score | Evidence / uncertainty |
|---|---|---|---|
| Added opcodes | 0 | No opcode is introduced, matching score 0. |
|
| Modified opcodes | 0 | No pre-existing opcode behavior is modified, matching score 0. |
|
| Modified precompiles | 0 | Compatibility and corrected semantics relative to RIP-7212 do not modify a pre-existing precompile in this proposal's execution-layer scope, matching score 0. |
Uncertainty: The EIP describes behavioral security fixes relative to deployed Layer 2 RIP-7212 implementations, but frames P256VERIFY as newly introduced here. |
| Added system contracts | 0 | A precompile is scored under the dedicated precompile criterion; the proposal adds no system contract, matching score 0. |
|
| Modified system contracts | 0 | No direct or indirect system-contract modification is specified, matching score 0. |
|
| State-access ordering within opcode execution | 0 | No opcode state access, state-access recording, or ordering of a gas charge relative to state access changes, matching score 0. |
|
| Blob gas accounting changes | 0 | No blob gas accounting mechanism is introduced or modified, matching score 0. |
|
| State gas accounting changes | 0 | No state gas cost or state-gas charging mechanism changes, matching score 0. |
|
| New EVM gas refund | 0 | No gas-refund mechanism is introduced, matching score 0. |
|
| New transaction types | 0 | No new transaction type is introduced, matching score 0. |
|
| New or modified transaction validity mechanisms | 0 | No transaction validity rule or intrinsic gas calculation changes, matching score 0. |
|
| New block / header fields | 0 | No new block or block-header field is introduced, matching score 0. |
|
| Encoding changes (RLP/SSZ) | 0 | A new precompile's byte ABI is not a transaction, block, or protocol-interface RLP/SSZ encoding migration, so the anchor remains score 0. |
|
| Block syncing changes | 0 | No block RLP validation mechanism is introduced, matching score 0. |
|
| New fork activation mechanism | 0 | Ordinary activation of new execution behavior is not the state or internal-variable modification targeted by this anchor, so the score is 0. |
|
| Engine API changes | 0 | No Engine API change is introduced, matching score 0. |
|
| Transition-tool interface changes | 0 | No transition-tool interface field or mechanism is required, matching score 0. |
|
| New invariant on pre-existing tests | 0 | Pre-existing tests gain no additional universal assertion, matching score 0. |
|
| New test-framework primitives | 0 | Existing precompile-call, output, and gas-check primitives suffice for the stated interface, so no new test-framework abstraction is required, matching score 0. |
Uncertainty: The linked vector file was not an allowlisted package source, but its absence does not establish a need for a new framework primitive. |
Assessment provenance
- Assessed EIP revision
ethereum/EIPs@d386b29b5aEIPS/eip-7951.md committed 2025-07-01 · information cutoff 2025-07-02T17:49:36Z- 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-7951.yaml· sha256003238621a43