每天一个知识点:51%攻击

本文作者来自【U赞全球发烧友】,U赞社区将从今天开始,为大家每日分享一个区块链的知识点。

U赞,U Network 价值内容第一公链,是全球第一个去中心化内容估值和发布平台。

每天5分钟,助你在区块链的世界里自由翱翔~

本期分享者介绍

曾汨,在校大三学生,现居广州,农业信息技术专业。硅谷密探早期发烧友,也是电子产品发烧友(志趣相投的伙伴可以找我玩耍哟),新潮科技爱好者,2016年底接触到区块链这一项技术后产生浓厚兴趣,于是便开始学习探索之旅。有缘加入精英学院与众多圈内的爱好者一起学习区块链知识,探索行业发展的未来,希望能和大家共同进步。

以下为分享内容:

概念:什么是51%攻击

比特币挖矿时采用的共识机制是工作量证明(PoW),这就意味着谁拥有更多的算力,谁就更有可能获得记账权。所谓51%攻击,是指掌握了比特币全网的51%算力之后,用这些算力来重新计算已经确认过的区块,使区块链产生分叉并且获得利益的行为。

从原理上看,只要能够控制全网一半以上的算力资源,攻击者就可以拥有更大的概率获得区块的打包权力,从而修改自己的交易记录,进行双重支付,阻止区块确认部分或者全部交易,阻止部分或全部矿工开采到任何有效的区块。从而破坏区块链去中心化的特性,让整个比特币网络处在多种攻击风险之下。

过程:51%攻击流程

举个简单的案例:

小王在购物时,采用了比特币支付的方式,转了购物费给店家。在正常情况下,这笔交易会马上被放入交易池,等待被比特币网络打包进一个新的区块并连接到主链上。

假设小王但他不愿意为刚才的购物付款,且他拥有整个比特币网络51%甚至更多的算力,那么在这种情况下,他就可以发动51%攻击了。

此时,比特币网络中许多节点都接收到了这笔交易信息,并将这笔交易打包进新的区块,小王拥有的节点也同样在对新的交易进行打包。但是他把“小王支付XXX个BTC给店家”这笔交易记录改成了“小王支付XXX个BTC给小王(他自己的另一个钱包地址)”,然后再将这笔记录连同网络中的其它交易一同打包进一个新的区块。

小王拥有的计算节点将对这个更改过的区块进行计算,在计算出正确的值后将这个区块加入到主链中。由于小王拥有更多的算力,所以他比其他的节点更容易计算成功,也就更容易抢在其他节点计算出结果前将这个更改过交易记录的区块加入主链。此时,比特币网络中就拥有了两条链,一个是原来的主链,一个是小王计算出来的比原主链高出一个区块的伪造链。按照比特币区块链的设计原则,更长的链将取代原来的链成为新的主链。于是,这笔被修改过的交易就成为了真实存在的交易,小王相当于没有支付钱给店家便买了东西。

这里只是拿小王修改自己的交易记录进行举例,实际上,小王拥有对所打包区块中所有交易记录的编辑权(即可以修改打包哪些交易,拒绝哪些交易,更改交易的各项信息),当小王在拥有了51%以上的算力后,他就有更大的概率将这个被他修改后的区块加入到主链上去,从而完成攻击。理论上讲,51%的攻击只能将新产生的伪区块加入主链,而不能修改在此之前主链上所含区块中的交易记录信息。

攻击的可行性

一方面,随着比特币网络算力的不断增长,想拥有全网51%以上的算力几乎不可能实现,非几大矿池联手,才有可能发起51%攻击,否则很难,这要耗费巨大的资金。

另一方面是绝大多数的矿工,都会通过诚实挖矿来维持整个比特币系统。如果他们集体联合起来作恶,用户将对比特币网络的诚实性失去信心,没有人会愿意再去使用比特币。也因此,比特币就会失去价值,最终矿工也没有利益。

但对于某些山寨币来说,由整个网络的算力还不够大,因此面临51%攻击的可能性也更大。

虽然看起来51%攻击非常恐怖,不过这通常仅存在于理论情况下有理性的人,为了获得更大收益而攻击的人,实际上是不会发动这样的攻击的。

更多学习内容,添加小猪手微信

回复“知识点”进群免费学习

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180605G1LHRH00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券