ethereum-optimism / ethereum-optimism/optimism

op-challenger: should challenge ZK child games built on locally-invalid parent games

Open
#21,445 0 comments 0 reactions 1 assignee Claimed by @wwared View on GitHub
proofs: ZK
Dominant language
Go
Stars
6.5k
Forks
4k
Avg merge
2d 15h
Merged PRs (30d)
145

Description

The ZK dispute game contract treats child games as invalid if their parent game resolves `CHALLENGER_WINS`. However, op-challenger’s ZK actor currently only uses parent invalidity when deciding whether to resolve a child game, not when deciding whether to challenge it.

This creates a timing issue for child games whose own output root is canonical, but whose starting proposal is invalid because it builds on an invalid parent. Note that the child game will still resolve correctly as `CHALLENGER_WINS` if unchallenged, but the challenger loses on an opportunity to claim its proposer bond.

## Expected Behavior

op-challenger should challenge a ZK child game during the child’s normal challenge period when the child is built on a parent game that op-challenger can locally determine is invalid, even if the child’s own output root is canonical.

The challenge decision should consider:

- The child’s own output root validity.
- The validity of the child’s parent/starting proposal, as determined locally by op-challenger.

It should not require waiting for the parent game to resolve on-chain as `CHALLENGER_WINS`.
Fixing this avoids the problem in https://github.com/ethereum-optimism/optimism/issues/19743 where an invalid game resolves without a bond recipient.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.