Evaluated on: · Spec revision: 2023-05-11 · e9b6a228f0
Scope at the cutoff. EIP-5656 (revision e9b6a228, status Review) adds one EVM instruction, MCOPY, at 0xb7. It pops dst, src and length from the stack and copies length bytes of memory from src to dst, behaving as if through an intermediate buffer, so the two regions may overlap. It returns no stack items. Its gas follows the existing W_copy formula: Gverylow + 3 per copied word, plus memory expansion. Memory is expanded only when length > 0 and src+length or dst+length goes past the current memory size. The EIP cites EIP-2929 only to explain why the identity precompile is a costly way to copy memory, and it changes no other opcode, precompile, transaction, header or API.
- Evaluator
- LLMChecklist v3
- Confidence
- High
- Under-specified at assessment cutoff
- Yes — 1 criterion affected
- Plausible range
- 8–9 (Low)
- Assessment cutoff
- 2023-05-25 · EIP revision
e9b6a228f0(2023-05-11)
Score bands · Checklist revision 3
- 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: There are minor textual gaps. The Semantics section gives a gas formula without memory expansion, contradicting the Gas costs section, though the deference to the yellow paper's W_copy rules settles it. The zero-length, out-of-range-offset case is only implied by the length > 0 condition. The Security Considerations section is TBA.
Plausible total
8–9
recorded score 8 · plausible tiers Low
Affected criteria (1)
Unresolved questions at the cutoff (2)
- Does MCOPY with length == 0 and very large (or overflowing) src/dst offsets succeed with no memory expansion charge? The text implies yes but does not say so explicitly.
- Is the Semantics section's gas formula (without memory expansion) just an abbreviation? The Gas costs section suggests it is.
Notable ambiguities noted by the assessor (3)
- The two gas formulas differ: one includes memory_expansion_cost and the other does not.
- Behavior when src+length or dst+length overflows 2^256 is not stated and is assumed to follow existing copy-opcode rules.
- Security Considerations is TBA.
Criterion breakdown
| Criterion | Score | Why this score | Evidence / uncertainty |
|---|---|---|---|
| Added opcodes | 2 | Exactly one instruction is added. It has no immediate data and fixed stack effects, but its gas is dynamic (per word plus memory expansion), which makes it complex. That meets level 2. |
Confidence: High |
| Edge/boundary conditions | 2 | Several independent boundary-sensitive rules are introduced: the zero-length exemption from expansion; expansion driven by max(src+length, dst+length), including out-of-gas and offset-overflow limits; per-word rounding of copy cost; and forward versus backward overlap correctness. Each can be tested mostly on its own axis, so there is no elevated matrix. |
Confidence: Medium Uncertainty: Treating src, dst and length as one interacting matrix for expansion and overlap could support level 3. These dimensions are largely separable, however. |
| Patterns affecting pre-existing tests | 1 | Rework is limited to baseline cases that use 0xb7 as an undefined or invalid opcode, such as invalid-opcode enumeration tests. That is a parameter case within one behavioral family. |
Confidence: Medium Uncertainty: No test suite was supplied, so the affected cases are estimated from the specification. |
| Security risks | 1 | The security conditions are local: memory bounds and offset overflow, zero-length handling, and correct overlapping copies. They can be checked within the EVM interpreter without changing other components' assumptions. |
Confidence: Medium Uncertainty: The Security Considerations section is a placeholder (TBA). |
| Performance risks | 1 | The changed workload is per-word memory copying, including large overlapping copies, at 3 gas per word. Component benchmarks of MCOPY throughput against its gas price are enough; no subsystems are coupled. |
Confidence: Medium Uncertainty: No benchmark data was supplied. |
| Unspecified behavior requiring cross-client consensusUnder-specified | 1 | There are local omissions and textual inconsistencies: the Semantics gas formula omits memory expansion, and the zero-length, out-of-range-offset case is only implied. The surrounding rules, the deferral to W_copy, and the explicit length > 0 condition support a single intended outcome. |
Confidence: Medium Uncertainty: The case where src+length or dst+length overflows is not discussed explicitly. It presumably follows existing copy-opcode memory rules. |
Show 22 zero-score criteria
| Criterion | Score | Why this score | Evidence / uncertainty |
|---|---|---|---|
| Modified opcodes | 0 | No existing instruction's semantics or availability change. Turning an undefined byte into MCOPY is counted under Added opcodes. |
|
| Added precompiles | 0 | No new precompile. |
|
| Modified precompiles | 0 | No precompile semantics or gas changes. |
|
| Added system contracts | 0 | No system contract is added. |
|
| Modified system contracts | 0 | No existing system contract changes. |
|
| EVM Gas rule changes | 0 | No existing gas rule or parameter changes, and no new accounting mechanism is added. The new instruction is charged under the existing W_copy and memory-expansion rules, so gas results for baseline operations are unchanged. The new opcode's own gas tests are counted under Added opcodes and Edge conditions. |
Uncertainty: A reviewer could treat adding a member to the W_copy schedule as a level-1 change. The rubric's exclusion of ordinary use of existing rules supports 0. |
| State-access ordering within opcode execution | 0 | MCOPY does not access state, and no existing instruction's state-access or gas-charge ordering changes. |
|
| Blob gas accounting changes | 0 | No blob-gas accounting changes. |
|
| State gas accounting changes | 0 | No state-gas accounting changes. |
|
| New EVM gas refund | 0 | No refund mechanism is introduced. |
|
| New transaction types | 0 | No new transaction type. |
|
| New or modified transaction validity mechanisms | 0 | No transaction-validity changes. |
|
| New block / header fields | 0 | No new header or block member. |
|
| Encoding changes (RLP/SSZ) | 0 | No schema or codec changes. |
|
| Block syncing changes | 0 | Execution-rule change only. |
|
| New fork activation mechanism | 0 | Only a rule selection at the fork; no activation-specific state transition. |
|
| Engine API changes | 0 | No Engine API changes. |
|
| Transition-tool interface changes | 0 | No transition-tool input, output or protocol changes are required. |
|
| New invariant on pre-existing tests | 0 | Baseline tests need no additional assertion. |
|
| New test-framework primitives | 0 | Memory results can be checked by writing them to storage or returning them with existing opcodes. No new abstraction is needed. |
|
| Cryptography | 0 | No cryptographic mechanism changes. |
|
| Cross-EIP interactions | 0 | MCOPY does not interact with EIP-2929's warm/cold access sets or call pricing. The citation is motivational only, so no coordinated cross-EIP cases are needed. |
|
Assessment provenance
- Assessed EIP revision
ethereum/EIPs@e9b6a228f0EIPS/eip-5656.md committed 2023-05-11 · information cutoff 2023-05-25- Rubric
- Checklist revision 3 ·
ethspecs/pm@fe2f793b03 - Evaluator
- Opus 5.5 (
claude-opus-5-5) at high effort, one tool-less call per EIP · isolationbubblewrap_claude_p_no_tools_v1 - Source record
- Frozen research record
research/tasks/10-opus-v3-reassessment/retrospective/outputs/assessments/cancun/eip-5656.yaml· sha2567b6f89f23886 - Supporting documents supplied with the EIP
supporting/eip-2929.md