在比特币挖矿机制中发现了零日漏洞 - ForkLog:加密货币、人工智能、奇点、未来

BTClogo# 在比特币挖矿机制中发现了零日漏洞

自比特币挖矿算法启动以来,存在一个计算错误,允许以极高的速度挖掘区块。研究员洛伊克·莫雷尔(Loïc Morel)对此进行了说明。

中本聪犯了错误。

从一开始,比特币的挖矿就存在一个漏洞。这是中本聪的一个简单计算错误,可以被利用以极端的速度挖掘区块。这是BIP-0054(讨论中的一个漏洞。我为你…… pic.twitter.com/GurNv3qKrZ

— 洛伊克·莫雷尔 )@Loic_Pandul( 2026年4月11日

根据发布内容,故障与难度调整机制有关

每隔2016个区块)大约每两周(,节点会重新计算目标值,以确保每10分钟产生一个区块,而不考虑矿工的计算能力。为此,节点会测量上一个周期的持续时间,将其与目标值)2016 x 600 = 1,209,600秒(进行比较,然后相应地调整难度。

“问题出在这些计算中。为了测量过去周期中区块的时间间隔,节点会将第一个区块的时间戳与最后一个区块的时间戳进行比较。直觉上这似乎合理,但实际上这是一个错误,因为在第一个和最后一个区块之间只有2015个间隔,而不是2016个,”莫雷尔解释道。

如果用t0表示第一个区块的时间戳,t2015表示最后一个区块的时间戳,节点会计算经过的时间为T = t2015 — t0。这样就得到了2015个区间)从t0到t1 > 从t1到t2 > … > 从t2014到t2015(。

为了得到2016个区间,应该使用另一种公式:T = t2015 — t-1,其中t-1是前一周期最后一个区块的时间戳。

这被称为“偏移一单位”的错误。该漏洞引入了大约0.05%的误差,导致难度略微偏高。

但真正的问题在于另一点。这个缺陷导致调整周期不重叠——一个周期的最后一个区块的时间戳在计算下一个周期时未被考虑。

时间操控

这个差异使“时间扭曲”攻击成为可能。其原理如下:

  1. 控制大部分算力的矿工开始为除最后一个区块外的所有区块设置最小允许时间戳)。
  2. 在周期的最后一个区块中,他人为地设置最大允许时间戳。
  3. 周期结束后,难度会被调整。由于攻击者操控时间戳,测得的周期比实际更长,导致难度降低。
  4. 攻击者在下一个周期重复类似操作。由于周期不重叠,第一个攻击周期的第二个区块可以具有远古的时间戳,而前一个区块的时间戳在未来。这个差异会随着周期增加。

多次重复此过程,攻击者理论上可以将挖矿难度降低到每秒生成多达六个区块(而不是每10分钟一个)。

“后果将非常严重:区块链将变得毫无用处,网络将过载,重组次数增加,交易确认变得毫无价值。这将使攻击者能够以疯狂的速度获得区块奖励,”研究员补充道。

如果第一个和最后一个区块在两个连续周期中相等,攻击将无法实现。

如何修复此错误?

莫雷尔指出,可以通过BIP-0054中的软分叉来修复此问题。

该方案要求新周期的第一个区块的时间戳不超过前一周期最后一个区块的时间戳两小时。

此限制恢复了周期之间的“某种连续性”,防止时间操控,并使“时间扭曲”攻击变得不可行。

提醒一下,去年2月,Castle Island Ventures的尼克·卡特(Nick Carter)预测比特币可能因量子威胁而出现“企业接管”。

BTC1.98%
查看原文
此页面可能包含第三方内容,仅供参考(非陈述/保证),不应被视为 Gate 认可其观点表述,也不得被视为财务或专业建议。详见声明
  • 赞赏
  • 评论
  • 转发
  • 分享
评论
请输入评论内容
请输入评论内容
暂无评论