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

Move revalidation of unmixed data to blame assignment #75

Merged
merged 1 commit into from
Nov 22, 2021

Conversation

jrick
Copy link
Member

@jrick jrick commented Nov 22, 2021

If the unmixed portion of a mix becomes invalid between the time the
KEs are broadcasted and after the mix is confirmed by all peers, e.g.
due to a double spend, publishing the mix would fail without any
possible blame assignment. This leads to a potential DoS. Moving the
revalidation of the original unmixed data submitted in the pair
request from the KEs broadcast to the blame assignment prevents this
issue. This DoS has not been exploited to our knowledge.

While here, perform validation concurrently to reduce issues caused by
dcrd RPC latency, which could lead to revalidation taking longer than
a client timeout duration.

If the unmixed portion of a mix becomes invalid between the time the
KEs are broadcasted and after the mix is confirmed by all peers, e.g.
due to a double spend, publishing the mix would fail without any
possible blame assignment.  This leads to a potential DoS.  Moving the
revalidation of the original unmixed data submitted in the pair
request from the KEs broadcast to the blame assignment prevents this
issue.  This DoS has not been exploited to our knowledge.

While here, perform validation concurrently to reduce issues caused by
dcrd RPC latency, which could lead to revalidation taking longer than
a client timeout duration.
@jrick jrick merged commit 90a1ddc into decred:master Nov 22, 2021
@jrick jrick deleted the revalidation branch November 22, 2021 17:33
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants