区块重组追踪

先看深度,再判断它够不够得着你。

七条网络上 14 起有据可查的事件,从 2010 年一次性的客户端故障,到 2024 年长达五小时的最终性停摆。每条记录都把成因、深度和后果分开写,没有 JavaScript 也能读。

显示 14 起事件

客户端故障

比特币 · 数值溢出事件

一次 53 个区块的重组,修好了一个校验漏洞

深度:约 53 个区块,自区块 74638 起。

发生了什么:一笔利用整数溢出的交易,造出了远超任何合法供应量的输出,并被打包进区块。修补版客户端在数小时内发布,修正后的链最终超过了有缺陷的那条。

它说明了什么:比特币历史上最深的几次重组,是修复,不是攻击。但机制是同一个。

Bitcoin Wiki 事件记录
客户端故障

比特币 · 0.8.0/0.7 链分叉

一次版本边界,把网络劈成两条看起来都合法的链

深度:自区块 225,430 起的一次短暂分裂;由矿池回退版本解决,不是被攻击者终结的。

发生了什么:由于 Berkeley DB 锁配置不足,0.8.0 版本产生的区块无法被 0.8 之前的节点处理。大型矿池被要求退回 0.7 以恢复单一链;随后发布了 0.8.1。

它说明了什么:主要交易所的充值和 BitPay 的支付一度暂停并很快恢复;分裂期间确实发生了至少一次大额双花——出手的人只是想验证这件事能不能做成。

Bitcoin.org 链分叉警报
客户端故障

比特币 · BIP66 SPV 挖矿事件

一半算力,在一个无效区块上又垒了六个区块

深度:7 月 4 日六个无效区块,7 月 5 日再加三个。

发生了什么:BIP66 的「1,000 个区块中 950 个为版本 3」门槛达成后,一个未升级的矿工产出了无效区块,而那些没有做完整校验的矿工继续在它上面延伸。

它说明了什么:当时公布的建议,本质上就是一条确认数策略——轻钱包、旧版 Core 和网页钱包用户被告知,要比平时多等 30 个确认。大矿工损失了五万多美元收入。

Bitcoin.org SPV 挖矿警报
多数算力攻击

Vertcoin · 603 个区块的重组

这个深度,是照着某一家交易所的确认数规则量出来的

深度:GMT 时间 15:19:47,603 个区块被移除,由 553 个攻击者区块取代。

发生了什么:约 125 枚 VTC——约 29 美元——通过五个输出被双花,同时攻击者拿走了 13,825 枚 VTC 的区块奖励。攻击成本估计为 0.5 至 1 枚 BTC。

它说明了什么:这个深度,恰好对上某家主要交易所对该资产约 600 个确认的要求。重组深度是一个「瞄准参数」,不是严重程度的度量。

技术攻击报告
多数算力攻击

Bitcoin Gold · 一月第一次重组

移除 14 个区块,换来约 1.9 万美元

深度:GMT 时间 18:01:32,移除 14 个区块,新增 13 个。

发生了什么:约 1,900 枚 BTG 被双花。制造这次重组的成本估计约 0.2 枚 BTC——按当时价格约 1,700 美元。

它说明了什么:当租算力的成本只是收益的零头时,确认数策略就是平台和这笔损失之间唯一的东西。

技术攻击报告
多数算力攻击

Bitcoin Gold · 一月第二次重组

15 个区块,一次跨过了平台的两道确认门槛

深度:GMT 时间 00:24:08,移除 15 个区块、新增 16 个,来自同一个攻击者地址。

发生了什么:约 5,267 枚 BTG——约 5.3 万美元——被双花。

它说明了什么:该平台充值要求 6 个确认、提现要求 12 个;两次的深度都超过了这两道门槛。事后它把 BTG 的提现要求提高到 20 个确认。

技术攻击报告
多数算力攻击

以太坊经典 · 八月第一次攻击

十二小时内重组了 3,594 个区块

深度:自区块 10,904,146 起 3,594 个区块,持续 12 小时 12 分钟。

发生了什么:针对 OKX,约 560 万美元——超过 807,000 枚 ETC——被双花。

它说明了什么:到了这个深度,任何确认数策略都不成立。平台唯一可行的应对,是停止为该资产入账。

ETC 51% 攻击风险评估
多数算力攻击

以太坊经典 · 八月第二次攻击

第一次之后四天,又重组了 4,446 个区块

深度:自区块 10,935,622 起 4,446 个区块,持续 15 小时 37 分钟。

发生了什么:针对 Bitfinex,约 330 万美元——465,444 枚 ETC——被双花。

它说明了什么:一周之内针对不同平台两次得手,这是一条「出块能力可以在公开市场上廉价买到」的链的典型特征。

ETC 51% 攻击风险评估
多数算力攻击

以太坊经典 · 八月第三次攻击

一天多的时间里重组了 7,278 个区块

深度:自区块 11,090,590 起 7,278 个区块,持续 26 小时 20 分钟。

发生了什么:这次事件没有留下有据可查的双花金额。

它说明了什么:到第三次攻击时,多数平台已经暂停或限制了该资产。攻击者如果找不到一个愿意入账的对手方,深度再大也收不到钱。

ETC 51% 攻击风险评估
协议防御

以太坊经典 · ECIP-1100(MESS)

一条把深度重组视为可疑的分叉选择规则

深度:不是事件。这是一项防御提案,其上限要求攻击者持续投入约 31 倍于竞争链的难度。

发生了什么:改良版指数主观评分(MESS)让节点越来越不愿意放弃自己已经持有的链段。Core-Geth 提议在区块 11,380,000 激活,预计时间为 2020 年 10 月。

它说明了什么:该规范现已标记为被后续提案取代,所以请把它读作 2020 年当时有据可查的应对,而不是 ETC 的现行策略。

ECIP-1100 规范
多数算力攻击

Bitcoin SV · 区块重组攻击

三条链被同时挖着

深度:自 11:46 起,观察到的最大深度为 14 个区块。

发生了什么:Bitcoin Association 认为这次攻击与 2021 年 6 月 24 日以及 7 月 1 日、6 日、9 日的攻击出自同一行为者,并表示正在与执法部门合作。

它说明了什么:当时建议的防御手段,是让诚实节点运营者把攻击者的链标记为无效——这是社会协调,不是协议机制。

Bitcoin Association 声明
客户端故障

以太坊 · 信标链七区块重组

一次只铺开一半的分叉选择更新,让验证者的视角分裂了七十秒

深度:七个区块,3,887,075 至 3,887,081,UTC 时间 08:55:23 至 08:56:35。

发生了什么:proposer-boost 分叉选择变更只覆盖了网络的一部分,于是运行不同版本的验证者,对一个迟到的区块做出了不同的判断。

它说明了什么:权益证明并没有消灭「最终性之前」的重组;而且在一条主流链上出现多区块重组,更可能是版本铺开留下的缝隙,而不是攻击。

重组分析与逐区块还原
最终性故障

以太坊 · 两次最终性延迟

链一直在出块,只是不再敲定它们

深度:没有重组。最终性中断约 25 分钟,次日又中断了一个多小时。

发生了什么:为旧信标区块投票的证明,在一个预防性缓存溢出后,迫使系统反复重建信标状态。参与率先后跌至 40.9% 和 30.7%。Teku 与 Prysm 发布了修复。

它说明了什么:没有任何历史被改写。暂停的是「不可逆」这件事——而这恰恰是一个等待最终性的平台所依赖的东西。

Prysm v4.0.4 发布说明,2023 年 5 月 15 日
活性故障

Solana · 主网 beta 停摆

五个小时里,没有任何新东西被敲定

深度:没有重组。区块最终化于 UTC 时间 09:53 停止;共识在 14:55 恢复。

发生了什么:该故障与此前排查一次 devnet 停摆时发现的漏洞表现一致。恢复需要一次协同的集群重启,修复版本为 v1.17.20。

它说明了什么:停摆并不会让已完成的交易变得可疑。但在重启完成之前,那条链上所有的充值与提现通道都是不通的。

Solana 停摆报告