比特币协议漏洞曝光:时间扭曲攻击或致大规模难度操纵

robot
摘要生成中

比特币协议漏洞:时间扭曲攻击

2025年3月,比特币开发社区提出了一项名为"大共识清理"的软分叉提案。该提案旨在修复比特币协议中长期存在的几个漏洞和弱点,其中包括我们最近讨论过的重复交易问题。另一个更为严重的漏洞被称为"时间扭曲攻击",这正是本文要重点探讨的内容。

比特币安全漏洞:时间扭曲攻击

比特币区块时间戳保护机制

在讨论时间扭曲攻击之前,我们需要了解当前比特币网络中的时间操纵保护规则:

  1. 中位过去时间(MPT)规则:新区块的时间戳必须晚于前11个区块时间戳的中位数。

  2. 未来区块时间规则:新区块的时间戳不能比网络节点的中位时间超前2小时以上。同时,节点之间允许的最大时间差为90分钟,这是另一重保障。

MPT规则防止区块时间戳过于回溯,而未来区块规则则限制时间戳过度超前。值得注意的是,无法对过去的时间戳实施类似未来区块规则的限制,因为这可能会影响区块链的初始同步过程。时间扭曲攻击正是通过伪造远远回溯的时间戳来实现的。

比特币安全漏洞:时间扭曲攻击

中本聪的"差一"错误

比特币的难度调整周期包含2016个区块,按10分钟出块时间计算,约为两周。在计算挖矿难度调整时,协议会计算2016区块窗口中首尾两个区块的时间戳差。这个窗口实际包含2015个区块间隔(2016-1)。因此,理论上应使用的目标时间为60秒 × 10分钟 × 2015个间隔 = 1,209,000秒。然而,比特币协议使用了2016这个数字来计算目标时间:60秒 × 10分钟 × 2016 = 1,209,600秒。这是一个典型的"差一"错误,很可能是中本聪在计算时混淆了区块数与区块间隔数。

这个错误导致目标时间比实际应有的长0.05%。换言之,比特币的真实目标出块间隔不是10分钟,而是10分钟零0.3秒。这个微小的差异在实际运行中并不显著,因为自比特币诞生以来,由于算力持续增长,平均出块间隔一直维持在9分钟36秒左右,明显短于10分钟。这也解释了为什么最近的减半事件提前到2024年4月而不是2025年1月。虽然这0.3秒的误差看似微不足道,但它却衍生出了一个更为严重的漏洞。

时间扭曲攻击原理

时间扭曲攻击约在2011年首次被发现,它利用了中本聪在难度计算中的错误。假设挖矿完全中心化,矿工可以在协议允许的范围内任意设置时间戳。攻击者会将大多数区块的时间戳设置为比前一个区块仅提前一秒,使区块链在时间上缓慢前进,同时遵守MTP规则。为了最大限度地减缓时间前进,攻击者可以连续六个区块保持相同时间戳,然后在第七个区块增加一秒,如此循环。

这种操作会导致区块链时间逐渐落后于真实时间,同时难度不断增加,使挖矿变得越来越困难。然而,为了增强攻击效果,攻击者会在每个难度调整周期的最后一个区块中将时间戳设置为真实世界时间。而下一个周期的第一个区块则会被设置回过去,比前一周期倒数第二个区块仅提前一秒。这种做法仍然符合MTP规则,因为单个异常值不会影响11个区块的中位数。

实施这种攻击后,第一个周期的难度不会受影响。但从第二个调整周期开始,难度将开始显著下降。随后,攻击者可以以极快的速度创建区块,潜在地铸造大量比特币,从中获利。

比特币安全漏洞:时间扭曲攻击

攻击可行性分析

尽管理论上这种攻击具有毁灭性,但实际实施面临诸多挑战:

  1. 可能需要控制大部分网络算力。
  2. 诚实矿工的存在会增加攻击难度。
  3. MTP规则和诚实时间戳会限制恶意时间戳的回溯程度。
  4. 如果诚实矿工产生任何难度调整窗口的第一个区块,该周期的攻击将失效。
  5. 攻击过程对所有人可见,可能触发紧急软分叉修复。

比特币安全漏洞:时间扭曲攻击

潜在解决方案

修复这个漏洞有几种可能的方法:

  1. 改变难度调整算法,计算不同2016区块窗口之间的时间跨度,同时修正"差一"错误。但这可能需要硬分叉。

  2. 取消MTP规则,要求每个区块的时间都严格递增。但这可能导致时间戳过度提前,或因矿工之间的时钟差异而产生问题。

  3. 一个更简单的解决方案是要求新难度周期的第一个区块时间不早于前一周期最后一个区块的特定分钟数。目前讨论的时间范围从10分钟到2小时不等。

在最新的大共识清理提案中,开发者倾向于采用2小时的限制。这个时间段约为难度调整周期目标时间的0.6%,可以有效限制难度向下操纵的空间。

无论最终采用哪种方案,修复这个长期存在的漏洞都将进一步增强比特币网络的安全性和稳定性。

比特币安全漏洞:时间扭曲攻击

此页面可能包含第三方内容,仅供参考(非陈述/保证),不应被视为 Gate 认可其观点表述,也不得被视为财务或专业建议。详见声明
  • 赞赏
  • 6
  • 分享
评论
0/400
喝茶看盘侠vip
· 07-07 18:30
这bug真给币圈添堵了
回复0
Gas_FeeCriervip
· 07-07 15:25
整天喊着gas费贵,那可不是闹着玩滴
回复0
ShibaOnTheRunvip
· 07-04 22:21
我杀了个来看看 这问题有点严重啊
回复0
末曾在场vip
· 07-04 22:15
早晚出事 没想到这么快
回复0
链上冷面笑匠vip
· 07-04 22:07
别担心 矿工们又不傻
回复0
GasWastingMaximalistvip
· 07-04 21:59
又得改共识了,btc搞事真多
回复0
交易,随时随地
qrCode
扫码下载 Gate APP
社群列表
简体中文
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)