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 key assignment feature can't be used to verify equivocation #1261

Closed
sainoe opened this issue Sep 5, 2023 · 0 comments · Fixed by #1264
Closed

The key assignment feature can't be used to verify equivocation #1261

sainoe opened this issue Sep 5, 2023 · 0 comments · Fixed by #1264
Assignees
Labels
S: NewThings Work towards your business objectives with new products, features, or integrations

Comments

@sainoe
Copy link
Contributor

sainoe commented Sep 5, 2023

Problem

The key assignment feature uses the chainID | providerConsAddress -> consumerKey mapping to store consumer public keys. It entails that only the last assigned consumer public key is stored for each validator and the old ones are overwritten.

In the scenario where a validator double votes on a consumer chain using key k1, it potentially has enough time to re-assign itself a new key, k2, on the consumer chain before the double voting evidence is detected and submitted to the provider. Consequently, when the evidence is eventually submitted, it will be verified using k2 and fail.

This issue supersedes #1254, which partially fixed the validator public key retrieval in the double voting evidence handler.

Closing criteria

The public key of the validator that double voted should be directly retrieved from the infraction_block_header field in the SubmitConsumerDoubleVoting message, rather than from the provider states.







Credits to @insumity for reporting the bug 💜.

@sainoe sainoe added status: waiting-triage This issue/PR has not yet been triaged by the team. S: KTLO Keeping the lights on: Keeping the current product operational (bugs, troubleshooting, deps updates) labels Sep 5, 2023
@sainoe sainoe self-assigned this Sep 5, 2023
@sainoe sainoe added this to Cosmos Hub Sep 5, 2023
@github-project-automation github-project-automation bot moved this to 🩹 F1: Triage in Cosmos Hub Sep 5, 2023
@sainoe sainoe removed the status: waiting-triage This issue/PR has not yet been triaged by the team. label Sep 5, 2023
@sainoe sainoe moved this from 🩹 F1: Triage to 🏗 F3: InProgress in Cosmos Hub Sep 5, 2023
@sainoe sainoe linked a pull request Sep 5, 2023 that will close this issue
20 tasks
@mpoke mpoke added S: NewThings Work towards your business objectives with new products, features, or integrations and removed S: KTLO Keeping the lights on: Keeping the current product operational (bugs, troubleshooting, deps updates) labels Sep 5, 2023
@sainoe sainoe moved this from 🏗 F3: InProgress to 👀 F3: InReview in Cosmos Hub Sep 6, 2023
@mpoke mpoke closed this as completed Sep 7, 2023
@github-project-automation github-project-automation bot moved this from 👀 F3: InReview to 👍 F4: Assessment in Cosmos Hub Sep 7, 2023
@mpoke mpoke moved this from 👍 F4: Assessment to ✅ Done in Cosmos Hub Sep 7, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
S: NewThings Work towards your business objectives with new products, features, or integrations
Projects
Status: ✅ Done
2 participants