加载中…
正文 字体大小:

什么是比特币51%的攻击?

(2018-12-30 11:42:48)
标签:

杂谈

什么是比特币51%的攻击?

什么是51%攻击?

在讨论51%攻击之前,我们必须来回顾一下比特币区块链的原理。

比特币的区块链本身就等于是一个不断被书写加长的账本,而这个账本的记账权,则是由算力决定的,算力高的矿工,就拥有更高优先级的记账权。

同时,由于不同的矿工在挖矿的时候,可能会同时挖掘出同一个区块,那么,区块链究竟应该采用哪个区块?

在这里,比特币是优先采用最长链,而非是最早挖出的区块。

最长链意味着,如果一个矿工挖出了一个区块后,而他没有继续顺着这个区块挖掘下一个区块,而是停止了。

其他矿工也没有挖掘他这个区块的下一个区块,那么,在下一个区块被挖出后,他所挖掘的这个区块的链,变回被比特币区块网络抛弃。

因为他的这个区块所形成的枝链已经不是最长链了,所以很多人在挖矿的时候,经常会发现,自己挖到的是孤块,那就是这个原因了。

矿工挖矿的时候,为了减少孤块的产生,通常会自己部署一个比特币节点服务器,使得自己挖出的区块,更容易被广播出去。

而自己挖出的区块被广播出去,也就意味着,即便下一个区块不是自己挖掘出来的,也有很大几率,是其他矿工挖掘出来。

而在这里,就存在一个问题。

如果一个恶意矿工,选择暂时不将自己的区块对外广播(比如在局域网内通过建立几个比特币节点,建立一个比特币网络),同时这个矿工的算力又大于其他所有矿工加起来的算力。

那么,这个矿工就可以先在自己建立的封闭的比特币区块链网络中进行挖掘,一段时间后,这个局域网内的比特币区块链长度就会长于外界的比特币区块链长度。

此时,他如果在外界的比特币网络中进行转账,比如进行大笔交易转账,等待交易确认后,得到大量的现金。

在外界主网络的区块链中,他转账的记录已经被区块链记录,是不可更改的。

但是,他自己所构建的子区块链中,并不存在该交易记录,所以在这个子区块链中,他的比特币依然没有被转账出去。

这时候,由于他的子区块链的长度已经长于外界主区块链的长度,他只需要重新将子区块链网络与外界的主区块链网络联网。

由于比特币只承认最长的一条区块链,此时他的子区块链长度长于主区块链,那么子区块链就会在整个比特币网络中覆盖替换所有原来的主区块链。

从而导致他曾经的转账交易记录被重写,在比特币区块链中,不再存在他对外转账比特币的记录。

于是,他就既得到了币,又得到了钱。这样的攻击,便是51%攻击。

51%攻击,不仅仅是他自己得利。很多接收比特币转账的人,也会因此受损,因为他们在51%攻击发起时接收的转账交易记录也会被覆写,从而造成严重损失。

0

阅读 评论 收藏 转载 喜欢 打印举报
  • 评论加载中,请稍候...
发评论

    发评论

    以上网友发言只代表其个人观点,不代表新浪网的观点或立场。

      

    新浪BLOG意见反馈留言板 电话:4006900000 提示音后按1键(按当地市话标准计费) 欢迎批评指正

    新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 会员注册 | 产品答疑

    新浪公司 版权所有