[Provers H03] ZKsync ParentToChildProver returns Publisher instead of Broadcaster#83
Open
[Provers H03] ZKsync ParentToChildProver returns Publisher instead of Broadcaster#83
Conversation
This file contains hidden or 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
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.
The verifyStorageSlot function in the ZKsync ParentToChildProver contract returns:
An address,
The storage slot where the message was stored on L2, and
The timestamp stored in that slot.
Although the storage proof itself is correctly verified, the returned address corresponds to the publisher of the message on L2 (in ERC-7888 terminology) instead of the broadcaster contract address. This does not align with the expectations of the Receiver contract, which relies on verifyStorageSlot to return the broadcaster (proof.message.sender).
Compounding the issue, the test ParentChildProver.t.sol::test_verifyStorageSlot validates the returned address against the publisher of the message. Since the test asserts the same incorrect behavior as the implementation, it successfully passes, and the issue is not detected.
this PR updates the ZkSync ParentToChildProver to return the broadcaster address on
verifyStorageSlot, instead of the publisher address.