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

Attack: storage test and fake data #130

Open
sachaaaaa opened this issue May 17, 2019 · 2 comments
Open

Attack: storage test and fake data #130

sachaaaaa opened this issue May 17, 2019 · 2 comments

Comments

@sachaaaaa
Copy link
Contributor

Here's an attack that a malicious snode could perform, @msgmaxim thought of:

  1. send fake data to some snodes
  2. save fake data yourself
  3. those snodes will be testing peers and won't find data
  4. good nodes will vote those other good nodes off the network potentially
@sachaaaaa
Copy link
Contributor Author

sachaaaaa commented May 17, 2019

Snodes only propagate data to other snodes when they receive a client store request.
The propagation is performed via the snode to snode api, which doesn't trigger any further propagation. So the snode that received the client's store request is responsible to share it with the rest of the swarm.

We might need to enforce a hash check across snodes, e.g. have a fast/light entrypoint that allows to check if a snode knows about a hash. That way, we could come up with a deterministic algorithm to propagate the data across the swarm, even if the original snodes skips some other snodes during propagation.
E.g. upon receiving data from the propagation api, after a set delay, the snode could check if a couple of random peers already know about the hashes. If they don't, then the snode can push the messages to them. (The algorithm should avoid cycles)

@ghost
Copy link

ghost commented Jun 11, 2023

See also #122

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

No branches or pull requests

1 participant