哈希攻击
比特币的共识机制理论上容易受到矿工(或矿池)的攻击,他们试图利用自己的算力进行不诚实或破坏性的行为。正如我们所见,共识机制依赖于大多数矿工出于自身利益而诚实行事。然而,如果一个矿工或一组矿工能够获得相当大的算力份额,他们就可以攻击共识机制,破坏比特币网络的安全性和可用性。
需要注意的是,算力攻击对未来共识影响最大。随着时间的推移,最佳区块链上的确认交易变得越来越不可变。虽然理论上,可以在任何深度达到分叉,但在实践中,迫使一个非常深的分叉所需的计算能力是巨大的,使得旧区块变得非常难以更改。算力攻击也不会影响私钥和签名算法的安全性。
共识机制面临的一种攻击场景被称为多数攻击或 51% 攻击。在这种情况下,一组矿工,控制了总网络算力的大部分(例如 51%),串通一气攻击比特币。拥有挖掘大多数区块的能力,攻击者可以导致区块链中故意的“分叉”,双重支付交易,或对特定交易或地址执行拒绝服务攻击。分叉/双花攻击是指攻击者通过在之前的确认区块下方分叉并重新汇聚到备用链上,导致先前确认的区块无效。拥有足够的算力,攻击者可以使六个或更多的区块无效,导致原本被视为不可变的交易(六次确认)被取消。需要注意的是,双花只能对攻击者自己的交易进行,因为攻击者可以生成有效的签名。如果使一笔交易无效使攻击者可以获得不可逆的交易支付或产品而无需付款,那么双花自己的交易可能是有利可图的。
让我们来看一个 51% 攻击的实际例子。在第一章中,我们看到了 Alice 和 Bob 之间的一笔交易。作为卖家,Bob 愿意在不等待确认(在区块中挖矿)的情况下接受付款,因为相比较迅速的客户服务而言,小额商品的双花风险较低。这类似于一些咖啡店接受小于 25 美元的信用卡支付,无需签名,因为信用卡追回的风险较低,而为了获取签名而延迟交易的成本相对较高。相比之下,以比特币出售更昂贵的商品存在双花攻击的风险,即买方广播一笔竞争交易,使用相同的输入(UTXOs),从而取消向商家的支付。51% 攻击允许攻击者在新链中双花自己的交易,从而撤销旧链中相应的交易。
在我们的例子中,恶意攻击者 Mallory 前往 Carol 的画廊,购买了一套描绘 Satoshi Nakamoto 为普罗米修斯的精美画作。Carol 以 25 万美元的比特币将画作出售给了 Mallory。Carol 在仅一次确认后,便将画作包装交给了 Mallory。Mallory 与一个名为 Paul 的共犯合作,Paul 经营着一个庞大的矿池,共犯一旦 Mallory 的交易被纳入一个区块中,就会发起攻击。Paul 指示矿池重新挖掘与包含 Mallory 交易的区块相同高度的区块,用一笔双花交易取代 Mallory 向 Carol 的支付。双花交易消耗相同的 UTXO 并将其支付给 Mallory 的钱包,而不是支付给 Carol,本质上允许 Mallory 保留比特币。然后,Paul 指示矿池挖掘额外的区块,使包含双花交易的链比原始链更长(导致在包含 Mallory 交易的区块下面出现分叉)。当区块链分叉有利于新(更长)链时,双花交易将取代对 Carol 的原始支付。Carol 现在失去了三幅画,并且没有收到支付。在所有这些活动中,Paul 的矿池参与者可能对双花尝试毫无察觉,因为他们使用自动化矿工进行挖矿,无法监控每一笔交易或区块。
为了防范这种攻击,销售价值较高的商品的商家必须在将产品交付给买家之前等待至少六次确认。等待超过六次确认有时可能是有必要的。或者,商家应该使用托管的多签名账户,在资金到位后再等待几次确认。确认次数越多,通过重新组织区块链来使交易无效的难度就越大。对于价值较高的商品,即使买家必须等待 24 小时才能交付,比特币支付仍然会很方便和高效,这大约对应着 144 次确认。
除了双花攻击之外,共识攻击的另一个场景是拒绝为特定参与者(特定比特币地址)提供服务。拥有大多数挖矿算力的攻击者可以审查交易。如果它们被包含在另一个矿工挖掘的区块中,攻击者可以故意分叉并重新挖掘该区块,再次排除特定的交易。这种类型的攻击可能会导致针对特定地址或一组地址的持续拒绝服务,只要攻击者控制了大多数挖矿算力。
尽管其名称是 51% 攻击,但实际上并不需要 51% 的哈希算力。事实上,这样的攻击可以尝试用更小的哈希算力。51% 的阈值只是这种攻击几乎肯定会成功的水平。哈希算力攻击本质上是下一个区块的拉锯战,而“更强大”的一方更有可能获胜。哈希算力较少时,成功的可能性会降低,因为其他矿工通过他们的“诚实”挖矿算力生成了一些区块。从一个角度来看,攻击者拥有的哈希算力越多,他可以故意创建的分叉越长,他可以使过去更多的区块无效,或者他可以控制更多未来的区块。安全研究团队使用统计建模声称,各种类型的哈希算力攻击可能只需要 30% 的哈希算力就可以实现。
由于挖矿池引入的控制中心化,导致了挖矿池运营商进行以盈利为目的的攻击的风险。托管挖矿池中的池运营商控制候选区块的构建,并控制包含哪些交易。这使得挖矿池运营商有权排除某些交易或引入双花交易。如果这种权力滥用以一种有限且微妙的方式进行,挖矿池运营商理论上可以从哈希算力攻击中获利而不被注意到。
然而,并非所有攻击者都会受到利润的驱使。一个潜在的攻击场景是,攻击者打算在没有从这种破坏中获利的情况下破坏比特币网络。对比特币进行恶意攻击可能需要巨大的投资和隐蔽的规划,但可能会由一个资金充裕的、最有可能是由国家赞助的攻击者发起。另外,一个资金充裕的攻击者可以通过同时积累挖矿硬件、妥协挖矿池运营商,并对其他挖矿池进行拒绝服务攻击来攻击比特币。所有这些场景在理论上都是可能的。
毫无疑问,严重的哈希算力攻击会在短期内侵蚀人们对比特币的信心,可能导致价格大幅下跌。然而,比特币网络和软件不断发展,因此比特币社区将采取措施应对攻击。
Last updated