在深入了解 51% 攻击之前,我们有必要先仔细了解挖矿和基于区块链的系统。
比特币及其底层区块链技术的主要优势之一是构建和验证数据的分布式特性。节点的去中心化工作可确保遵守协议规则,并确保所有网络参与者同意区块链的当前状态。这意味着大多数节点需要定期就挖矿过程、使用的软件版本、交易的有效性等达成共识。
比特币的共识算法(工作量证明)确保了矿工只有在网络节点一致同意其提供的区块哈希值是准确的情况下(即区块哈希值证明矿工的工作量足够并为该区块的问题找到了有效的解决方案)才能验证新的交易区块。
作为一个去中心化账本和分布式系统,区块链基础设施可防止任何中心化实体将网络用于自己的目的,这就是比特币网络不存在单一权威的原因。
由于挖矿过程(在基于 PoW 的系统中)涉及投入大量电力和计算资源,因此矿工的表现取决于其拥有的算力,这通常称为哈希算力或哈希率。参与挖矿活动的节点有很多,而且分布在不同的地点,这些节点会相互竞争,因为它们都想成为下一个找到有效区块哈希值的节点,并获得新生成的比特币奖励。
因此,挖矿能力分布在世界各地的不同节点上,这意味着哈希率不会由某个单一实体掌握。至少也不应该如此。
但如果哈希率分布不佳会发生什么?例如,如果某个实体或组织能够获得 50% 以上的哈希算力会如何?可能导致的后果之一就是我们所说的 51% 攻击,也称为多数攻击。
51% 攻击是针对区块链网络的潜在攻击,指单个实体或组织能够控制大部分哈希率,从而可能扰乱网络。此时攻击者将有足够的挖矿能力来故意排除或修改交易的顺序。他们还可以在管控网络的情况下撤销已做出的交易,从而导致双花问题。
成功的多数攻击还可以让攻击者阻止部分或所有交易被确认(交易拒绝服务),或阻止部分或所有其他矿工挖矿,导致所谓的挖矿垄断。
另一方面,多数攻击无法让攻击者撤销其他用户的交易,也无法让攻击者阻止他人创建交易以及将交易广播至网络。变更区块奖励、凭空制造代币或窃取不属于攻击者的代币也都无法实现。
由于区块链由分布式节点网络维护,因此所有参与者都是在达成共识的过程中开展合作。这是区块链的安全性一般较高的原因之一。网络越大,防御攻击和数据损坏的能力就越强。
而关于工作量证明区块链,矿工拥有的哈希率越高,为下一个区块找到有效解决方案的机会就越大。这是真的,因为挖矿涉及无数次哈希尝试,而更高的计算能力意味着每秒可以尝试更多次。一些早期矿工加入了比特币网络,为其发展和安全作出了贡献。随着比特币作为一种货币的价格不断上涨,许多新矿工进入该系统,意图争夺区块奖励(目前设定的奖励为每区块 12.5 枚比特币)。这种竞争的存在是比特币安全的原因之一。如果不是为了诚实行事并努力获得区块奖励,矿工就不会有动力投入大量资源。
因此,由于比特币网络的规模较大,51% 攻击不太可能发生。一旦区块链变得足够大,单人或团体获得足够计算能力来压倒所有其他参与者的可能性就会迅速下降到极低的水平。
此外,随着链的增长,更改之前确认的区块会变得越来越困难,因为这些区块都是通过加密证明链接起来的。出于同样的原因,一个区块所获确认越多,更改或撤销其中交易的成本就越高。因此,一次成功的攻击可能只能在短时间内修改最近几个区块的交易。
接下来请试想,如果一个恶意实体攻击比特币网络并非为了获得利润,而只是为了将其摧毁,并且不计代价。那么即使攻击者成功破坏了网络,比特币软件和协议也会回应其攻击,迅速进行修改和调整。这需要其他网络节点达成共识,就这些更改达成一致,但如果情况紧急,该流程可能很快就可以完成。比特币具有很强的抵御攻击的能力,被认为是现存最安全、最可靠的加密货币。
虽然获得比其余比特币网络更多的计算能力对攻击者而言相当困难,但如果是规模较小的加密货币,挑战性就小很多。与比特币相比,山寨币拥有的可保护其区块链的哈希算力相对较低。低到足以让 51% 攻击切实发生。受到过多数攻击的加密货币的几个著名例子有 Monacoin、Bitcoin Gold 和 ZenCash。