-
Notifications
You must be signed in to change notification settings - Fork 152
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
[zurich] Ghost-128 patch: downloader sync periodic TD check #544
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
meowsbits
force-pushed
the
zurich-patch-2-pr
branch
from
May 17, 2023 15:20
45b5465
to
013bb39
Compare
…easure; periodic TD check This patch applies the countermeasure to security vulnerability Ghost-128 described by Taverna and Paterson of ETH Zurich in their 2023 paper Snapping Snap Sync: Practical Attacks on Synchronising Go-Ethereum Nodes. This patch, in both its design and implementation, was originally authored and provided by the authors of that paper, and details around both can be found in the paper's Section 7. The patch has been only minorly edited in adaptation to minor application conflicts. A link to the research paper: https://appliedcrypto.ethz.ch/content/dam/ethz/special-interest/infk/inst-infsec/appliedcrypto/research/TavernaPaterson-SnappingSnapSync.pdf Date: 2023-05-17 06:29:29-07:00 Signed-off-by: meows <b5c6@protonmail.com> eth/downloader: implement Ghost-128.patch methods for peer test types Date: 2023-05-17 06:44:23-07:00 Signed-off-by: meows <b5c6@protonmail.com> eth/downloader: goimports Date: 2023-05-17 06:45:21-07:00 Signed-off-by: meows <b5c6@protonmail.com> eth: fix p.Head implementation for WorstPeer method Date: 2023-05-17 06:46:40-07:00 Signed-off-by: meows <b5c6@protonmail.com>
.*Starvation.* tests were failing because errStallingPeer was expected but no error received. The TD is advertised and assigned to the downloader as expected, but the handshake with the peer's Head method was causing the reassignment of the downloader.td field to the actual (honest) TD value by virtue of the virtuous dlp.Head method, which returned the actual chain TD. This caused the tests to fail because the sync TD was not the fake one. So this patch provides a field in the tester peer type to actually handle lying about TD, which then make the errStallingPeer error get returned. Date: 2023-05-17 07:27:56-07:00 Signed-off-by: meows <b5c6@protonmail.com>
meowsbits
force-pushed
the
zurich-patch-2-pr
branch
from
May 17, 2023 15:21
013bb39
to
e29e74f
Compare
This gets called often for all peers, resulting in blabby logging. Peer information is available on request through the API. Date: 2023-05-18 05:59:02-07:00 Signed-off-by: meows <b5c6@protonmail.com>
diega
approved these changes
May 18, 2023
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🚢
ziogaschr
approved these changes
May 18, 2023
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Let's ship it
meowsbits
commented
May 18, 2023
Merged
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This patch applies the countermeasure
to security vulnerability Ghost-128 described
by Taverna and Paterson of ETH Zurich in their
2023 paper Snapping Snap Sync: Practical Attacks
on Synchronising Go-Ethereum Nodes.
This patch, in both its design and implementation,
was originally authored and provided by the authors
of that paper, and details around both can be
found in the paper's Section 7.
The patch has been edited only in adaptation
to minor application conflicts.