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

Drop equivocations before validations in pubsub #602

Open
Stebalien opened this issue Aug 28, 2024 · 2 comments
Open

Drop equivocations before validations in pubsub #602

Stebalien opened this issue Aug 28, 2024 · 2 comments
Assignees

Comments

@Stebalien
Copy link
Member

They cannot be useful and this can help make the network more secure and will help alleviate a potential DoS vector (somewhat).

@masih
Copy link
Member

masih commented Oct 9, 2024

@Stebalien,

Question 1

before validation

We technically need to validate the message regardless. Because, we otherwise don't know if the message should be rejected by pubsub or ignored, which effects peer ranking. Right?

Also whether it is an equivocation or not is determined deep in gpbft, at which point the code implicitly assumes messages are validated. I am hesitant getting unvalidated messages anywhere near that code.

If I have not missed anything to get this done we need to:

  • validate the message regardless,
  • expose a new API to check if a validatedMessage is an equivocation without processing it,
  • call it from within pubsub message validator to then decide whether to return ValidationIgnore which would then result in no further propagation of message across pubsub.

What have I missed?

Question 2

Double checking that dropping messages that may be valid globally but equivocations locally does not cause self-inflicted censorship. I think it does not because the current implementation silently ignores such messages anyway even though they continue to propagate via pubsub.

Does that sound right?

@masih
Copy link
Member

masih commented Oct 9, 2024

Discussed in standup:

Question 1

We can detect equivocations using the validation message cache alone by changing the keying scheme slightly to consider sender/instance/round/phase.

Question 2

This is most likely fine as there are already other mechanisms, such as dropping irrelevant messages, that affects scoring.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Status: Todo
Development

No branches or pull requests

2 participants