51%算力攻击

虽然比特币的体系在设计上已经大大降低了双重支付的可能,但没有绝对安全的系统。在攻击者拥有超过整个网络一半算力的情况下,就有能力推翻原有已经确认过的交易,使恶意的双花成为可能,业内形象地称之为51%算力攻击。攻击者掌握了全网51%的算力后,可以用这些算力来重新计算已经确认过的区块,使区块产生分叉,完成双花并获得利益。攻击者如果发动攻击,则能做到:

1)控制自己的交易,一笔发给接收者,另一笔发送给自己,让最终发给自己的交易成功而接收者的失效,欺骗接收者,实现双花成功。

2)阻止别人的交易被打包到区块,让交易不能确认。

3)阻止别人生成新的区块,获得区块奖励。

不能做的事情如下:

1)控制别人发送的交易。

2)阻止别人发送交易。

3)更改每个区块的奖励数量。

4)凭空产生币。

5)发送不属于他自己的币。

通过上述内容可很容易看出,攻击者实施51%算力攻击时唯一对自己有利的就是,完成对自己交易的双花,骗取交易接收方的利益。

而从经济学的角度去看这个攻击问题,攻击者通过攻击来获取利益,但这是需要成本的(算力成本),只有当攻击获取的收益大于成本,也大于他诚实工作所获取的收益时,攻击者才会自发动攻击的意图。假定的有理性的人,即为了获得更大收益而发起攻击的人,实际上是不会发动这样的攻击的。这样就产生了51%攻击的悖论,攻击者发起攻击要考虑自身利益,出于较高的成本,算力拥有者都会选择诚实的工作。

除了上述的攻击成本之外,攻击其实也依赖于社区的理性选择,这也让攻击的成功率很低。历史上,Ghash.io曾经出现过算力接近于51%的情形,造成了社区恐慌,矿工选择撤离,最终让Ghash.io的算力急剧下降。而国内4家矿池也曾出现整体算力接近51%的情形。2015年,国内矿池联盟合作,而且并未遵守社区软分叉的协议,产生新版本号的区块,造成区块高度为36731~36736的相关区块不符合社区的协议。另外,其他矿池基于36731产生新版本的区块,而未选择在国内产生的新区块的链条上挖矿,此事件也同样引起社区的热议。最终,违背社区协议的国内几大矿池将所挖的区块作废,在遵从社区协议的链条上挖矿产生新版本号的新区块。历史上的诸多事件证明,除了共识算法,社区成员的理性选择,也同样是维护整个区块链体系安全的保障。

猜你喜欢

转载自www.cnblogs.com/cxyzt/p/9207033.html