-
Notifications
You must be signed in to change notification settings - Fork 388
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
Valset/Data commitment requests security for QGB #349
Comments
@evan-forbes What do you think ? |
I thought that the only way to set an invalid one is with 2/3's malicious voting power? How would one create one in the state with out 2/3's agreement? |
We're currently setting valsets in end blockers via calling:
This function doesn't have any checks in it. And similar with Data commitments. Thus, if we implement the client requests (maybe not for valsets, but to set data commitments), or similar, under https://github.com/celestiaorg/celestia-app/tree/master/x/qgb/client/cli, we wouldn't have any checks whether the committed state is correct or not. Furthermore, I created this issue to discuss adding more checks on the keeper level, if it makes sense. |
I think its ok to add checks later if we wanted to add cli functionality, but currently we have no plans to, and even if we did, it would only be for data availability commitments. Since the This is good to think about though!! We might also want to consider adding invariants for this and other things. https://docs.cosmos.network/v0.45/building-modules/invariants.html |
Sounds good. Should we keep the issue open to remind us in the future ? |
I think we can close this for now, as there are no direct actionable items. If we ever do variable data commitment windows, then we will only handle this then. |
For Valsets, the orchestrator is currently checking the valset by nonce and then signs it. This works if we suppose that all valset requests are valid.
However, we can have a malicious party that generates invalid valsets (duplicates with different nonce, valsets for non-significant validator set changes etc.), and the orchestrator will keep signing those.
Thus, we will need to add validity checks on valsets before the orchestrator signs them.
These need to be defined not to allow any malicious party to flood the network with incorrect valsets.
The same applies for data commitment requests which will be added here #268.
The text was updated successfully, but these errors were encountered: