摘要
5月25日,据报道比特币黄金BTG遭51%攻击,一名恶意矿工获得了BTG网络至少51%算力,临时控制了BTG区块链,在向交易所充值后迅速提币,再逆转区块,成功实施双花攻击。这是区块链首次被篡改。攻击者可能从交易所窃取超过388200个BTG,价值高达1860万美元。
什么是51%攻击
所谓51%攻击,就是使用算力优势撤销自己已经发生的付款交易。根据概率学计算,如果有人掌握了50%以上的算力,他能够比其他人更快地找到生产区块需要的那个哈希数,因此他实际上拥有了篡改区块链数据的权利。
如何攻击
以比特币网络为例:
小王给小张转了一个BTC,这笔交易被高度为525894的区块记录下来。
然而,小王也是比特币网络的一名矿工,并且刚好拥有超过网络51%的算力,他想把这一个比特币收回来,于是他开始攻击了。
小王在高度为525893的区块之后重新生成了一个伪区块,这个伪区块高度也是525894,因为拥有51%的算力,小王比别的节点更容易优先计算成功,并且,很快他又在这个伪区块后面连接了两个区块,于是小王的伪区块链就成了最长链,按照区块链的原则,小王的这个链就代替了原有的链成为后面的主链。而包含小王给小张转了一个BTC的交易的区块就被抛弃了,而小张这个BTC也永远都收不到了。
51%的攻击为什么能够成功?
从理论上来看有几个原因:
第一,比特币网络采用工作量证明机制,也就是说,谁先计算出哈希数,就以谁的区块为准,拥有超过全网51%的算力,就会比别人优先计算出哈希数,甚至可以连续生产几个区块。无论它是否是作恶节点。
第二,比特币网络规定,区块链以最长链为主,只要伪区块之后的区块多余原链,就会变成新的主链,被所有人接受。
如何防范攻击
防范51%攻击可以从两方面看:
一方面看,如果真有这样的51%攻击,建议是收款方最好确保信息得到了 6 个确认。这里用的是基本肯定,不过等的时间越长这笔交易越安全是肯定的。
另一方面,为了从根本上防范51%攻击,最好的办法是对共识机制进行改良,例如IFMChain公有链采用的DPOP(委托参与度权益证明机制)共识机制,这能有效防范该类风险,在区块链初始和成长阶段尤为重要。
本能区块链实验室
领取专属 10元无门槛券
私享最新 技术干货