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

The fuel header should mark imported content from the L1 #1741

Closed
xgreenx opened this issue Mar 7, 2024 · 2 comments · Fixed by #1769
Closed

The fuel header should mark imported content from the L1 #1741

xgreenx opened this issue Mar 7, 2024 · 2 comments · Fixed by #1769
Assignees

Comments

@xgreenx
Copy link
Collaborator

xgreenx commented Mar 7, 2024

Currently, each node simply imports all events received from the ethereum node. But in the case if the ethereum node returns different events than expected, it is impossible to prove that the state is incorrect(like some messages are missed). It is not critical in the case of missing events because we can index them later. But in the case of incorrect events(not real events) it can bring the network into an incorrect state.

For the safety of the network, it would be better if the block producer also posts the hash of the imported events along with the da_block_height. In this case, we can easily prove/identify an incorrect state.

@Voxelot
Copy link
Member

Voxelot commented Mar 13, 2024

It might be better to make this a merkle root of imported events (in case there are a large number of imported events), and we'll also need to formally specify the event encoding format that is used to serialize these into bytes.

@xgreenx
Copy link
Collaborator Author

xgreenx commented Mar 13, 2024

I think we can hash all fields emitted by the event. In this case L1 contract can do the same on his side and it will be enough during fraud prooving.

MitchTurner added a commit that referenced this issue Mar 22, 2024
closes #1741

This PR introduces a new field on the block header generated section
called `event_inbox_root`. This is calculated after execution by adding
all the hashes of the events from the L1 relayer to a merkle tree and
generating the root.

Also renamed the message receipt root to `message_outbox_root` to keep
up the theme.
crypto523 added a commit to crypto523/fuel-core that referenced this issue Oct 7, 2024
closes FuelLabs/fuel-core#1741

This PR introduces a new field on the block header generated section
called `event_inbox_root`. This is calculated after execution by adding
all the hashes of the events from the L1 relayer to a merkle tree and
generating the root.

Also renamed the message receipt root to `message_outbox_root` to keep
up the theme.
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 a pull request may close this issue.

3 participants