Files
chains/aivm
zeekayandHanzo Dev c7aa384e15 aivm: compare the recorded receipt_root unconditionally
verifyImported exists so every validator reaches byte-identical engine state from
the same committed intents, and its comparison was written
`wantRoot != (common.Hash{}) && got != wantRoot`. The zero-hash exemption made the
guarantee opt-out: a proposer recorded intents, wrote an all-zero receipt_root,
and every follower applied those intents and returned nil without ever checking
its resulting engine state matched the proposer's. Proven: a block whose
receipt_root was zeroed while the engine's real root was non-zero verified with
no error.

Nothing honest relied on the exemption. A proposer stamps the engine's own root
(vm.go:622), and before anything settles the root is legitimately zero on both
sides — so plain equality admits every honest block and rejects only a genuine
divergence.

Test: TestVerifyRejectsBlockClaimingZeroReceiptRoot.

Co-authored-by: Hanzo Dev <[email protected]>
2026-07-29 16:48:10 -07:00
..
2026-06-21 20:53:39 -07:00
2026-06-21 20:53:39 -07:00
2026-06-21 20:53:39 -07:00
2026-06-21 20:53:39 -07:00
2026-06-21 20:53:39 -07:00
2026-06-21 20:53:39 -07:00
2026-06-21 20:53:39 -07:00
2026-06-21 20:53:39 -07:00
2026-06-21 20:53:39 -07:00
2026-06-21 20:53:39 -07:00
2026-06-21 20:53:39 -07:00
2026-06-21 20:53:39 -07:00