白话说币圈,从入门到精通
臭名昭著的51%算力攻击,是加密货币协议中的主要缺陷,但很少见到,特别是在最流行的加密货币中。
我们把区块链假设为一个账本,每个区块就是每页账本页,当一页账本页记满帐的时候,就需要把它用“密码”(哈希值)封印起来,并把这页内容存到一个文件夹中。
假设有10个玩家,其中某个玩家试图修改某页账本中的内容,他就不得不修改很多页的内容并重新计算这些页面上的封印密码。我们都知道计算封印密码有多难!从他修改的那页开始,他就得在网络中重新建立另外一条链。但是这条链永远追不上另外9个人维护的那条诚实的链的,因为一个人的工作能力和速度是赶不上9个人合在一起的工作能力和速度的。因此,保证了最长的那条链是“诚实的”链。因此,在这局游戏中,1个不诚实的家伙是打不过9个诚实的玩家的,他是不可能修改成功的。
如果不是一个人,而是六个人变得不诚实呢?
这种情况,用专业术语来说就是“51%攻击”,也就是在整个网络中有人的算力超过了全网的51%。
如果51%攻击发生,就会破坏区块链去中心化的特性,同时也让网络处在几种攻击风险之下,例如自私挖矿,取消所有转账,双花以及随机分叉。
自私挖矿
假设小红和小明是两矿工,他们同时解答了对应区块所需要的数学难题。那么就要看网络认可谁挖出来的区块。如果网络中有80%的算力选择去挖小红的区块,那么她出块的概率就要比小明高的多。
这样,小红的区块就会成为主链的一部分,而小明的区块就只能被遗弃,不会加到主链上。这时候,如果小红始终有51%的哈希力,她就能不停地去挖区块,然后将那个块加入到主链上,而且还不需要整个网络的批准。
这样小红就可以在其他人毫无察觉的情况下偷偷的挖出区块并拿走所有的挖矿奖励和转账费用,想想就觉得兴奋呢!
取消所有转账
假如小红想给小明转账,那么矿工就需要验证她的转账信息,再把信息放到区块里面,这样小明才能收到转账。
这时候假设比特币正在被51%攻击,那么这个区块就会被攻击者挖出,因为他有51%的哈希力。
换句话说,这时候他拥有绝对的权力,能够不接受任何区块的任何转账,而这些区块之后是要被放到主链上的。如果攻击者一直不接受任何转账,那么比特币网络将会彻底被摧毁。
双花现象
所谓“双花”,就是一笔钱被花了两次,同个币在同一时间被转账了2次。但是转账只会在矿工将转账信息放入他们挖出的区块后才会发生。所以,矿工最重要的作用之一就是可以防止“双花”现象。
假设小明想去同时追小红和小朱,但他又是个穷光蛋,就想着投机取巧把同一个币同时转给她们。这时候矿工站出来了,只把其中一个转账信息放入区块,然后覆盖另外一个,从而防止了“双花”。
但在51%攻击的情况下,攻击者才是最后将新区块放入区块链上的人,他们完全可以将两笔转账信息都放入区块中。甚至,还可以将同一个币进行多次转账。
如果发生“双花”现象,那么这类币的价值就会被严重打压,也会对其造成毁灭性的影响。而且通过链分叉,也会发生“双花”现象。
随机分叉
“分叉”大家应该都有所了解,毕竟之前比特币分叉的事情闹得人尽皆知。下图中的红链就是从蓝链分叉而来的。假如51%攻击者在区块51中花了20个比特币买了其他数字资产,他们就很容易能在区块50进行分叉,得到一个新区块51。
神奇的是,在分叉的时候,新的区块51中攻击者也会得到之前区块中的资产。也就是蓝色区块51中会获得等同20个比特币的其他数字资产,在红色区块51中也会有20个比特币,这其实也就是分叉导致的“双花”现象。
主链分叉现象(图片来自网络)
最可怕的是,在51%攻击下,区块是由攻击者挖出来的,如果别的矿工想要去产生新的区块,那么攻击者可以在你挖出区块前,去分叉新的链,然后在新链基础上继续挖矿。
虽然看起来51%攻击非常恐怖,但是发生的几率却很小很小。因为这首先需要一笔非常庞大的资金去掌控全网51%的算力,其次在攻击后,币种价格会受到影响,攻击者需要卖出非常多的币才能达到收支平衡。
所以,聪明人是不会费这个劲的。
▼
添加请留言:币燃有你
更多内容推荐
币燃有你
ID:biranyouni
▲
领取专属 10元无门槛券
私享最新 技术干货