Skip to content

Fix EIP-8025 witness generation to pass EEST zkevm fixtures #20534

@awskii

Description

@awskii

Context

PR #20533 added a test suite validating debug_executionWitness against 93 EIP-8025 fixtures from ethereum/execution-spec-tests zkevm@v0.3.3. All 93 fixtures run but are marked as expected failures due to mismatches between Erigon's witness output and the reference.

Root causes to fix

  1. State node ordering (52% of tests) — Erigon emits MPT state nodes in a different order than the spec expects
  2. Extra state nodes (48% of tests) — Erigon includes nodes beyond what the spec requires (superset)
  3. Codes ordering (99% of tests) — Erigon sorts bytecodes by keccak256 hash; spec expects access-order
  4. Missing parent block headers (99% of tests) — Erigon does not include parent headers in the witness

Location

All fixes are in rpc/jsonrpc/debug_execution_witness.go and surrounding witness generation code.

Done when

  • All 93 fixtures pass without bt.Fails(".") annotation
  • bt.Fails line removed from execution/tests/eest_zkevm_witness/witness_test.go

Related

Metadata

Metadata

Assignees

Labels

Type

No type
No fields configured for issues without a type.

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions