-
Notifications
You must be signed in to change notification settings - Fork 136
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
Cover light client equivocation attacks in E2E tests #1180
Comments
Hey, I took a look at this and it looks like CometMock could be useful here. |
Hi. Great work in integrating the equivocation into CometMock! Note that these E2E tests also involve a Hermes Relayer probing evidences committed on-chain. |
Ah, I misunderstood - I added DoubleSignEvidence to CometMock, LightClientAttackEvidence is not something I have looked at yet. I have looking into adding LightClientAttackEvidence to CometMock on the roadmap informalsystems/CometMock#34, but if the test crucially relies on Hermes, CometMock won't be able to help at the moment, see cosmos/cosmos-sdk#16277 If you think this could also be done with the go relayer, let me know and I'm happy to add LightClientAttackEvidence as soon as I can! |
Hey, light client attacks are now available in CometMock, see #1249. Again, this does not work with Hermes, but just mentioning here in case this is useful. |
Problem
Currently, the E2E tests are only testing the ICS misbehaviour handling feature by triggering a "lunatic" light client attack.
However, this test case isn't sufficient since only the "equivocation" light client attacks are expected to be handled and lead to the jailing and tombstoning of validators.
Closing criteria
Add a test case that generates an "equivocation" light client attack to the E2E tests.
Problem details
The current way of generating a "lunatic" attack is by forking the consumer chain. This results in the malicious chain sending invalid client headers to the provider chain. Note that after observing the block produced by the main and forked chain, the only block header fields that aren't equal are:
time
,app_hash
, andlast_commit_hash
. Maybe it's a point to start in order to simulate an "equivocation" attack.The text was updated successfully, but these errors were encountered: