Coder Social home page Coder Social logo

dht's People

Contributors

nazar-pc avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

dht's Issues

Upcoming DHT redesign/rewrite

We've started from WebTorrent DHT, which in turn is based on Mainline DHT. This allowed us to prove that such a system can work in browser.

But besides some legacy unnecessary stuff it is also not robust and not resistant to attacks and we need to design an alternative specification and then implementation specifically for Detox project.

Few major issues we need to resolve:

  • Resistance to Eclipse attack (protect nodes from being surrounded by adversary-controlled nodes only or mostly, needs proper quantifying)
  • Resistance to Sybil attacks (prevent adversary from deploying excessive numbers of nodes to the network)

We already use public keys instead of arbitrarily selectable IDs, which is the first right step.
Now we need to borrow from other papers or implementations or invent ourselves some kinds of crypto quizzes that regular nodes will be able to solve, but will be hard enough for an attacker to handle.

Few more specific thoughts:

  • DHT keypair's public key hash (Blake2b in out case as we use it in other parts of the system) should start with certain number of zero bits (can be adjusted to the network conditions) like suggested in S/Kademlia paper
  • Some kind of ongoing, likely time-related quiz that all active nodes should solve in time, this might prevent an attacker fro maintaining too many nodes in the network at the same time
  • Find a clever way to force an attacker to be useful to the rest of the network against their will (meaning that otherwise they will violate the protocol and will be rejected by valid peers)

This could increase barrier for joining the network as well as being an active part of the network.

Also comparing to Mainline DHT we'll need to reduce number of methods and only allow mutable keypair/signature-based keys for data stored in DHT (also hard and/or soft size limit should be reevaluated, Mainline DHT uses 1000 bytes) limit.

Useful links:

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.