最近几天,知名公链项目 ETC(以太坊经典)疑似遭到51%攻击,国外交易所 Coinbase,Coincheck,和 bitFlyer 均称已监测到 ETC 链上多个块高度存在双花交易 (Double Spending),并暂停了ETC的存取操作。
据区块链安全公司PeckShield最新数据显示,在01月05日到01月08之间,ETC链上至少有15次疑似双花交易,共计损失 ETC 219,500枚,价值约110万美元。
根据 crypto51.app 数据(见下图),攻击ETC的每小时成本是4,528美元。有消息称,黑客此次实施51%攻击的成本约两万美元,而攻击者在4个小时内,用超过51%算力双花了(收益)至少4笔总计54200个 ETC,价值约27万美元。这样算来,黑客此次双花攻击ETC的攻击收益超过了10倍。
事实真是如此吗?
如果按照这个逻辑,同样引用 crypto51.app 数据,就会发现,双花攻击BTC 每小时285,244美元成本,ETH是99,349美元成本。就算是攻击 BTC 网络,四小时也就一百万美元,这对于市值高达700亿美元的BTC而言,51%攻击的成本也着实低了些,很难不让人有所怀疑。众所周知,大型区块链网络之所以很稳固,原因就在于作恶的成本非常高,比如,窃取私钥的成本,实施双花攻击的成本,高到近乎不太可能发生。
(crypto51.app 数据:各大公链实施攻击所需成本)
那么,ETC 遭双花攻击的成本到底该怎么算呢?
要对一条链进行51%攻击其实很简单,你拥有超过一半的总算力 (Hashrate) 就行了。要想得到这51%的算力,有两种办法。一种是说服一半的现有矿工跟你走,把矿机都交给你。这个操作起来不太容易,因为矿工是分散的,很难说服他们放弃挖矿的确定收益,来博取双花攻击的不确定收益。而且关键问题是,一旦双花攻击成功很可能造成币价大跌,砸了他们的长期饭碗,这样做无异于引火自焚。还有一种办法是拉来新的算力并超出现有算力的一倍之上。比如,现有ETC的算力是8 TH/s,你拉来8.1TH/s 算力就可以攻击 ETC 了。那么,到哪里去找这新的算力?最简单易行的办法是去租。例如有一个NiceHash网站 (www.nicehash.com),你出钱就可以租到算力任由你支配。
好了,假设我们从 NiceHash 来租算力攻击 ETC,那么需要多大的预算?
首先,51%攻击不是几个小时就能搞定的,至少需要数天时间。PeckShield 监测到,此次ETC攻击发生在四天时间内,多次的数据回滚超出100区块。链上数据只显示了成功的攻击,实际上会有多次失败的尝试链上看不到,还可能在攻击前需要进行几天的调试准备。
所以,攻击者至少在四天的时间内,一直持有这些矿机不断尝试进行攻击。我们就按4天计算,4,528 x 24 x 4 = 434,688美元。这还是此次实施 ETC 51%攻击的保守成本估计。到目前为止,攻击者的收益并没有10倍那么夸张。
那么问题来了,攻击 BTC 是不是也可以这么干?答案是不能。因为 NiceHash 市场不够大,没法租到足够大的算力。上图最后一栏是 Nicehash-able,说的是攻击一个区块链,有百分之几的算力可以在 NiceHash 上租到。我们可以看到能100%租到,可攻击的最大的链就是 ETC。
如果一定要玩把大的,就要攻击 BTC 怎么办?只能买矿机自己搭网络。BTC 今天 (01月08日) 的算力是40.3 EH/s,假如我们采用比特大陆的Antminer S9 矿机 (14.0 TH/s, 售价约400美元),成本是40,300,000 / 14 x 400 = 1,151,428,571美元。大批量购买矿机可能会有一些折扣,但把这些矿机安装到数据中心也需要大约20%的费用,这里两者抵消都不算。BTC出块慢,进行51%攻击需要的时间也就更长,我们假设需要7天。S9功耗是1.35千瓦,电费按较低的3美分每千瓦计算,40,300,000 / 14 x 1.35 x 24 x 7 x 0.03 = 19,585,800美元。那么攻击 BTC 的总费用为1,171,014,371,超过11亿美元。所以,对 BTC 实施双花攻击近乎于不可能。
从以上分析不难看出,51%攻击的门槛并不低,尤其是攻击 BTC 或 ETH等主流的数字货币,天价成本高到几乎不可能。不过,攻击 ETC 这样相对较小的链还是可行的,事实上也已经发生过多次,PeckShield 在此提醒广大用户,只有足够大的主链才足以完全避免51%攻击,因此持有分叉后的小币种应加以谨慎堤防遭双花攻击的可能。
作者:PeckShield