当大多数人想到可能对比特币或加密进行的攻击时,他们想到的是51%的攻击,一个矿工聚集了大部分网络哈希能力,并划分了区块链,目的是双倍花费或实现代码更改。然而,另一种不太为人所知的攻击是时间扭曲攻击,这也是本文所要探讨的。
简而言之,时间扭曲攻击发生在矿工在他们开采的矿块上报告不正确的时间戳,以降低难度。很多加密货币,比如比特币,会根据块生成的速率周期性调整难度,所以块生成在代码中保持固定的数量,比特币每块10分钟。通过报告错误的时间戳,矿工可以欺骗难度算法,降低难度,允许他们更快地挖掘方块,赚更多的钱。这对一个加密货币公司的经济产生了负面影响,因为一个定时攻击会增加加密货币公司的通胀率,导致供应激增,从而导致市场价格下降。在比特币的代码中,一个块在将来最多可被占用2小时,超过这个时间点就会被拒绝。这种回旋余地的设计是为了解释计算机时钟中的错误,因此,如果矿工的计算机时钟稍有故障,他们就不会被拒绝。在比特币的历史上,有很多例子表明,在下一个块的时间戳之后,以前的块有一个时间戳,这似乎是存在的个问题,特别是在引入新技术的时候,比如在2012年比特币采矿池首次推出的时候。阻塞时间戳的2小时灵活性为时间扭曲攻击打开了大门。对于比特币来说,进行一次重大的时间扭曲攻击是非常困难的,因为它在区块链上是公开的,而一次成功的攻击需要大部分的矿业力量。然而,这仍然是可能的,如果大多数矿工一起工作,理论上他们可以降低持续时间扭曲攻击的难度,直到只需要1秒就可以开采一个块,这是可能存在块时间的最小值。在这种时间扭曲攻击的最坏情况下,不需要2周的时间来挖掘2016个区块,只需要半个多小时。这将导致比特币供应的迅速膨胀,这可能对市场造成相当大的损害。比特币矿商不太可能串通一气,发动这样的时间扭曲攻击,因为矿商已经在采矿基础设施上投入了数十亿美元,而如此极端的时间扭曲攻击对比特币生态系统造成的破坏将会抹杀他们的投资。更不用说这对社会来说是显而易见的破坏,而且会引起公众的强烈抗议。然而,对于某些加密货币,执行时间扭曲攻击要容易得多。例如,与每两周调整一次难度的比特币不同,Verge加密货币不断地重新调整难度。因此,如果某个人在Verge获得了哈希能力的绝大部分,他们就可以迅速实施极端的时间扭曲攻击。此外,Verge使用多种挖掘算法,允许多个攻击点的存在。这正是发生的情况,有人在时间上攻击了Verge,把加密的难度降到了最低,他们在这个过程中净赚了数百万美元。
比特币社区正在讨论修改代码以防止时空异常攻击,显然其他加密货币也需要遵循这一理念,以防止像Verge那样的灾难性时间扭曲攻击。然而,如果比特币的时间隧道攻击漏洞被修复了,就会有一种新的想法被称为“转发块”(Forward block),这种想法显然会受到抑制,因此,在比特币代码中实现时间扭曲攻击修复的工作陷入僵局。话虽如此,如果比特币的时间扭曲攻击成为了一个问题,那么修正就可以部署了。