-
Notifications
You must be signed in to change notification settings - Fork 2.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat(protocol): support smaller more frequent L2 blocks (replacing soft blocks) #18743
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
feat(protocol): support smaller more frequent L2 blocks (replacing soft blocks)
🚨 Report Summary
For more details view the full report in OpenZeppelin Code Inspector |
This was referenced Jan 10, 2025
dantaik
changed the title
Pacaya subblocks
feat(protocol): support smaller more frequent L2 blocks (replacing soft blocks)
Jan 10, 2025
YoGhurt111
reviewed
Jan 10, 2025
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Overview
This PR introduces support for smaller and more frequent L2 blocks, replacing the previously planned soft-blocks. The primary motivation for this change stems from @cyberhorsey's discovery that most existing Ethereum SDKs and tools (e.g., MetaMask) do not handle frequent block reorganizations gracefully. Instead of investing effort into improving these libraries and tools, adopting smaller and more frequent blocks appears to be the most pragmatic solution.
Key Changes
In this PR, we introduce the concept of a "batch", which represents a collection of Taiko blocks. A batch serves as the smallest unit for block proposal, block proving, and cross-chain data synchronization. Block header data are derived from the same batch metadata to minimize on-chain footprint per block. This means that, given the same set of transactions within a batch, splitting them into 10 blocks versus 20 blocks does not significantly impact L1 gas costs—though there are still minor differences.
However, creating more L2 blocks from the same set of transactions does increase gas costs for batch proposals (slightly) and proving costs (more noticeable). Specifically, proofs are now aggregated in two stages:
More L2 blocks result in higher costs for the first level of aggregation.
Additionally, the protocol does not support proposing multiple batches in a single transaction. Instead, it leverages multiple blobs within a single
proposeBatch
transaction. As a result, proposers are encouraged to propose fewer and larger batches whenever possible to optimize efficiency.Review Tips
This is a large PR, but your primary focus should be on TaikoInbox.sol. The other changes are secondary and result from ripple effects.
Todos