libp2p / libp2p/notes

Eclipse robust DHT using expected ID distribution

Open
#18 9 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

DHT
Dominant language
No language data
Stars
38
Forks
2
PR merge metrics
No merged PRs in 30d

Description

It may be possible to make a DHT robust against eclipse attacks by using expected distribution of node IDs.

In a DHT, nodes are expected to be evenly distributed around the node ID space. In a DHT with an active eclipse attack, one would expect a large cluster of node IDs around the target key.

Instead of using K as the bucket size, one could use expected ID distribution. For example, in a network with 10K nodes, one would expect:

  • 1 node to share logtwo(10,000) = 13 at least bits.
  • 2 nodes to share at least 12 bits.
  • ...
  • 20 nodes to share at least 8-9 nits (logtwo(network size) - logtwo(K))

So, instead of putting to the closest 20 peers, you'd calculate the expected network size (e.g., by asking other peers how close their neighbors are and assuming a uniform network), then put to all peers sharing the expected number of bits (in this case, 8).

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

No files, tests, or implementation entry points are identified. Start by reviewing the DHT routing and peer-selection design, then determine how expected node-ID distribution could be estimated and validated against eclipse attacks. Done means a decided design with an agreed implementation scope and tests or evaluation criteria.

Written by the indexing model from the issue text.

Assessment

Domain
distributed-systems
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.