提问人:Andrew Baker 提问时间:10/29/2023 更新时间:10/31/2023 访问量:46
分布式哈希表:防止节点存储 PB 级数据?
Distributed Hash Tables: Preventing nodes from storing petabytes of data?
问:
我正在阅读分布式哈希表和 Kademlia。但是我有一个很大的问题,我还没有看到答案。
节点可以通过对文件名进行哈希处理并将其发送到覆盖该哈希存储桶的节点来广播其文件。这是通过路由完成的,但完成此操作的方法不是我问题的主要焦点。
谁在阻止节点发送 PB 甚至 EB 的数据并将其存储在 DHT 中?这似乎很难回答---在集中式系统中,当用户达到一定数量的数据时,中央机构可以切断用户的联系。而且由于用户不必在本地机器上存储如此大量的数据,因此随机的人只需用大量数据轰炸DHT是可行的。
答:
问得好!
据我了解,只是系统不能抵抗洪水攻击,就像你上面描述的一样。当然,也可以添加一些机制来忘记未使用的条目。例如,根据 LRU 算法删除未使用的条目。但是,我认为,恶意行为者可以大量涌入最近的条目,并为它们提供机器人的“客户端请求”,以强制将它们保留在 DHT 中。因此,这些虚假记录将禁止有效记录,DHT 将删除它们。如您所见,这种洪水是一种 DoS 攻击,当洪水强制丢弃有效记录时,结果是 - 停止为它们提供服务。DHT only
我认为,只有一种方法可以保护 DHT 免受此类洪水的侵害 - 当部署进入 DHT 需要花费少量资金时,就会建立财务障碍。在这种情况下,洪水者必须为他的洪水支付很多钱,而这种攻击对他来说代价高昂。
为此,DHT系统可以使用类似SpamBat的东西。系统是“邮票”系统,最初是为电子邮件垃圾邮件过滤而开发的。在这个系统中,电子邮件发件人将“邮票”应用于电子邮件 - 加密货币交易,当一定数量的硬币被销毁时,即“燃烧”。如果这封电子邮件是垃圾邮件,电子邮件收件人会烧硬币。SpamBat
对于这个问题,可以开发类似的系统。例如,为了将一些哈希值发布到 DHT 中,发送者还必须“销毁”一些硬币,并将他希望发布的哈希值插入到销毁交易中。因此,这种交易将是“销毁收据证明”。每个DHT服务器都可以验证这个“收据”与他自己的区块链副本,并发布链接,只有当票证有效时。
当然,有可能开发一些薄的类似但共同的想法 - 发送者必须支付一些金额。“好发件人”的金额很小,洪水泛滥者的数量很大。
评论