我´我问这个问题是因为一个可能的攻击将发送大量的孤立事务,这些事务永远不会被赎回。然后客户端将不得不缓存它们,从而增加存储需求并减少查找时间。这可能导致资源耗尽攻击。
如果对缓存的大小有限制,则可以安装DoS以耗尽该限制。在这两种情况下,都可以发起拒绝服务攻击。
如果没有保护,则为每个事务添加工作证明将有助于防止此类攻击。
交易
隐藏物
分享
改进这个问题
跟随
两小时前编辑的
迈克尔·福克森
582077银牌2222铜牌
2月10日12:06问
SDL公司
53911金徽章33银徽章88铜徽章
你指的是什么缓存开膛手234 2012年2月10日13:02
1
我去了比特币源代码以供参考。请参见main.cpp:mapornTransactions。事务由AddOrphanTx()添加。可以插入mapOrphanTransactions的孤立事务数没有限制。因此,问题是:DoS攻击可能吗SDL 2012年2月10日13:25
mapornTransactionsByPrev也可能受到攻击,但c++映射查找是O(N logN)这一事实可能会阻止攻击的有效性SDL 2012年2月10日13:49
虽然它是O(N log N),但是您可以用发送大量trx的DDoS攻击来填充计算机内存。我错过什么了吗?–usr本地-ΕΨΗΕΛΩΝ 2012年2月10日15:29
@SDL“c++映射查找是O(N logN)”。我觉得很难相信。通过元素的线性搜索将是O(N),这比您建议的O(N logn)便宜。也许你想写“is O(logn)”(另请参见en.cppreference.com/w/cpp/container/map,其中指出“搜索、删除和插入操作具有对数复杂性”)。-克里斯·摩尔,2012年2月10日19:06
再显示3条评论
1个答案
三
0.6版本包括对几个拒绝服务漏洞的修复,包括这一个(请参阅commit 142e6041)。
在将来的版本中,可能会实现断开发送“太多”孤立项的对等点的连接。
将来,如果您在比特币实现中发现DoS或安全漏洞,最好向一个或多个开发人员发送电子邮件,以便他们尽快了解问题。
分享
改进这个答案
跟随
3月5日15:06答复
加文安德烈森
32921717银牌2222铜牌
抱歉,我在编写问题后注意到代码中存在(可能)缺陷SDL 2012年3月7日13:44
如果您在比特币发行日志中发布一条简单的感谢信,我将非常高兴SDL公司