Beam重组攻击调查报告

谨此提醒并向社区保证,Beam团队致力于保护Beam去中心化网络免受攻击! 应对双花攻击
《财富代码》-深度分析、挖掘区块链价值项目,https://www.first.vip/hodl

谨此提醒并向社区保证,Beam团队致力于保护Beam去中心化网络免受攻击!

应对双花攻击

Beam在近期的共识更改中完成了从BeamHash II到BeamHash III的转换,并做出努力让交易所和矿池帮助Beam辨别各种不正常活动。也就是说,帮助Beam防止网络出现矿工拥有50%算力的情况。我们可以保证大多数交易所都设置存入Beam需要更长的确认时间,同时我们还引入了每60个区块回滚检查,防止重组深度超过60个区块。但是,有少数交易所没有延长确认时间。

强烈请求交易所和OTC用户:接受用户转账请至少经过70个区块确认。

最近我们注意到出现一些不正常的网络活动,所有觉得有必要发表本篇声明。

以下是一些已知攻击时间表,以及Beam团队的应对之策。

2020-05-27

事件

一连发生了几起大的重组。

· 730833 -> 730779 -> 730873 (-54, +94)

· 730938 -> 730902 -> 731048 (-36, +146)

· 731075 -> 731066 -> 731116 (-9, +50)

调查

Beam有16个公共主节点,我们从这些节点上收集和分析它们的日志,了解整体情况。主要是为了辨别:这是一次蓄意攻击,还是链的自发重组。

这次事件,日志没有给出一致的信息。由于节点间连接性差,节点的状态出现了相当大的偏差。各个节点追随不同的分支持续了很长时间,同时也发生了不规则的、零散的重组。

结论:

· 网络连接性差,无法消除自发的(自然的)网络分裂,所以导致重组。

· 有可能是攻击,但无法证实。

采取的行动

· 加强节点间的连接

· 修正动态对等节点管理存在的一些问题

· 增加了永久对等节点配置,也就是节点需要经常维护连接的对等节点

· 更新所有主网络节点,配置节点间彼此永久连接,并有一个超级连接的集群

· 建议所有已知矿池和交易所重复上述做法

2020-06-11

事件

连续发生了两起重大重组。

· 753811 -> 753796 -> 753815 (-15, +19)

· 753904 -> 753821 -> 753927 (-83, +106)

调查:

收集并分析16个主网络节点的日志。这一次,节点保持一致;所有节点都正常同步,并同时发生了相同的重组,排除了网络连接不畅的可能性。

因此,这次应该是一个大矿工在隔离的状态下挖了一段时间。但这次是一次蓄意攻击,还是只是最大矿池短暂失联?仍不清楚。

经过分析重组的区块,我们发现大部分区块是空块,有些区块包含了单笔交易。符合攻击的特点,应该是没有交易,用户只能转账给他们自己(在MW中,交易是共同创建的)。转账给自己,就像是双重花费。此外,我们还发现网络算力出现异常,在攻击期间,诚实社区的算力大幅下降,但攻击者的算力明显比下降的算力更高。也就是说,如果我们计算网络的总哈希率——它是在急剧上升的。

我们发现,在这段时间内,NiceHash上存在异常大的hashpower订单。

结论

· 很有可能是双花攻击

攻击的难度:适中

· 调整防火墙来实现临时隔离

· 无需知道代码或修改代码

攻击成本

· 考虑到目前的Beam价格和挖矿难度,成本不高

· 如果攻击成功,攻击者也会得到区块奖励,进一步降低攻击成本

采取的行动:

实现一个滚动检查点机制,防止自动重组超过60个区块

· 引导所有矿池和交易所至少要有80个区块确认

· 由于更改共识会导致网络分裂,因此我们采取了以下方法:

· 增加了网络分裂检测和警报机制

· 支持用户手动重组

· 在放弃当前分支的情况下,支持自动重组到任意深度。这样是为了方便普通用户。在网络分裂的情况下,一旦攻击结束,他们的节点将在一段时间后自动重组。

2020-07-15

事件

在晚上的几个小时内发生了4次重大重组。第二天白天出现2次重组,第二天晚上2次重组。

· > 800833 (-35, +45)

· > 800938 (-10, +25)

· > 800991 (-21, +33)

· 801014 -> 800994 -> 801021 (-20, +27)

· 802281 -> 802240 -> 802290 (-41, +50)

· 802341 -> 802321 -> 802351 (-20, +30)

· 803422 -> 803366 -> 803431 (-58, +65)

调查:

上面的重组与我们之前观察到的重组是相同的模式,大部分重组是空块,只有少量交易(看起来很像是双花)

· 相同的算力波动

· 如预期的一样,几次重组都没有超过60个区块

· 没有网络分裂

这一次,我们深入分析了重组区块,猜测其中包含了双花。替代区块花费了一些原区块花费的输入,而替代区块的输出却不一样。也就是说,原始块包含A->B,而替代块包含A->C。

不幸的是,我们不能对以前的重组执行同样的分析,因为我们的节点没有永远保留重组(孤立的)块。但是我们可以对最近的重组这样做。这就是我们的发现。

· 803422 -> 803366 -> 803431

· H = 803424 double spend。原始高度= 803375

· 802341 -> 802321 -> 802351

· H = 802330 double spend。原始高度= 802329

· 802281 -> 802240 -> 802290

· H = 802250 double spend。原始高度= 802246

所以最后三个重组可以确定是双花。我们还得出了原始(恢复的)交易的确切花费高度。尚不清楚的是攻击者为什么这样操作?重组不超过60个区块,不会造成交易所资金损失,因为交易至少需要80个确认。深夜,我们发现一些知名交易所出现不正常的交易量,他们没有遵循我们的建议,Beam存款只设置了少数确认。

结论:

· 攻击者只用了少数确认就攻击交易所,并反复攻击。然而,交易所并没有意识到,尽管我们预先给出了建议,但他们还是遭受了损失

· 似乎攻击者还尝试了攻击其他交易所,但没有成功

· 我们联系的其他一些交易所,告诉他们在相应的高度有存款,但被恢复了。幸运的是,他们接受我们的建议,并对Beam存款设置了足够多的确认数

· 攻击者也可能尝试了更深的重组(攻击其他交易所),但没有成功

· 除了从交易所窃取资金,攻击者还将网络置于危险之中

· 一些相连交易可能在重组之后无法恢复,给用户造成不便

· 存在网络分裂的风险

采取的行动:

· 我们紧急联系了发现受影响的交易所,要求他们增加确认数。

· 我们正在为矿池和交易所开发我们自己的API,这样他们的钱包就只选择“成熟的”UTXO进行交易,防止之前交易反转导致交易失败。减少重组的负面影响。

我们团队针对攻击确认和缓解攻击,做了彻底深入的调查,攻击并非只是Beam会出现,任何加密货币都可能发生攻击。

在分析攻击的过程中,感谢社区在这段时间的耐心和理解。

最后,我们希望矿工在我们监控和处理攻击的同时,能给与Beam最大的帮助。加入小矿池,扩散你的算力来加强Beam网络去中心化,避免你的挖矿奖励遭遇重组,并且从超级矿池中驱离这些攻击者。不要让攻击者聚集在最大矿池里。

本文由 区块链资讯平台头等仓 作者:jill 发表,其版权均为 区块链资讯平台头等仓 所有,文章内容系作者个人观点,不代表 区块链资讯平台头等仓 对观点赞同或支持。如需转载,请注明文章来源。
《财富代码》-深度分析、挖掘区块链价值项目,https://www.first.vip/hodl

发表评论