Skip to content

fix(kona): use L1 origin timestamp for brotli activation check#20004

Open
sebastianst wants to merge 1 commit intodevelopfrom
seb/fix-brotli-timestamp
Open

fix(kona): use L1 origin timestamp for brotli activation check#20004
sebastianst wants to merge 1 commit intodevelopfrom
seb/fix-brotli-timestamp

Conversation

@sebastianst
Copy link
Copy Markdown
Member

Summary

  • BatchReader now stores the L1 origin timestamp at construction, using it for the Fjord brotli activation check instead of the untrusted batch timestamp
  • Fixes a consensus deviation: a malicious batcher could craft a batch with a pre-Fjord timestamp inside a post-Fjord brotli channel, causing kona to reject the channel while op-node accepts it
  • Also fixes the stale doc comment on BatchReader that claimed L1 inclusion was provided at creation time (now it actually is)

Fixes ethereum-optimism/optimism-private#485

Test plan

  • All kona-protocol batch reader tests pass (4/4)
  • All kona-derive channel reader tests pass (7/7)
  • All kona-derive batch queue tests pass (20/20)
  • Clippy clean on kona-protocol, formatted with just f

🤖 Generated with Claude Code

The BatchReader Fjord check for brotli decompression used the untrusted
batch timestamp instead of the L1 origin timestamp. A malicious batcher
could craft a batch with a pre-Fjord timestamp inside a post-Fjord
brotli-compressed channel, causing kona to discard the channel while
op-node (which uses the origin timestamp) accepts it — a consensus
deviation.

Store the L1 origin timestamp in BatchReader at construction time and
use it for the is_fjord_active check, matching op-node behavior.

Fixes ethereum-optimism/optimism-private#485

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@sebastianst sebastianst requested a review from a team as a code owner April 9, 2026 20:32
@sebastianst sebastianst requested a review from pcw109550 April 9, 2026 20:32
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.

3 participants