Skip to content
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

[Epic] Multi-block Blob Support #124

Open
linoscope opened this issue Sep 18, 2024 · 0 comments
Open

[Epic] Multi-block Blob Support #124

linoscope opened this issue Sep 18, 2024 · 0 comments

Comments

@linoscope
Copy link
Collaborator

Problem:

A recent fork of Taiko's contracts added support for including multiple L2 blocks within a single blob. However, our PoC implementation relies on an earlier version before this multi-block support (i.e., we use BlockParams instead of BlockParamsV2).

Supporting multi-block would require reconsideration of design, most notably around preconfirmation slashing. As outlined in our design doc, our current slashing logic (code) works by comparing the txListHash of the preconfirmed block with that of the proposed block. However, with the introduction of multi-block support, the hash of individual proposed blocks is no longer easily accessible on-chain. This is because the Taiko inbox now stores only the blob hash of the entire blob—which contains multiple blocks—along with offset information to introspect the blob.

Potential Solution(s):

  • Wait until the L2 tx list is settled in L1, then utilize the settled metadata of the individual L2 blocks for slashing.
  • Instead of slashing by comparing the whole tx list hash (or blob hash), we slash by comparing specific bytes within the tx list. E.g., Disputes look like “the preconfer preconfed an L2 block that has txListBytes[42]=0xAB, but the proposed blob had blobBytes[block offset within blob + 42]=0xFF". This would require each preconfirmation to include some commitment (likely KZG?) to the individual L2 blocks.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant