区块链大学区块链研习社区块链

《锋哥论道区块链》之三区块链基础--51%攻击

2019-04-16  本文已影响10人  7dfc697cf7a9

中本聪在比特币白皮书中最后一节中,论述了当攻击节点所拥有的算力低于诚实节点所拥有的算力情况下,随着确认块数的增加,攻击节点赢得的概率呈指数下降,这是很多应用等待六个甚至六个以上确认的原因,一旦超过N个确认,攻击者得逞的可能微乎其微,概率值快速趋近零。
51%攻击是指掌握了比特币全网的51%算力之后,用这些算力来重新计算已经确认过的区块,使块链产生分叉并且获得利益的行为。
(1)如何发动51%攻击
假定发动51%攻击的人是一个理性的人,攻击的目的为了利益,而不是为了其他,因而攻击者在发动攻击前有两个条件:
1)掌握了比特币全网的51%算力
2)手里持有大量比特币
攻击者发动攻击
1)把比特币转到交易所或某个机构或个人,卖出所有比特币,并且收到钱、把钱提现到银行帐号(提现目的是为确保收益,也可不用提现)。这个时间越短越好,能大大节省攻击时间。
2)用51%算力从还没向交易所转币的区块开始重新生成区块
比如:向交易所转币的区块为第30万个区块,攻击者就在第29万9999个区块开始重新生成区块。
3)因为攻击者有51%算力,而且假设他能在攻击过程中保证一直51%算力,所以他的攻击一定成功,也就是说他生成的攻击块链一定能追上原块链。
4)当攻击块链的长度超过原块链2个区块,所有的客户端将丢弃原块链,接受攻击块链。至此,51%攻击成功。
(2)攻击造成后果
原块链上29万9999个区块之后交易全部作废,有以下影响:
1)29万9999个区块之后没有交易的客户的币数量没有任何影响。
2)29万9999个区块之后转出比特币的人会发现:币回来了。
3)29万9999个区块之后接收到比特币的人会发现:币消失了。
4)最重要的后果是:人们对比特币网络的信心降到冰点,比特币的币值将受到重创。
(3)51%攻击方式说明
1)这是一种能够获得最大利益的51%攻击方法,因为我们假定攻击者是理性的、为获得利益而攻击,而非一心置比特币于死地而不求任何回报的疯子。
2)无需51%算力就可以发动51%攻击,比如45%算力,有成功可能性,但非确定性成功。有这么一个场景:原块链长度30万,攻击者具备45%算力,从29万9999个区块开始计算,运气好的话,攻击块链延长到30万零2个,而原块链还是30万长度,攻击就成功了。这种攻击影响的区块数量少,如果币数量小,则被发现的可能性很小。目前大家担心的是这种情况。本人认为,虽然连续产出3个区块的可能性不大,但不是没有出现过,ghash.io就出现过连续产出5-6个区块的情况。因而这种非51%攻击的可能性完全存在,比特币世界要时刻监控、密切注意。
3)有人说多等几个确认就能避免51%攻击。这话有严重问题。如果是非51%算力的攻击,多等几个确认是有效的,数量特别大的比特币转帐应该等几天。但是如果是51%算力攻击,就应该知道,如果攻击者能一直保持51%算力,他可以从比特币最近检查点之后的区块开始重新计算,攻击块链能追上原块链,成功只是时间问题。如果攻击花费了1年时间,也要等1年的确认吗,因而这种认识不全面。
4)攻击块链可以隐藏地计算,直到比原块链多两个块链后才放出,按照目前的比特币网络协议,可以马上取代原块链,因而整个攻击可以不为人所知,直至最后一时刻。

上一篇下一篇

猜你喜欢

热点阅读