Skip to content

feat(L1): bind aggregate proofs to ProtocolVersions schedule#359

Open
PelleKrab wants to merge 1 commit into
mainfrom
proof-schedule-binding
Open

feat(L1): bind aggregate proofs to ProtocolVersions schedule#359
PelleKrab wants to merge 1 commit into
mainfrom
proof-schedule-binding

Conversation

@PelleKrab

Copy link
Copy Markdown
Contributor

Summary

Builds on #353.

Pins each AggregateVerifier game to the ProtocolVersions.scheduleId() that is active when the game
is initialized, and includes that pinned value in the TEE and ZK proof journals.

  • scheduleId snapshot: games read PROTOCOL_VERSIONS.scheduleId() once during initialization and
    store it as scheduleId
  • proof binding: TEE and ZK journal hashes now commit to the pinned schedule ID, so proofs are
    bound to the upgrade schedule that existed when the game was created
  • deployment wiring: standard and dev multiproof deployment flows now pass the ProtocolVersions
    proxy into AggregateVerifier
  • interface/tests: IAggregateVerifier exposes PROTOCOL_VERSIONS and scheduleId; tests cover
    that later schedule changes do not alter an initialized game's pinned value

Test plan

  • forge test --match-path test/L1/proofs/AggregateVerifier.t.sol
  • forge test --match-path test/L1/proofs/DisputeGameFactory.t.sol
  • forge test --match-path test/L1/OptimismPortal2.t.sol
  • forge test --match-path 'test/L1/proofs/*.t.sol'
  • forge fmt --check

@PelleKrab PelleKrab force-pushed the proof-schedule-binding branch from 641b312 to 0964d31 Compare July 9, 2026 17:07
@PelleKrab PelleKrab force-pushed the dynamic-hardfork-protocol-id branch from 0570814 to 7cb1c5d Compare July 9, 2026 17:18
@PelleKrab PelleKrab force-pushed the proof-schedule-binding branch from 0964d31 to 9c49406 Compare July 9, 2026 17:20
@PelleKrab PelleKrab force-pushed the dynamic-hardfork-protocol-id branch from 7cb1c5d to e1ebc49 Compare July 9, 2026 17:39
@PelleKrab PelleKrab force-pushed the proof-schedule-binding branch 3 times, most recently from a3fbbb6 to 90bf7d3 Compare July 10, 2026 20:09
Base automatically changed from dynamic-hardfork-protocol-id to main July 10, 2026 23:41
@cb-heimdall

Copy link
Copy Markdown
Collaborator

🟡 Heimdall Review Status

Requirement Status More Info
Reviews 🟡 0/1
Denominator calculation
Show calculation
1 if user is bot 0
1 if user is external 0
2 if repo is sensitive 0
From .codeflow.yml 1
Additional review requirements
Show calculation
Max 0
0
From CODEOWNERS 0
Global minimum 0
Max 1
1
1 if commit is unverified 1
Sum 2

Co-authored-by: Codex <codex-noreply@coinbase.com>
@PelleKrab PelleKrab force-pushed the proof-schedule-binding branch from 90bf7d3 to faecf86 Compare July 13, 2026 16:30
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants