密码百科丨什么是51%算力攻击?
发布时间: 2018-12-21 10:38:13

自比特币网络成立以来,关于51%算力攻击的讨论就一直没有停止过,有人认为这是比特币发展中不能忽视的一个安全问题,那么51%攻击到底是怎么回事呢?今天密码百科给大家好好科普一下。

51%攻击是比特币网络中不能忽视的安全问题

一、什么是51%攻击?

51%攻击又叫大多数攻击,是指恶意矿工控制了区块链网络50%以上的哈希率(hashrate,即算力),随后对网络发动攻击,接管区块链网络让不法分子得以逆转交易、停止支付或者防止新交易予以确认。

大家知道,在区块链上,每一个区块都承载着上一个区块的数据信息,所有区块相连,才构成一条完整的数据链,。而之前我们也说过,要想改动比特币网络上某一个区块上的数据,必须将连接的6个区块上所有数据一起改动,这就涉及到计算机速度问题,也就是算力,而纵观现有的比特币网络,只有超过50%的算力,才能拥有改动区块数据的能力,这就是所谓“51%攻击”的来源。

 

二、如何发动51%攻击?

攻击者在发动攻击前有两个条件:

1、掌握比特币全网的51%算力
2、手里持有大量比特币

攻击者发动攻击的步骤:

1、把比特币转到交易所或某个机构或个人,卖出所有比特币,并且收到钱、把钱提现到银行帐号(提现目的是为确保收益,也可不用提现)。这个时间越短越好,能大大节省攻击时间;

2、用51%算力从还没向交易所转币的区块开始重新生成区块,比如:向交易所转币的区块为第30万个区块,攻击者就在第29万9999个区块开始重新生成区块;

3、因为攻击者有51%算力,且假设他能在攻击过程中一直保持51%算力,这样他生成的攻击块链一定能追上原块链,意味着攻击会成功;

4、当攻击块链的长度超过原块链2个区块,所有的客户端将丢弃原块链,接受攻击块链,至此,51%攻击成功。

攻击成功之后,会给比特币网络带来什么后果呢?以上面举的30万个区块为例,当51%攻击实现以后,原块链上29万9999个区块之后交易全部作废,也就是说,29万9999个区块之后接收到比特币的人发现币消失了,又回到了原转出的交易人账户中。

发动攻击:掌握51%算力和持有大量比特币二者缺一不可

三、51%攻击发生的概率有多大?

如果有人掌握了50%以上的算力,意味着他能够比其他人更快地找到开采区块需要的那个随机数,因此拥有修改区块的绝对权力。但是51%攻击并非万能,对于攻击者来说,能够达到的和不能达到的目标也非常明显。
他能够:
1、修改自己的交易记录,这可以使他进行双重支付;
2、阻止区块确认部分或者全部交易;
3、阻止部分或全部矿工开采到任何有效的区块。
但是他无法做到:
1、修改其他人的交易记录;
2、阻止交易被发出去(交易会被发出,只是显示0个确认而已);
3、改变每个区块产生的比特币数量;
4、凭空产生比特币;
5、把不属于他的比特币发送给自己或其他人。

所以51%攻击对于比特币来说并不是一个什么大问题,因为早在2013年7月,比特币全网算力已经达到世界前500强超级计算机算力之和的20倍,即使有政府集全国之力秘密造出一台超级计算机,用来击溃比特币来挽救自己的货币发行体系,它会发现使用该能力进行挖矿便可垄断比特币的发行权,其收益远大于击溃比特币,动机也就不复存在了。

掌握51%的全网算力目前看来几乎是不可能的事

然而51攻击会导致大家对比特币失去信心,对于攻击者自己有什么好处呢?作为既得利益者,他想做的应该是千方百计维持这个系统。有能力的不想发动,想发动的没能力,中本聪设计这个系统,利用的就是人性的特点来维持系统的正常运行。而就现实情况来说,发生51%攻击的概率非常小,除非攻击者是疯子或者疯子组织,否则不会有人冒此大险。

专注挖掘新鲜有料的区块链行业新闻
密码财经微博