分布式哈希表:防止节点存储PB级数据?

问题描述 投票:0回答:1

我正在阅读分布式哈希表和 Kademlia。但我有一个很大的问题还没有得到解答。

节点可以通过散列文件名并将其发送到覆盖该散列桶的节点来广播其文件。这是通过路由完成的,但是完成此操作的方法不是我问题的主要焦点。

谁阻止节点发送 PB 甚至 EB 的数据并将其存储在 DHT 中?这似乎很难回答——在中心化系统中,当用户达到一定数量的数据时,中央机构可以切断用户的连接。而且由于用户不必在本地计算机上存储如此大量的数据,因此随机的人可以用大量数据轰炸 DHT。

hashmap hashtable distributed-computing distributed distributed-system
1个回答
0
投票

好问题!

据我了解,只是

DHT only
系统无法抵抗洪水攻击,正如您上面所描述的那样。当然,可以添加一些机制来忘记未使用的条目。例如,基于 LRU 算法删除未使用的条目。然而,我认为,恶意行为者可以将大量内容淹没到最近的条目中,并为它们提供机器人“客户端请求”,以强制将它们保留在 DHT 中。结果,这些虚假记录将压制有效记录,DHT 将删除它们。正如您所看到的,这种洪水是一种 DoS 攻击,当洪水迫使有效记录丢失时,结果是停止为它们提供服务。

我认为,保护 DHT 免受此类泛滥的唯一方法是创建财务障碍,因为部署 DHT 需要花费少量资金。在这种情况下,洪水者必须为他的洪水付出很多钱,这样的攻击对他来说代价高昂。

为此目的,DHT 系统可以使用类似于 SpamBat 的东西。系统

SpamBat
是“邮票”系统,最初是为过滤垃圾邮件而开发的。在该系统中,电子邮件发送者向电子邮件申请“邮票”——加密货币交易,当一定数量的硬币被销毁时,即“燃烧”。如果这封电子邮件是垃圾邮件,电子邮件收件人就会烧钱。

针对这个问题,可以开发类似的系统。例如,为了将一些哈希值发布到 DHT 中,发送者还必须“燃烧”一些代币,并将他希望发布的哈希值插入到燃烧交易中。因此,此类交易将成为“销毁收据证明”。每个 DHT 服务器都可以根据自己的区块链副本验证此“收据”,并发布链接,前提是票证有效。

当然,可以开发一些类似但共同的想法——发送者必须支付一定的金额。 “好发件人”的金额很小,而泛滥的人的金额很大。

© www.soinside.com 2019 - 2024. All rights reserved.