当前位置:首页 → 资讯 → 软件资讯 → 比特币下一个软分叉可能是修 bug 不是抗量子 谁已经在照着改

比特币下一个软分叉可能是修 bug 不是抗量子 谁已经在照着改

发布时间:2026/11/5 10:36:19来源:游吧乐编辑

10月29日19点14分,第973728号区块被打包出来。它是新一轮难度周期的第一个区块,记账时间写着19:14:58,而它前面那个区块写的是18:59:30,中间隔了15分28秒。按比特币现在的规则,这个时间完全合法,甚至可以再往前推两个多小时:规则只要求它不比前一块早7200秒。新规则打算把这个缝关掉。

这条新规则叫 BIP-54,习惯上被称为共识清理。它在比特币改进提案库里已经推进到 Complete 状态,BIP-54 规范自己记录的最后一次改动是 2026年5月22日的 1.0.0 版。它与抗量子签名、OP_CAT 那类热闹话题无关,修的是四个留了很多年的老毛病:时间扭曲、最坏区块验证时间过长、64字节交易造成的梅克尔树混淆、以及重复的 coinbase 交易。

值得单独看的是另一个事实:这条规则还在讨论阶段,主网上的矿池已经开始照着改了。我数了 973622 到 974621 这一千个区块,其中 412 个的 coinbase 已经符合 BIP-54 对 nLockTime 和 nSequence 的要求,占 41.2%。改动是从矿池软件的自愿升级开始的,不是等激活之后才发生。

先把四个问题拆开,看哪一个最值得先修

时间扭曲是最重的那个,也是最容易拿着链上数据检验的。比特币每 2016 个区块调一次难度,调整公式读的是这 2016 块里第一块和最后一块的记账时间差。这条规则默认矿工不太可能在时间上做手脚,可是时间戳只要求比当前网络时间快不超过两小时,慢的方向几乎没有约束。

于是一个掌握多数算力的矿工,可以在新周期第一个区块上把时间戳往回拉,让这个周期的“实际耗时”变小,难度随之降到最低允许值,然后在这个低难度上多挖出一批区块。BIP-54 规范把这个过程的终点写得很直白:最快 38 天就能把难度压到 1。难度一旦掉下去,同样算力产出的区块数量成倍增加,区块奖励被提前挖走,后面的矿工就少了。

最坏区块验证时间是第二个。Antoine Poinsot 在 2026年3月的 Delving 讨论里给出了他自己实测的数字:能构造出来的最坏区块,在一台 12 代酷睿 i5-12500H、32GB 内存的机器上要验证约 10 分钟,另一位开发者在更老的 Xeon 上跑了 29 分钟。这对普通节点不是毁灭性的,但它把“独立验证”的成本抬高,也让矿工多了一个对付竞争对手的办法:故意打包一个自己验证得动、别人验证得慢的区块。

先厘清一件事:它不会像抗量子签名那样,需要换掉整套密码学。量子威胁的讨论在过去一年很热,但真要改签名算法,牵扯的是每一把私钥、每一个钱包、每一笔历史输出,而 BIP-54 只动四条验证规则,钱包和地址格式完全不变。它之所以看起来“不够重要”,正因为它改的是网络底层的记账逻辑,而不是用户能摸到的东西。

剩下两项小得多。64 字节的交易去掉见证数据后恰好等于梅克尔树内部节点的长度,可以拿去做假证明骗轻钱包;coinbase 重复则是一个历史遗留的账本问题,最早的重复要到第 1,983,702 块才可能出现。这两项单独看都不值得动员全网的共识讨论,绑在一起才划算。

矿机与服务器机柜

Binance全球顶级交易所
类型:金融理财大小:306.2M语言:多国语言[中文]时间:11-2评分:10.0

新规则到底改了什么,为什么是收紧而不是放开

BIP-54 的规范不长,改动都落在验证规则上。对每一个区块高度 N,如果 N 能被 2016 整除,也就是新周期第一块,它的时间戳必须不低于前一块时间戳减去 7200 秒;如果 N 除以 2016 余 2015,也就是周期最后一块,它的时间戳必须不低于第 N-2015 块的时间戳。后一条对应的是另一种叫作 MurchZawy 的攻击,它的风险主要停留在理论层面,但修起来几乎不要钱,因为一个难度周期的时长本来就不该是负数。

签名操作的上限是另一处。每个非 coinbase 交易按输入累计 CHECKSIG 类操作,总和超过 2500 就是无效。这一条并不是凭空设的:标准交易的单个 P2SH 输入本来就不允许超过 15 个签名操作,所以要撞上 2500 这条线,得专门写一个只增加验证开销、别的什么都不做的赎回脚本。BIP-54 写着,这条限制把最坏区块的验证时间压下来大约 40 倍。

第二条最简单:去掉见证数据后序列化长度恰好 64 字节的交易直接无效。这样的交易只能装着让任何人可花的脚本或者销毁脚本,自 2019 年起已经不属于标准交易,2016 年之后也没有再出现过。

第三条要理解得绕一下。BIP-34 激活之后,显式的 BIP-30 校验其实只对第 1,983,702 块这一个未来区块有意义。与其留着这个检查,不如要求新挖出的 coinbase 交易的 nLockTime 等于所在区块高度减一,nSequence 不等于 0xffffffff。这样它的锁定期本身就是高度,同一个 coinbase 交易不可能在别的区块里再有效一次。

这四条有一个共同点:它们只收紧规则,不放宽。BIP-54 的向后兼容章节说得很清楚,没有哪个区块在新规则下有效而在旧规则下无效,所以不升级的节点也能接受新规则产出的区块,只是它无法完整验证全部规则。这也解释了为什么它能是软分叉:矿工先升级,其余人跟上就行。

链上数据给出的三个读数

第一个读数是我从 mempool.space 拉的当前难度周期。第 973728 块是这个周期的第一块,时间 19:14:58,前一块 18:59:30,差值是正的 928 秒。按现在这套规则,这一块本该可以比前一块早 7200 秒才算到边,换算下来就是还有 135.5 分钟的余地。BIP-54 一旦生效,同样的区块只能早 7200 秒,余地从这里被切掉。

第二个读数来自难度调整本身。9月19日到10月29日之间的四个难度周期,平均出块间隔依次是 600.2 秒、576.1 秒、566.7 秒、569.0 秒,对应难度从 132757 亿级别涨到 148365 亿级别。也就是说,最近三周主网其实跑得比“十分钟一块”快,这跟时间扭曲没关系,是算力涌入导致的正常调整。真正说明问题的是:这条链条上没有任何一次调整出现过负数时长,所以那两条时间戳限制在诚实挖矿下从来不会碰到。

第三个读数最有意思,也是这条提案和别的提案不一样的地方。最近这一千个区块里,有四家矿池产出的 coinbase 全部符合 BIP-54 的新格式:Foundry USA 251块、ViaBTC 98块、MARA Pool 54块、TrustPool 9块,合计 412 块。占这 1000 个区块的 41.2%,而且是连续分布,不是零星试水。剩下近六成由 F2Pool、AntPool、SpiderPool、OCEAN、Luxor、SECPOOL 等矿池产出,它们的 coinbase 仍然是旧格式,nLockTime 为 0,nSequence 为 0xffffffff。

我核对了几个具体区块确认这个标记不是解析错误。第 974620 块由 Foundry USA 挖出,coinbase 的 locktime 字段是 974619,正好等于高度减一,sequence 是 0xfffffffe;第 974602 块由 MARA Pool 挖出,locktime 是 974601;而第 974621 块由 AntPool 挖出,locktime 是 0,sequence 是 0xffffffff。同一批区块里两种写法并存,这个区别是真实存在的。

区块时间戳与难度调整

欧易okx交易所
类型:金融理财大小:549.4M语言:中文时间:11-1评分:10.0

矿池为什么愿意提前改一个还没激活的规则

答案在 BIP-54 的“矿工向前兼容”那一节:coinbase 通常由矿池自己的软件拼装,而作者明确写着,就他们所知,这类软件不存在一个被广泛使用的开源参考实现,所以只能呼吁矿池主动更新。这份呼吁真的被接住了,时间线在 0xB10C 的 mainnet.observer 和 Antoine Poinsot 的帖子里都留了痕。

第一块符合新格式的主网区块是 2026年2月19日的第 937404 块,来自一个小矿池 Whitepool。3月13日出现了无法识别归属的矿工开启兼容。4月27日,ckpool 加入。5月,ViaBTC 以“部分区块兼容”的方式跟上,因为它在跑多个不同版本的池软件。6月8日的第 952880 块,Foundry USA 也跟上了,它是当时最大的矿池,这个转向让采用率从个别试水变成了一条连续的曲线。

mainnet.observer 的每日计数更能说明节奏:2026年4月只有 220 块,5月 333 块,6月跳到 1451 块,7月 1788 块,9月 1785 块,10月 1907 块。到 11月4日为止,这个口径下的一天大约是 59 块。

这背后的动机不难推。coinbase 的 nLockTime 过去被 MARA 和 F2Pool 用来存作业元数据:断开连接的矿机重连后重发份额时,靠这个字段确认作业身份。BIP-54 要求 nLockTime 存高度,这块空间就被占了。Antoine 提到,MARA 接到邮件列表里的反馈后改用了 coinbase 的 nVersion 存元数据,F2Pool 也可以照做,但他自己的判断是 F2Pool 没那么急着动。这解释了为什么 MARA 已经 100% 兼容而 F2Pool 还是 0。

这套读法在什么情况下会失效

先说时间。这 80% 是 Corallo 在 MARA Foundation TV 那场访谈里给的主观判断,不是共识投票的结果,也不是 BIP 流程里的任何一步。他还在同一场访谈里提到,Sztorc 在 TABconf 上问了一圈,开发者们对最早激活时间的估计落在 2027年9月,多数人指向 2028年或更晚。这两句话并不矛盾:认为它“是下一个”,跟认为它“明年就来”,是两件事。

再说采用率这个指标本身。41.2% 只覆盖最近约七天,而且它衡量的是矿池软件有没有升级 coinbase 拼装逻辑,跟节点有没有准备好在规则激活后强制执行新规则,完全是两件事。一家矿池可以提前改格式,也可以在激活争议里站到反对一边。反过来说,F2Pool 这类旧格式占比高的矿池也不必然反对,它们只是还没到期。

第三点更关键:这是一次只做清理、不带来任何新功能的升级,它的通过与否取决于社区愿不愿意为“什么都不做”付出一次软分叉的社会成本。Taproot 2021年激活时就卡过一道,争论集中在矿工 signaling 阈值和强制的 user activated 切换日之间,最后是靠 Speedy Trial 加 UASF 的压力谈下来的。Corallo 的说法是希望借这次把整套部署流程走一遍,以后复制粘贴,省掉同样的争论。这是他的理由,不是社区已经接受的理由。

还有一层不确定:BIP-54 在 2026年2月13日于 Bitcoin Inquisition 测试网络上从第 291168 块起生效,这条测试路径能暴露实现层面的问题,但它不解决社会层面的共识问题。测试网上的活跃,和主网的激活决定之间没有必然联系。

接下来盯什么

观察这条提案,比等一个激活日期更实用的是盯几个能查的读数。一是 mainnet.observer 的每日计数:如果 F2Pool 或者 AntPool 开始出现兼容区块,说明到那时连最大的两家也在为将来的规则做准备,这比任何开发者的访谈都有分量。二是 Bitcoin Inquisition 上的运行情况,特别是有没有实现层面的回归。三是 Bitcoin Core 那个 2026年7月24日开的、把 BIP-54 实现进去但暂不激活 PR 的走向,它是从规范走到代码的必经一步。

对普通持币人,这条提案没有什么可操作的动作,钱包签名方式不变,地址格式不变,也不用迁移资产。真正会变的只有一件事:多数算力如果哪天被用来把区块时间戳往回拉,能拉的区域会从现在的两个多小时压缩到7200秒以内。这个改动听起来小,可它意味着难度调整不再能被一个持有过半算力的实体手动加速,区块奖励的发放节奏也就重新回到算力和市场的手里。

COMMENTS 网友评论

评分
★
★
★
★
★
力荐
选择头像:
10
999+人评分
★★★★★
★★★★
★★★
★★
★
查看更多 >