安全一直是数字货币最重要的要素,自比特币诞生以来,数字货币世界可谓是历经风霜,先后发生过各种安全事件,而最严重的安全事件莫过于51%攻击。
运行工作量证明的数字货币其交易数据实际上是矿工通过算力竞争来打包记录。“算力”指的是每秒钟可以计算哈希值的次数,算力越大矿工的计算速度就越快。
理论上来说,当一个人掌握了51%以上的算力,那么他计算出正确哈希值的速度就会比全网其他矿工更快,因此只要他从包含自己想要篡改的交易数据之前的一个区块开始继续向下挖矿,那么他就有可能创造出一条比当前主链更长的区块链。
而所谓51%算力攻击,就是指利用自己的算力优势来篡改区块链上的记录,从而达到撤销已付款交易的目的。
回顾历史,我将数字货币十年以来重大的51%攻击事件做一个总结,以史为鉴,希望社区的人们能从这些事件中吸取经验和教训。
Coiledcoin - 2012年1月6日
Coiledcoin复制了比特币的代码,它支持联合挖矿以及操作码OP_Eval。Coiledcoin的客户端发布于2012年1月5日,但短短一天后,比特币开发者Luke Dash Jr.在比特币论坛上发帖:Coiledcoin现在结束了,祝各位生活愉快。
由于Coiledcoin使用Sha-256算法,允许联合挖矿,这就意味着在挖比特币的矿工同时也能挖Coiledcoin,这就会导致它非常容易被51%攻击
当时,Luke运行着Eligius矿池,这导致一些社区成员指控他贡献了算力来攻击Coiledcoin,尽管他否认了。有人认为Luke攻击Coiledcoin的主要动机是他认为Coiledcoin是一个庞氏骗局,会“损害比特币的名誉”。
对此比特币的另一位核心开发者Peter Todd当时评价说:“Luke不应该杀害Coiledcoin,但Coiledcoin也没有能力做一条联合挖矿的侧链。”
Coiledcoin攻击事件耐人寻味的点在于它不是经济驱动的,而是纯粹政治的。虽然这一举动引起了社区的一些抗议,但它表明,使用SHA-256算法的低算力加密货币非常容易受到攻击。
Feathercoin - 2013年6月8日
Feathercoin是一个以莱特币为原型创造的Scrypt算法加密货币,于2013年4月16日发布,中文名叫做羽毛币,羽毛币与莱特币十分相似,只有两个不同点。一是羽毛币的总量由莱特币的8400万上升到3.36亿,二是羽毛币的挖矿难度调整的更加频繁。
在诞生7个星期后,同年6月8日,羽毛币受到51%攻击。在攻击前,Feathercoin的总算力为 0.2GH/s,而在受攻击的时间里,算力翻了7倍,达到1.5GH/s。
31小时后,一个调查显示攻击者通过在交易所发动双花攻击卷走了58万的羽毛币,当时价值6.38万美金。
目前不清楚攻击者在什么地方双花了该币,一些比特币论坛的用户指出发生类似的事件交易所本该停止该币的交易,但交易所的反应很慢,导致攻击者得手后快速完成了交易。现在已经停止运营的BTC-E交易所在攻击发生后处理过几笔大额订单。
有趣的是,羽毛币的价格不但没有受51%攻击的影响,还在接下来几个月持续上涨。在攻击发生时,Feathercoin价格为0.11美元,到了2013年年底,其价格达到了历史新高1.29美元。
羽毛币的创造者Peter Bushnell表示这次攻击的算力可能来自莱特币矿池或者其它挖Scrypt算法代币的矿池
和一个主流币种运行相同的算法容易受到51%攻击,几年之后,随着云挖矿的崛起,这种缺点被放的更大了!
Krypton - 2016年8月26日
Krypton项目的代码复制于以太坊,拥有几乎完全一样的功能:智能合约、脚本等。Krypton声称自己比以太坊的交易费用更低,但这基本上是因为Krypton比以太坊的价值更低,同时在Krypton上运行程序的成本也更低。
就像许多算力低的山寨币一样,Krypton非常容易受到51%攻击,16年8月26日Krypton被发动了51%攻击。攻击者在发起51%的同时发起了DDOS攻击。
他们通过双花交易从Bittrex卷走了价值21465韩元的代币。这次攻击是有组织和详细计划的,它利用了以太坊山寨币的漏洞,勒索对象不仅有Krypton还包括Shift和Expanse。
攻击者给Krypton团队发送了一条勒索信:
我们拥有一条随时可以分叉的Krypton区块链。自从bittrex钱包两天前被攻击,我们已经挖到7000-8000个区块,但我们的目的只是要比特币,而不是毁了一个项目。
今天,我们卖了剩余的20000韩元,并将给你们一个机会来结束我们的闹剧。我们将给你们一个机会结束这场危机,我们不要多的,拿回成本即可,给我们7个比特币,我们就停止分叉。
如果你们同意,联系我们,我们将停止攻击,不然我们就会分叉8000个区块。
Krypton拒绝支付赎金,并且在攻击发生后Krypton的创始人Stephanie Kent宣布将转向PoS共识机制来阻止未来的攻击。
遗憾的是这个项目没有成功:几个月之后项目就被迫终止了。
Verge - 2018年4月4日和2018年5月22日
Verge是唯一一个经历两次了51%攻击的项目,它分叉自狗狗币,被设计成具备隐私功能的匿名币。
2018年4月4日,Verge被第一次51%攻击,对Verge的攻击相当复杂,Verge为了避免算力的集中化使用五种算法,项目在五种算法间不断切换,攻击者正是利用Verge算法的漏洞,修改了区块链的时间戳,从而降低了Verge的难度,并使用远低于51%的算力攻击成功。
攻击前,Verge的难度在139093左右;而攻击发生时,难度暴跌至0.00024414。
为了回应这次攻击,Verge团队升级了协议,但意外导致一次硬分叉使得网络不得不回滚。团队修复协议的努力并没有什么作用,在5月22日,相同的攻击再次发生在Verge上,涉及金额比之前更大,达到3500万Verge,换算成美元约合170万。
Verge项目被51%可以归咎于协议过于复杂,允许矿工使用五种不同的哈希算法,但越是复杂就越容易出现漏洞,这是一种天然的硬伤。
比特黄金 - 2018年5月16日
比特黄金是比特币的一个分叉币,目的是通过抗ASIC避免算力中心化。
比特黄金使用Equihash算法进行挖矿,和ZCash一样。Equihash是一种重内存的算法,比特黄金选择它来促进网络上的显卡挖矿。
不幸的是,就和之前的51%攻击一样,这也使得比特黄金特别容易受到51%攻击。攻击者不需要自己购买硬件矿机,只需在攻击期间从算力租赁市场租用显卡算力,一旦算力达到比特黄金算力的51%,即可发动攻击。
5月16日,攻击者对比特黄金发起了第一次攻击,最后一次攻击发生在3天后的5月19日。这些攻击的目的是在交易所双花比特黄金,大约有12239 BTG被交易,当时价值约1800万美元。
在发现第一次攻击后,比特黄金团队建议交易所等待25个区块或者更多区块确认后再恢复交易,但两天后,开发团队建议增加到50个区块确认后再恢复交易。
作为对攻击的回应,比特黄金团队最终决定使用ZHash算法并进行了硬分叉,ZHash是加强版的Equihash算法,具有更强的抗ASIC能力。但这并不能解决比特币黄金的根本问题。
显卡矿机照样可以运行ZHash算法,而比特黄金的网络算力较低,只有2.85 MH/s,因此其依然存在被51%攻击的可能性。
以太经典 - 2019年1月5日
以太经典是以太坊的原链,在2016年DAO事件后,以太坊执行硬分叉从原来的链中分离出来,但社区中的部分人认为这违背了区块链的精神,故而继续在原链上开发和挖矿。
2019年1月5日ETC发现被执行了51%攻击,攻击者总共获得219,500 ETC,当时价值110万美元左右。
根据调查数据显示,攻击的成本大约是每小时5,473美元。攻击发生后,数字货币交易所比特儿宣布损失了40000 ETC。
与以太坊一样,以太坊Classic使用Ethash挖掘算法,这使得它特别容易受到攻击。在攻击发生时,以太坊的网络哈希值约为183 TH / s,比以太经典的8.75 TH / s算力高了接近25倍。
这意味着攻击者可以轻松地从云服务商租用算力攻击以太经典,但却不需要投资任何硬件设备,这种方式极大的降低了攻击者的成本。
总结
51%攻击就如同一把悬在加密社区头顶的利剑,督促人们要警惕随时可能出现的危险,这会压迫社区的人不断的去尝试改变和创新,对算法的发展会起到一个促进作用,能够适应的项目继续存在,否则就会被市场所淘汰。
51%攻击也有它的双面性,对于交易所而言,那些在攻击期间迅速反应停止交易的交易所得到了保护,而反应迟钝的交易所则受到惩罚,所以这是去中心化共识的一种体现。
物竞天择,适者生存,这是自然世界的生存规律,也是鞭策加密社区不断进步的达摩克里斯之剑。