在币圈大家经常会听到51%攻击,前几个月ETC遭受了51%算力攻击成为当时的热门事件。今天我们了解什么是51%攻击?
昨天我们用小王、小李的例子了解了比特币的最长链共识。在了解51%攻击之前,我们先要了解双重支付问题。
昨天我们讲到, 最后矿工们放弃了小李的账本,选择小王的账本(即B1区块)。 这里B2、C2、D2区块就是无效区块,比特币把它们称为“孤块”。由于网络延迟等原因,孤块每时每刻都可能发生,由于最长链原则,比特币才能朝着一条链延伸。
我们前面学习过,当一个新区块挖出后,会打包当前区块的交易信息,并向全网广播。当B2、C2产生时,矿工们并不知道自己的块会成为孤块,矿工第一时间打包交易向全网广播。这时B2链产生的交易被矿工们验证成功,当确认最长链为B1后,在B2链上的交易将重新确认。这时就可能产生双重支付问题,即一笔钱被花了两次。
为了方便理解,还是用小王的例子。假如小王的村子足够大,A向B转了一个比特币,这个交易信息被B2区块打包并广播,小王、小李跑了很久才在村头碰面,这时候小李得知自己的B2区块不能用了,自然上面的交易都不算数了。B2链上的交易会重新被确认,恰巧A和小李一起跑到了村头,A就动了歪心思,把刚刚转给B的1个比特币又转给了C。这样这个比特币就支付了两次,这就是双重支付。为了避免这种情况发生,中本聪想到了一个办法:每笔交易至少需要6次以上全网确认。
51%简单说就是攻击者想把一笔钱花两次。当最长链确认后,攻击者继续在无效链上继续挖矿,比如在B2链上。假如小李买通了村里的人,超过51%的人开始在B2链上继续挖矿,这个时候B2链挖到区块的概率大大增加,就会超过B1链,B2链重新称为主链,B1链上的交易就会回滚。
在ETC遭遇51%之前,还曾有一个分叉币种BTG遭遇过51%攻击,网传过程如下:
当ETC遭遇51%攻击后,交易所为了交易安全,提高了确认次数。确认次数越高,想要改变区块的难度就会越大。
上面我们讲了分叉币BTG遭遇51%的例子,那么什么是分叉币?下回聊聊比特币的儿子们。
才疏学浅,以上内容如有纰漏,欢迎指正 。
------分割线----
『力场lichang.io』公链挖矿第一社区