对于51%攻击,一般都是共识失败后才能成功,其实对于51%攻击,并不局限于一种,所以考虑到多种可能的攻击,是需要分析哪些可能被这样的攻击者利用。
一
首先攻击者是无法从他人账户中偷币的,除非攻击者可以推翻加密方法,否则直接偷币是不可能的。然后我们假设攻击者制造了一个不正当的区块,里面有一笔不正当交易,在这笔交易中把比特币从不受自己控制的地址转移到自己的地址上。攻击者可以把这笔交易伪装成正当交易,然后继续在这个区块后面延续建造区块,甚至可以把它变成一个最长的链。但是这其中会有个问题,就是其他的诚实节点不会认可这个不正当交易所在的区块,他们依旧会去比特币网络中找到之前最后一个正当的区块,然后基于此区块继续延续。所以从这一刻开始,链上就出现了分叉。
二
当攻击者把其他人钱包中的比特币转入到自己的地址中后,就会想着把这笔非法的比特币花出去,这就是另一种攻击方式,通过付给某个商家来购买他的商品。假设商家运行着自己的比特币节点,而且这是一个诚实节点。那么商家的这个节点就会因为含有这笔不正当的交易而拒绝这个非法的分支,因为区块中的数字签名相互不吻合。所以商家的节点就会自然的忽略掉攻击者制造的那个最长的链,因为这是一个非法的分支。然后转向比特币网络中之前最后一个正当的区块,在这后面延续。所以这个攻击是基本上不可能成功的。
三
接下来说另一种攻击,51%攻击者可以压制其他交易吗?比如攻击者特别讨厌某个用户饭饭,他知道饭饭的一些比特币地址,想使属于这些地址的币都无法使用。但是这可能吗?由于攻击者控制了区块链的共识过程,他可以轻易地拒绝创造包含来自饭饭地址的交易的新区块,他还可以进一步拒绝在含有类似交易的区块上延展。但他不能阻止这个交易被广播到整个点对点网络,因为网络不依赖于区块链或者共识,我们假设攻击者还没完全掌控网络。他不能阻止这个交易被发送到绝大部分节点上,所以即使他成功了,大家也都知道发生了攻击。
四
攻击者可以改变区块奖励吗?比如说攻击者开始假装把区块奖励由25个币改成100个币?这是对系统规则的改动,因为他没有控制所有诚实节点上运行着的比特币软件备份,所以同样不可能。这和为什么攻击者无法装入一笔非法交易的道理是一样的。其他节点不会轻易认可区块奖励提高,所以他也无法使用这些区块。
五
最后,这个攻击者会摧毁大家对比特币的信心吗?好吧,让我们想象一下会发生什么。如果有很多双重支付尝试,诸如节点不延展最长的有效分支,以及发生其他攻击,那么人们有可能会觉得比特币不再是一个他们可以信赖的去中心化账簿。人们会对货币失去信心,比特币价格将会无限下跌。实际上,如果人们知道有一方控制了51%的哈希算力(hash power),即使这个人没有发动任何攻击,大家也可能会对比特币失去信心。所以,这不仅仅是可能,事实上任何形式的51%攻击都会摧毁大家对货币的信心,这是51%攻击可以实现的最主要的实际威胁。考虑到在攻击比特币,实现51%多数的过程中,会花费掉巨额的代价,而且这还是一个吃力不讨好的活,所以这种情况我们现在看来基本是不可能发生的。
至此希望您对比特币的去中心化管理有了一个完整的了解。你也应该理解了比特币里的身份如何工作、交易是如何被传播和验证的、比特币里点对点网络的作用、如何用区块链达成共识、函数难题与挖矿是怎么回事。这些概念为理解比特币的更多微妙细节和细微差别提供了坚实的理论基础,是一个良好的出发点。
网友评论