ethereum-optimism / ethereum-optimism/optimism

proposer: descendants of pending games can become canonical

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

Description

When a game’s super-root is unavailable (ex: the `superroot_atTimestamp` RPC fails), the proposer marks that game `Pending` and excludes it from the DAG. However, an otherwise-valid child of that pending game can still be inserted into the DAG, selected as canonical head, and extended by the honest proposer.

If the pending ancestor later proves invalid, the entire descendant chain is invalid and proposer bonds may be lost.

## Expected behavior

A game should not become parent-eligible until its full ancestry is known valid. Descendants of pending or unknown parents should remain pending and be reconsidered when their ancestors are validated.

A regression test should cover:

1. Pending game `X`.
2. Valid child `Y` referencing `X`.
3. Verify `Y` is not selected or extended while `X` remains pending.

Because games are scanned newest-first, checking the pending set during individual game fetching is insufficient; ancestry must be resolved after the scan.

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.