什么是区块链51%攻击?
摘要: ETC、AE接连遭遇51%攻击,这到底是是怎么回事?
哈喽大家好,今天我们的主题是,什么是51%攻击?
昨日,AE遭遇黑客51%攻击,损失3900万枚代币(价值约400万美元)。无独有偶,此前ETC也曾反复遭遇51%攻击,大幅降低用户体验。那么,什么是51%攻击?
我们首先举个例子。假设币小宝花费1个比特币购买了一台电脑,几天后,我收到电脑,商家受到比特币。但币小宝可以通过51%攻击抹除这笔交易,如果成功,那么,这1枚比特币还在我的账户中,相当于币小宝没花一分钱,得到了电脑。
在介绍51%攻击之前,我们首先了解一下POW机制,这里以比特币挖矿过程为例。
比特币挖矿的过程,便是寻找新区块哈希值的过程。比特币网络大约每隔10分钟便产生一个区块,每一个区块有唯一的哈希值(类似于身份证号码),而这个哈希值需要矿机进行大量的运算,算力越高,运算速度越快,找到的哈希值的概率也越高。一旦某一位矿工找到哈希值后,便会广播全网,其他矿工验证后,便会确认,将交易数据写入区块,至此,一个挖矿过程便已结束,继续寻找下一个区块哈希值。
因此,假如某个矿工拥有100%的算力,那么这个矿工一定可以找到最新的区块哈希值;而当这名矿工拥有51%的算力时,大概率也会率先找到下一个区块哈希值。
51%的攻击过程
上面提到,找到区块哈希值的矿工应该将哈希值广播给全网,告诉其他矿工。
但是,攻击者矿工可以不广播,而继续在他自己打包的块后面不断打包新的数据块,创建一个别人不知道的分支链。现在网络上就存在两条区块链,如图:
这两条链分别是:
- 主链(绿色),其他所有矿工正在挖矿的链;
- 腐败链(红色),攻击者正在挖矿的链。攻击者只要在腐败链上挖矿并且一直不广播,网络上其他矿工不会得到攻击者打包的数据块,它对网络上的其他矿工是隐身的。
这时,攻击者可以在主链(绿色)上花掉他所有的比特币,比如他花费10个比特币买了一辆保时捷。但与此同时,这笔交易并没有被记录在腐败链上,换句话说,在腐败链上,他继续拥有这10个比特币。
注意,攻击者矿工在腐败链上排除了他自己的交易。同时,攻击者继续从网络上得到数据块并添加到腐败链上。
问题来了。
区块链被设计为是民主的,也就是少数服从多数。
区块链通过始终相信最长链来达到民主,毕竟大多数矿工挖矿的链会更长(最长链 =民主)。
这就是区块链如何判断哪条链才是主链,反过来,钱包的余额也依赖于主链。
现在比赛开始了。
谁有更大的哈希计算能力,谁就会更快将块添加到其挖矿的链上,谁的链就会更长。
这是一个攻击者矿工与全网矿工的赛跑。
现在,攻击者矿工拥有更多的哈希计算能力(51%),他在腐败链上挖矿的速度更快。
竞赛
现在,腐败链正以比主链更快的速度在延长。一旦腐败链比主链更长了,攻击者矿工便会立即向全网广播这条腐败链,而其他矿工检测到这条腐败链比他们原本挖矿的主链要长,按照协议,他们必须丢掉原本的主链,替换成这条腐败链。
原本的腐败链现在被认为是主链,是值得信任的真实的链,所有在原主链上记账的交易数据都被丢掉了,就像没有发生过一样。
攻击者之前用比特币买了一辆车,但是这个交易现在并不存在于现在的主链上(红色)。他再次拥有了他曾经已经花掉了的比特币,他可以再次花掉这些比特币。
这就是一次双花攻击,通常叫 51% 攻击,因为攻击者矿工的哈希计算能力必须比网络上其他所有矿工算力的总和更多(也就是至少有全网 51% 的算力),才可以让他自己的链比主链更长。
51%的攻击的可能性
在历史上,发生51%攻击的大多数是一些小币种,因为小币种的算力更少,如果要控制算力所需的成本更低。相反,如果有人试图攻击比特币网络,难度有多大呢?
首先,攻击比特币网络不符合矿工利益。假如比特币网络被攻击后,用户对比特币网络信心丧失,没有用户使用的比特币网络,比特币将一文不值,这对矿工有什么好处呢?
其次,攻击比特币网络需要51%的算力,目前,比特币网络算力分散在全球数百万不同的矿工之中,要控制如此多的算力需要数百亿美元的资金成本,而且,大型机构不可能冒险去控制比特币网络。
不过,理论上来说,为了防止51%攻击,一般比特币大额交易要等待6个区块之后,基本上也就没什么问题了。
《币小宝区块链公开课》是由币小宝官网推出的区块链入门科普内容,更多区块链知识,欢迎关注币小宝专栏,转载请注明出处。
作者:币小宝;来自链得得内容开放平台“得得号”,本文仅代表作者观点,不代表链得得官方立场凡“得得号”文章,原创性和内容的真实性由投稿人保证,如果稿件因抄袭、作假等行为导致的法律后果,由投稿人本人负责得得号平台发布文章,如有侵权、违规及其他不当言论内容,请广大读者监督,一经证实,平台会立即下线。如遇文章内容问题,请发送至邮箱:linggeqi@chaindd.com
评论(0)
Oh! no
您是否确认要删除该条评论吗?