-
Notifications
You must be signed in to change notification settings - Fork 673
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
Malicious shard might create hash conflicts in receipts #1838
Comments
Here is the scenario:
The 2nd chunk can also contain any invalid transactions or receipts. So the input to the Runtime can be almost arbitrary picked by the malicious nodes. |
Assigning to @SkidanovAlex since it might be triggering failure on chain side. |
Is this fixed in #2155? |
Assigning to @evgenykuzyakov to provide reply. |
It's addressed on Runtime side. I think Runtime is pretty safe, since it doesn't have |
I don't think it's an issue on the rpc side given that we prohibit querying receipts. On the chain side I don't see any issue since the content of receipts is not important from chain's perspective. |
So if a shard produces an invalid |
@evgenykuzyakov that's fine. The query will just time out. If you are talking about the node answering the query, since the shard is corrupted I don't think we need to worry about the safety of a malicious node. |
@bowenwang1996 AFAIU this attacks honest validator. |
This can only happen if the shard is controlled by a malicious majority, which means that honest validators, if any, will submit a challenge, and I think it is fine if they are temporarily subject to this attack before the chain confirms the challenge and slash malicious actors. Also moving this to post mainnet milestone as we will not have multiple shards first. |
This issue has been automatically marked as stale because it has not had recent activity in the last 2 months. |
looks like no action items here. Closing |
if a shard is completely compromised it can produce a receipt with a conflicting hash. E.g. the hash might conflict either with some other receipt or with a transaction. For a transaction it would trigger failed to decode during borsh. For a receipt we might return a wrong receipt or have receipt conflicts.
Eventually it will be challenged and reverted, but we need to make sure it doesn’t crash the node and we handle it correctly.
The text was updated successfully, but these errors were encountered: