新闻加密货币追查 Coldcard 黑客:第一波盗币者或已被 FBI 掌握身份

追查 Coldcard 黑客:第一波盗币者或已被 FBI 掌握身份

作者: Bitcoin Magazine·

要点速览

  • 2026 年 7 月 30 日的 Coldcard 首波盗币转走了 1,082.65 BTC,这些币至今仍未从攻击者地址中移动。
  • Block 表示,其调查将这些转移关联到一家区块链服务商的付费账户,而该服务商日志与请求模式呈现出极其精确的匹配。
  • 到 8 月初,跨多波次的已确认和估算损失已超过 1,800 BTC,涉及超过 5,000 个地址,且已确认被盗约 1.18 亿美元。
  • 漏洞源于 Coldcard 固件中的种子生成熵缺陷,受影响设备最早可追溯到 MK2 且固件版本为 4.0.1 及之后。
  • 研究者称,部分后续波次表现出不同的操作行为,这表明在信息披露后,可能还有其他人利用了同样的弱种子空间。
追查 Coldcard 黑客:第一波盗币者或已被 FBI 掌握身份

执法部门可能已经知道是谁在 2026 年 7 月的首波、也是最大一波攻击中,从 Coldcard 钱包中转走了超过 1,000 bitcoin。Block 的调查称,其已将攻击者在链上的转移追踪到一家大型区块链数据提供商的付费账户,而该提供商的内部日志与盗币模式呈现出“极其精确”的匹配。

PSA: 这起攻击仍在继续,目标是使用存在弱私钥生成问题的设备,最早可追溯到 MK2 且固件版本为 4.0.1 及之后的设备。如果你可能持有此类设备,请务必再次核查,并尽快转移资金。请参阅 Coinkite advisory 和 status page。

来自第一波的资金——1,082.65 BTC——仍未被动用,保留在攻击者地址中。这使得受害者至少有机会追回部分被盗资金。如今的关键问题是黑客究竟是谁,以及这条线索指向的是一名复杂的外部攻击者,还是更接近 Coinkite 曾警告过的内部“退休攻击”。

Coldcard 的影响并不限于其自身用户。由 Coinkite 制造的 Coldcard 设备,是市场上较为知名的用于自托管比特币的硬件钱包之一,私钥在离线环境中生成并存储,而不是保存在联网服务器上。用于生成这些密钥的随机性一旦存在缺陷,就会直接动摇这一模型的基础。

我们已知的情况

2026 年 7 月 30 日,攻击者开始系统性地清空那些在存在漏洞的固件下生成种子的 Coldcard 硬件钱包;这一漏洞在多年间都未被发现。仅第一波、也是最大一波就转走了 1,082.65 BTC。随后又出现更多波次,估计总量超过 2,000 BTC。Galaxy Research 的 Alex Thorn 通过链上模式分析和受害者自愿报告追踪了这起活动。到 8 月初,跨多波次的已确认和估算损失已超过 1,800 BTC,涉及超过 5,000 个地址,不过随着新报告不断出现,最终总额仍在持续修正中。按美元计算,已确认被盗金额约为 1.18 亿美元。

Thorn 公开表示,执法机构可能已经掌握了幕后操作者的明确线索。在 Bitcoin Magazine YouTube 频道播出的 Bitcoin Policy Institute 片段中,Thorn 说:“Wave one’s identity, attacker identity, may be known to law enforcement.” 他补充称,Wave 1 仍是目前识别出的最大单笔资金块,而且这些币仍留在攻击者地址中;同时他指出 Wave 2 的模式足够相似,可能涉及同一名行动者。Wave 2 还为总额增加了大约 76 个 bitcoin。

关于黑客身份可能已被知晓的主要信息来源,是 Block 负责 Bitkey 的工程负责人 Clay Garrett。2026 年 7 月 31 日,Garrett 公布了 Block 调查的发现:

“During our investigation of the Coldcard drain yesterday, we identified an unusual pattern in the sweeps. That pattern led us to a hypothesis that has since been confirmed: the operator used a paid account at a well-known blockchain-services provider to query the source addresses and perform other related activity during the sweeps.”

“We contacted the provider directly. Their internal logs matched the suspected workflow with extraordinary specificity, including the number, timing and sequence of requests. The provider was supplying its standard services in response to requests that did not reveal their broader purpose. We have seen no evidence that the provider knowingly participated in or facilitated the suspected theft.” Garrett said, and added that; “We are sharing the relevant information with the appropriate authorities. We will provide further updates when doing so will not interfere with the investigation.”

对调查人员而言,这一发现意义重大,因为它弥补了通常分隔链上盗窃与现实身份之间的鸿沟:这些转移与一个付费账户相连,而该账户的请求日志——查询次数、时间和顺序——被服务商保留,形成了链外证据链。Garrett 表示,Block 目前正将这些相关信息分享给适当的执法机构。

Thorn 和其他人指出,后续规模较小的波次呈现出不同的操作模式——包括快速、机会主义式清空,随后迅速进行洗钱——这表明在最初公开披露后,可能有其他参与者逆向推导出了同样的弱种子空间。自报确认的盗币活动似乎在 8 月 6 日后明显放缓,不过,在 2021 年至 2026 年 7 月补丁之间、受影响固件生成的许多潜在脆弱种子,在用户迁移前仍然处于风险之中。

退休攻击?

这一失败的性质引发了关于内部攻击的阴谋论,而 Coinkite 自己也曾公开讨论过这一概念。2021 年 10 月,官方 COLDCARD 账号将“retirement attack”定义为一种情形:“when the project makers could have a ‘bug’ in the entropy generation for later retrieval.” 该帖子仍可在 here 查看。

2026 年的漏洞正好造成了这样的结果:生成的种子熵远低于预期,因此多年后仍可被搜索出来。比特币圈内一些人现在相信,这次黑客事件可能是 Coinkite 的内部所为,但也有人不同意。公开记录中的证据仍然过少,无法得出明确结论;更多证据可能要等上数年,通常只有通过诉讼才会披露。

The critical change entered the codebase on March 1, 2021, in a commit titled “First pass w/ libNgU” ( b18723dd ). That commit replaced remaining Trezor-derived cryptography and BIP-39 code with a new library, libngu, and rewired seed generation. The intended result was that the call for randomness resolved to the STM32 hardware’s true random number generator. However, the bug redirected the call to MicroPython’s software Yasmarang PRNG instead, resulting in an effective entropy collapse to roughly 40 bits on older models and around 72 bits on newer ones. That meant the Bitocin private keys generated were effectively guessable by modern computing hardware. This swap of cryptographic libraries was pushed to the codebase by Doc-Hex , also known as Peter Gray, the Chief Technical Officer of Coinkite.

The move was arguably driven by licensing pressure, according to Foundation Devices CEO and founder Zach Herbert, though Coinkite has denied this as a primary motivation for the code change , saying, “COLDCARD had to make this change to move to libsecp256k1; the license change is irrelevant to this. libsecp256k1 is the standard library used by Bitcoin Core.”

Coldcard had been using Trezor-derived code under the GPLv3 open source license. After Foundation Devices forked related material , Coinkite sought to move remaining components to a more restrictive MIT + Commons Clause arrangement that limited commercial reuse. The rewrite was large and carried complex engineering goals; it was this integration that arguably left the silent failure in the entropy path.

Skepticism about the migration away from the Trezor crypto library emerged as early as April 7, 2021, by a member of the Coinkite Telegram group , who wrote: “do we really want to replace the many-years-old TrezorCrypto code that has been heavily scrutinized by white hatters like Johoe and penetration tested by wallet.fail”, adding “switch may be a talented pseudonymous coder, but their commit history sucks.” The criticism, however, was insufficient and quickly waved away by NVK, who criticized the Trezor library as a “shitcoin shitshow.” Ironically, sharing that codebase with the broader crypto market, under an open license meant that Trezor’s crypto library had much deeper code review than Libngu would ever get, even years later.

Switch 和 Peter Gray,也就是 Doc-Hex

引入该漏洞的加密库替换,是由 Coinkite 的首席技术官 Doc-Hex,也就是 Peter D. Gray 推动进入代码库的。他用 Libngu 取代了 GPLv3 的 Trezor 加密库;Libngu 是由名为 “Switch” 的人创建的一个鲜为人知的代码库,而在 Libngu 出现之前,这个化名并没有明显的既往历史。

Switch 账号于 2019 年 8 月 3 日首次出现在 X 上,提到国际黑客大会 DEFCON,这一活动通常会有各种网络安全工程师参加。2020 年 10 月 16 日,Switch 在 X 上感谢 Doc-Hex 合并他的代码:“Thanks for merge @DocHex … I’m making yet another bitcoin library. Could be useful on @COLDCARDwallet someday.” 几天后,Switch 又发了一条指向 Libngu 的推文,称自己构建了一个“useful thing”。

然而,事情在这里变得有些奇怪。根据 Bitcoin Core 贡献者 James O’Beirne 的研究,Switch 和 Peter D. Gray 似乎使用了相同的 GPG keys 签署代码提交。O’Beirne 通过 GPG commit signatures 证明,数十个以 switck 名义撰写的提交,是由 Peter D. Gray 的个人密钥签署的;Peter D. Gray 是 Coinkite 的联合创始人兼 CTO,同时也以 DocHex 身份活动。Zach Herbert 还声称,末尾相同两位数字的电话号码同时关联到 DocHex 和 switck 的 X 账号(post)。其他研究者也指出,两者的 DNS 注册模式相匹配。

截至本文写作时,Gray 和 Coinkite 都未公开回应这些 GPG 签名方面的发现,而且在被要求置评时也没有回复。Switch 账号至今仍然活跃,最近一次向 Libngu 合并代码变更的时间是 2026 年 8 月 17 日。

比特币行业内一些人将此视为不当行为的间接证据。但仅凭这一联系并不能得出结论。如果 Gray 真的打算利用这个 RNG 漏洞坑害 Coldcard 用户,那么他为什么还会用自己的个人 GPG key 签署提交?一个潜伏多年、等待采用扩散的隐藏漏洞,似乎也与给一个临时化名使用可追踪的身份标识相冲突。化名在比特币开发圈并不罕见,Satoshi 就是最著名的例子。仅就这一点而言,Gray 与 Switch 之间的联系,似乎不足以定案 Coldcard 黑客的身份。

MicroPython 贡献者

最近还有一些其他开源开发者被识别出,曾接触或影响了在 Coldcard RNG 漏洞中起作用的代码。

数据分析师 LaurentMT 研究了 RNG 路径中的 MicroPython 部分。MicroPython 是一个轻量、开源的 Python 3 实现,专为微控制器和资源受限计算机设计。由于该漏洞,Coldcard 固件最终调用了 MicroPython 的 Yasmarang 伪随机数生成器回退逻辑,导致低熵生成。

MicroPython 中 PRNG 逻辑的变更始于 2020 年 8 月 20 日,当时 GitHub 上由名为 “mirko” 的用户发起了 issue(#6347)。他抱怨自己的 ESP32 硬件在以某种方式调用 random.choice() 时总是返回相同结果,而他原本预期应该是随机结果。该 issue 在随后数月引发了关于正确逻辑与预期行为的讨论,而 Mirko 指出其设计出人意料。

Laurent 指出,2020 年 8 月 22 日,“robert-hh initialized a [Pull Request] implementing the PRNG seeding change”。后来在 2020 年 10 月 29 日,MicroPython 维护者 dpgeorge 将该 pull request 的一个略微修改版本合并进 master repository,实装了“the (UID+SysTick+RTC) to address some limitations in robert-hh’s solution.” 因此,当 Coldcard 分叉它供 Libngu 使用时,这段关键 RNG 代码已经在 MicroPython 的 master 仓库中,但 MicroPython 还没有发布该库的正式新版本。

这一点很重要,因为在软件仓库的 master 分支上构建通常存在风险:代码仍在变化,不像正式稳定发布版本那样固定。MicroPython 的下一次发布直到 2021 年 2 月 3 日才到来,即 v1.14。即便如此,RNG 逻辑变更在发布公告中也只是被简短提及,公告写道:“the urandom module will randomize its seed on import on stm32, esp8266, esp32 and rp2 ports.”

在接受 Bitcoin Magazine 采访时,Laurent 明确表示:“without this modification the bug in Coldcard code would have been immediately detected.” 他还说:“there are a lot of ‘coincidences’ in this timeline,” 并补充:“while they don’t prove anything, I don’t see how an official investigation may completely ignore them.”

需要指出的是,没有证据表明上述任何开发者是有意通过这些改动引入 Coldcard 的 RNG 漏洞。最终,对关键代码实现负有责任的是硬件钱包公司 Coinkite。MicroPython 也是一个大型、广泛使用的开源项目。即便如此,这一连串事件在目前看来,确实可被形容为一出悲喜交加的错误连环。

为什么看起来不像内部所为

有几个因素不支持这是一起蓄谋已久的内部退休攻击。“switck” 这一身份的隔离做得并不好;共享的 GPG key 和其他重叠点,使得在研究者查看后,将其归因于 Doc-Hex,也就是 Peter Gray,相对直接。该账号也已多年几乎不活跃。与此同时,MicroPython 的贡献者们是在一个高可见度项目上公开工作。

Hodlonaut 的 Citadel21 调查和其他技术审查都没有发现熵失败是故意造成的明确证据。工程师 Alekos Filini 的技术报告明确写道:“My goal is to purely present facts and NOT make any conclusions.” Wizardsardine 的 Technical autopsy 详细描述了多重安全防护失效,并称这一失败位于“across a submodule boundary, which is precisely where reviewers stop looking.” Steven Geller 的技术深挖也没有就此作出强烈判断。DK27ss 对该漏洞的概念验证复现将其描述为“a chain of four flaws, each harmless in appearance.”

如果这些资金转移真的是经典的内部退休攻击,或某种长期骗局,那么今天的讨论大概会完全不同。比特币行业上一宗重大长期骗局式黑客事件,可能是 QuadrigaCX——这家加拿大中心化交易所,其创始人 Gerald Cotten 在 2018 年被报道“dead in India”,当时情况扑朔迷离,而丢失资金不久后才被发现。Ontario Securities Commission 指控其创始人多年间挪用了近 1.7 亿加元的客户存款,随后失踪。

相比之下,Coinkite 的管理层仍然公开活跃。他们在事件发生后作出回应,发布了修补后的固件,协助用户迁移,并参与技术细节讨论。到本文写作时,其创始人和运营者仍在经营公司,并没有在资金消失的同时一并消失。

与此同时,Wave 1 的资金——超过 1,000 BTC——仍然集中在三个地址中,被数百名工程师以及很可能包括 FBI 在内的执法机构监视着。如果 Coinkite 真的在实施一种“5D chess”式的退休攻击,他们本应在盗币时更加谨慎。他们不会把币集中到少数几个极易追踪的地址里,而其创始人也大概率不会还能公开讨论这起事件。

接下来仍有几个未解问题:Wave 1 的币是否会从这三个被监视的地址中转出;Gray 或 Coinkite 是否会公开回应 GPG 签名方面的发现——截至本文写作时,他们尚未这样做;以及那些在 2021 年到 2026 年 7 月补丁之间生成、至今仍脆弱的种子持有者,是否会在后续波次的机会主义攻击者找到它们之前完成资金迁移。

目前尚无最终结论,调查很可能还会持续数年。就眼下而言,这些证据指向比特币极端主义与自托管社区中的一种文化性失败:对开源卫生规范缺乏广泛教育;而回过头看,Coinkite 早期管理层在自身能力上也显得过于自信。

本文最初刊登于 Bitcoin Magazine,作者为 Juan Galt。