很多人可能早就听说过 51% 算力攻击,但更多的可能源于各种媒体渠道中“比特币的缺陷”文章之流。实际上,这个说法并不准确,根据比特币百科上所描述,这种攻击被称为多数人的攻击(Majority attack),攻击者在控制全网较多算力时,他将可以做这些事情:
1.逆转已发出的交易,也就是双花交易;
2.阻止其他交易的确认;
3.阻止其他块的挖出。
并且在攻击者控制全网大于50%算力时,攻击的成功率将达到100%,而当攻击者拥有40%算力,在需要6个确认的情况下,攻击的成功率为50%。近期有三个币种分别在不同程度上遭到了 51% 算力攻击,分别是 MonaCoin、Bitcoin Gold 和 Verge ,很碰巧的是,这三个币种都不同程度地分叉自比特币。
下面将分别介绍三种货币的攻击详情。
一、Monacoin
5月18日,Reddit 网友发帖称 Monacoin 遭受了 51%算力攻击、自私挖矿攻击与时间戳攻击,确切时间发生在5月13日至5月15日 一些支持 Monacoin 交易的交易所,比如 Bittrex, Livecoin 已经关闭了 Monacoin 的充值。行为描述:
自私挖矿攻击 ( Selfish mining)
根据 Vitalik Buterin(就是发布了以太坊的那个俄罗斯小伙)在2013年11月4日发布的文章称,比特币网络存在一种自私挖矿攻击,能让矿工在理论条件上获得更高的收益。首先,由于比特币网络的规则,每个(诚实的)节点只能挖并且传播它看到的第一个块,这就是说,如果节点当前有一个块正在挖,而收到了别人广播的已成功挖到的同一高度的块,那么该节点将立即放弃正在挖的这个块并继续跟随新的块后面挖掘。自私挖矿攻击中,当恶意矿工挖到了一个新的块 B1,不立即广播,而是接着这个块挖下一个块 B2。在这期间如果别人挖出来了,就马上广播 B1 到全网,如果挖出了第二个,那就直接广播出去,这样恶意矿工的收益就是连续两个块,而别人颗粒无收,由于这种攻击需要攻击者拥有25%以上的算力才能将数学期望拉高到与正常挖矿相同或者更高,所以这次攻击同时也采用了这种行为。
双花攻击
攻击者在公链中签名并广播一笔交易发送 Monacoin 到交易所,并同时在自己的私有链上广播一个将 Monacoin 发送到自己钱包的交易,然后使用大量算力挖掘私有链,当交易所确认存款后,立即广播私有链。由于攻击者拥有大量算力,私有链长度总是比共有链长,所以最后那些发往交易所的 Monacoin 被回滚了。
出块变得异常的快
这可能是由于 Monacoin 的异常难度处理机制导致的,攻击者在短时间内挖出了大量的块,远远大于原来的1.5分钟出块时间。
总结
攻击者将可以回滚充值到交易所的 Monacoin,并且掠取那些原来是诚实矿工的奖励,此次攻击导致约导致 90000 美元的损失。
解决方案
Monacoin 的官方开发组建议,将入账次数提高为 100 个确认数。
二、Bitcoin Gold
5月18日,Bitcoin Gold 交流社区中,MentalNomad 发文称有人在尝试进行针对交易所的双花攻击。
攻击时间为 高度 528735, 5 月 16 日 10:37:54 UTC 到 高度 529048,5 月 19 日 5:25:40 UTC。
双花攻击
攻击者的两个钱包:
资金钱包 GTNjvCGssb2rbLnDV1xxsHmunQdvXnY2Ft
挖矿钱包 GXXjRkdquAkyHeJ6ReW3v4FY3QbgPfugTx
与 Monacoin 类似的,Bitcoin Gold 中攻击者也将这笔交易同时发给交易所和自己,并成功将自己的私链变成最长链,从而使得这条链重新变为公链。值得注意的是,有一笔经过了 22 个确认的交易被成功地双花攻击了。
总结
本次攻击据不完全统计损失了 388,201 个BTG,约为 1860 万美元,创始人称已向FBI报案。
解决方案
Bitcoin Gold的开发组称,正在开发新的 PoW 算法以替代原有的 Equihash 算法,他们认为,攻击的原因之一是因为显卡矿机的算力可以被短时间地集中。
攻击者的链
被逆转的链
被逆转的链长度为22
攻击者向自己的钱包发送了一笔交易,这笔交易回滚了原来向交易所充值的交易
三、Verge
自从 Verge 在4月4日被爆出遭到 51% 攻击后,开发组已经紧急更新修复了时间戳攻击加上51%算力攻击导致算力下降的漏洞。(详细分析请看站内文章:http://www.freebuf.com/column/169210.html )然而,攻击者在5月22日发现了一种新的利用方法——反复横跳。
行为描述
攻击者将4月4日原有攻击的模式(修改时间戳+算力攻击)改为交替使用两种算法 Scrypt 与 Lyra2re 来重复之前的攻击。Verge 的难度再次变为几乎为 0 。
骤然降低的算力
总结
受攻击的区块为 2155850 到 2206272,所有块收益 36808060 XVG 都发给了攻击者,大约为 1525252 美元。
解决方案
开发组将 2218500 块后的时间间隔调整为 10 分钟。
从上面这些攻击中,我们不难发现,针对这些 PoW 工作量证明进行挖矿的数字货币,攻击者可能已经有一套自己的攻击体系。然而,这些攻击的实施都需要大量的算力与成本,有理由相信,攻击者有一个庞大的团队,并且做了非常充分的准备,路线规划与方案实施。
所以,笔者大胆预测,近期发生的攻击只是试水。在未来攻击者将会使用相同的方法进行更多的攻击。由于去年12月火爆的数字货币市场诞生的比特币分叉币们由于缺乏算力与技术支持,将可能更快地遭到 51% 算力攻击。一旦遭到攻击,币价必然大幅下降,算力见无力可图必然会撤离,最后导致攻击者更加容易地攻击这个币种,这种恶性循环会使得该虚拟货币迅速归零。可以预见的是,在未来,运用其他共识的币种,比如 PoS 或者 DPoS 必然也会遭受到类似的攻击,一旦有人开了先例,见到有利可图的后来者必定蜂拥而上。因此,区块链安全值得大家关心。
* 本文作者:umiiii
声明:本文来自FreeBuf,版权归作者所有。文章内容仅代表作者独立观点,不代表安全内参立场,转载目的在于传递更多信息。如有侵权,请联系 anquanneican@163.com。