所谓的51%攻击,就是攻击者控制全网51%以上的算力,大多数人对51%攻击有误解,会以为控制了大部分的算力就可以随意“改写”帐本,把别人的钱变成我的钱,其实这是不对的,即使攻击者控制了全网90%以上的算力,也不能把别人的钱变成他的钱,因为比特币和其他加密货币的转移需要有持有人的数字签名才能完成,即使是攻击者也无法擅自创建交易。

当比特币所有者发起交易时,验证后的交易会被放入等待打包的交易池中,矿工再从这些池中挑选交易打包成区块。对挖矿不了解的人建议先阅读这篇文章「什么是挖矿」。总而言之,矿工的计算能力越强,取得计帐权的机会就越大。当矿工取得计帐权后,便开始打包区块并将其广播给其他矿工,其他矿工会根据现有的区块链交易记录验证区块内的交易是否有效。

如何进行51% 攻击

51% 攻击的情况下,当一个恶意矿工取得计帐权时,他同样打包交易,但是!他不将其广播出去,于是出现了两个版本的区块链。

绿色区块链为全网认可的真实区块链,红色区块链是攻击者维护的“秘密”版本。

举个例子,恶意矿工用他所有的币买了一台车。在真实的区块链上,他的比特币现在已经用完了。但在他的秘密版区块链上,他并没有将这笔交易打包,因此,他仍然拥有那些比特币。

重点来了,区块链存在着最长链共识(精确来说是”最困难”或“工作量”最多的链,但我们将其简单化),简单来说,如果网络中出现两个版本的区块链,全网矿工会选择最长的那一条为准。如果恶意矿工的算力只有全网的30% ,那他维护的秘密区块链的长度,很难超越真实区块链的长度,因为他要跟其他70%的矿工竞争。

然而,如果恶意矿工拥有超过51%的算力,他就有较大的机会比其他矿工更快地将区块添加到区块链。当恶意矿工创建的秘密区块链比真实区块链长时,他就会突然将这个版块的区块链广播到网络上,其他矿工会发现这个区块链版本比他们正在处理的版本更长,协议便会诱使他们切换到这个链,秘密区块链因此被视为真实的区块链,并且「此链上未包含的所有交易将立即被撤销」。换句话说,攻击者之前用来买车的那笔交易会被回溯,比特币又重新回到攻击者的钱包,攻击者又能够再次花费这些比特币。

51% 攻击成本高昂

以上就是一次成功的51%攻击方式。不过,大家也不需要太过担心,实际上这种攻击非常难以执行。就像前面提到的,一个矿工必须要有超过全网一半的算力才能完成攻击,考虑到比特币区块链上有数百万的矿工,即使是地球上最强大的计算机也不能与该网络上的总计算能力直接竞争。如果真的要攻击,恶意矿工必须花费大量资金购买挖矿设备、厂房和其他固定成本,再加上电费等其他开销,对攻击者而言,进行51%攻击未必划算,至少在比特币区块链的情况下是如此,但对其他总算力较小的区块链而言,就不一定了。