4

I am reading up on distributed hash tables and Kademlia. But I have one pretty big question that I haven't seen answered.

Nodes can broadcast their files by hashing the filename and sending it off to the node that covers that hash bucket. This is done by routing, but the method by which this is done isn't the main focus of my question.

Who is stopping a node from just sending off petabytes or even exabytes of data, and storing it in the DHT? This seems hard to answer---in a centralized system, the central authority can cut a user off when they reach a certain amount of data. And because users don't have to store this amount of data on their local machine, its feasible for a random person to just bomb a DHT with a massive amount of data.

1 Answer 1

1

Good question!

As I understand, just DHT onlysystem is not resistant versus flooding attack, as same as you described above. Of course, there is possible to add some mechanism to forget unused entries. For example, drop an unused entry, based on LRU algorithm. However, I think, malicious actor can flood lot to recent entries, and provide robotic "client requests" for them, to force keep them in the DHT. As result, these fake records will suppress valid ones, and DHT will drop them. As you see, such flood is kind of DoS attack, when flood force to drop valid records, and as result - stop service for them.

I think, there is only single way to protect DHT versus such flooding - is create financial barrier, when deploy entry into DHT costs some tiny amount of money. In this case, flooder must pay lot of money for his flood, and such attack would be costly for him.

For this purpose, DHT system can use ssomething like to SpamBat. System SpamBat is "postage stamps" system, initially developed for e-mail spam filtering. In this system, e-mail sender apply to an e-mail the "postage stamp" - cryptocurrency transaction, when some amount of coin is destroyed, i.e "burning". And e-mail recipient burns coin, if this e-mail is spam.

For this problem, there is possible to develop analogous system. For example, for publish some hash into DHT, sender also must to "burn" some coins, and insert into burning transaction the hash, which he wish publish. As result, such transaction would be "proof of burn receipt". And each DHT server can validate this "receipt" versus his own blockchain copy, and publish link, only if ticket is valid.

Of course, there is possible to develop somethin analogous, but common idea - sender must pay some amount. Tiny amount for "good sender", and big amount for flooder.

Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.