埋藏在 Coldcard 固件中超过五年的一个缺陷,刚刚让大约 594 枚比特币——价值约 3800 万美元——被盗。此次盗窃被直接追踪到 Mk3 硬件钱包核心中的Coinkite 种子漏洞,整个过程在不到 30 分钟内完成。现在,价值数百万美元的资金可能仍然静静地躺在同样暴露于该弱点的钱包中。
Summary
要点概览
- 攻击者在 2026 年 7 月 31 日 01:31 至 01:56(UTC)之间,利用 Coldcard 固件中损坏的随机数生成器,从大约 500 个单签名钱包中席卷了约 594 BTC(约 3800 万美元)。
- Coinkite 已警告所有在运行 4.0.1 或更高版本固件的 Mk3(自 2021 年 3 月起)上生成种子的用户,他们的资金可能面临风险。
- 该漏洞同样影响固件 5.6.0 之前的 Mk4 和 Mk5 设备,以及版本 1.5.0Q 之前的 Q 设备,会将种子熵从 128 位降低到大约 72 位。
- 由于代码库不同,TAPSIGNER、OPENDIME 和 SATSCARD 被确认不受影响。
- 在创建种子时额外加入至少 50 次独立掷骰的用户被认为是受保护的;其他所有用户都应立即在修复后的固件上迁移到新的种子。
一个无声固件漏洞如何演变成 3800 万美元盗窃案
这次攻击既有条不紊又极其迅速。根据 CoinDesk 的报道,在三个区块的时间窗口内,有 1324 笔独立的比特币小额转账通过 500 笔交易完成,随后有 562 BTC 被归集到一个自那以后就未再动过的单一地址。所有被掏空的钱包都是单签名钱包,每个钱包持有超过 0.15 BTC,而且许多钱包已经多年未动——其币龄从 2021 年到 2026 年,与漏洞存在的时间线几乎完全吻合。
根本原因可追溯到 2021 年 3 月 1 日的一次提交,该提交被包含在固件 4.0.0 中发布。根据 Block 的比特币工程和安全团队发布的一份报告,一项构建设置指示设备跳过其自身的硬件随机数生成器。随后在一个支持库中的检查仅测试该设置是否存在,而不是它是否真的被启用。密钥生成悄然回退到一个基础的软件替代方案,该方案使用芯片的序列号和时钟寄存器作为种子——而这两者都不是秘密。
序列号是固定的出厂元数据。时钟值是计时状态,攻击者可以通过自己持有的设备缩小范围或直接测量。原本被设计为“无法猜测”的种子,实际上变得可以被猜测。Block 表示,它在尚未完全确认可被利用之前就发布了研究结果,因为在披露发生时,攻击已经在进行中。
影响范围不仅限于钱包种子
暴露风险并不止于助记词种子。Block 指出,同一个损坏的生成器还生成了 Coldcard 纸钱包的私钥——在这种情况下,输出会直接成为密钥本身,不再进行进一步推导——以及种子拆分掩码、设备克隆密钥和 Key Teleport 传输。换句话说,攻击面远不止已经被掏空的钱包。
哪些设备受影响——哪些不受影响
Coinkite 确认,自 4.0.1 版本以来的每一个 Mk3 固件版本都存在该问题。对 Mk4、Mk5 和 Q 的影响被描述为不如 Mk3 严重,但仍然很严重:在这些设备上于修复固件发布之前生成的种子,仅具有大约 72 位熵,而不是预期的 128 位。这种削减是有意义的——在持续、定向攻击下,72 位熵在理论上并非不可攻破。
有三条产品线被明确排除在外:TAPSIGNER、OPENDIME 和 SATSCARD 不受影响,因为它们运行的是完全不同的代码库。Coinkite 的初步分析还表明,Mk4、Q 和 Mk5 并不像 Mk3 那样受到同样方式的影响,不过在这些设备上生成任何新的替代种子之前,仍然必须满足固件版本门槛的要求。
关键在于,暴露风险取决于钱包首次创建时运行的固件版本——而不是硬件的购买时间。
用户现在应该立即做什么
公司已经发布了详细的分步缓解指南。后续路径取决于用户持有的是哪种设备,以及他们在创建种子时做了什么。
如果你在设置过程中加入了掷骰
在创建种子时输入过掷骰结果的用户,可能在不知情的情况下保护了自己。在受影响的固件上,Coldcard 会将设备生成的熵与用户提供的每一次掷骰结果一起进行哈希。阈值非常关键:
- 50 至 98 次独立且私密的掷骰:仅掷骰输入就贡献了至少 128 位熵——该种子被认为在本次 RNG 问题下是安全的。
- 99 次或以上独立且私密的掷骰:掷骰输入大约贡献了 256 位熵。
- 少于 50 次掷骰,或不确定:应立即遵循迁移指南。
这仅适用于在添加掷骰之后显示的最终种子词。如果对掷骰次数、是否私密、或使用的是哪一组单词存在任何不确定性,那么迁移是唯一安全的选择。
如果你使用了 BIP-39 口令
强且唯一的 BIP-39 口令会在受损种子之上增加一道独立的安全屏障。这种保护是真实存在的,但具有条件:短的、常见的、有规律的或重复使用的口令可能被猜出,不应被视为足够的保护。Coinkite 明确表示,即便是拥有强口令的用户,也应尽快迁移到一个新生成的种子,并且不要在任何网站或不受信任的设备上输入该口令。
仅能使用 Mk3 的用户
Coinkite 提供了一条临时路径。用户可以在 Mk3 上创建一个受口令保护的钱包,并将资金从原始钱包转移到该钱包中,将其视为临时措施。公司指南详细说明了整个流程:在设备本身(绝不在电脑或手机上)输入一个长的、随机的、唯一的口令,将其与种子词分开备份,在进行任何交易前验证钱包指纹(XFP),并在转移全部资金前先发送一小笔测试金额。
还存在一个高级回退方案:在运行 固件 4.1.9 的空 Mk3 上,用户可以导航到 Import Existing > Dice Rolls,并输入至少 99 次公平六面骰的独立掷骰结果。该路径会直接对掷骰序列进行哈希,而不会使用设备损坏的生成器。Coinkite 强调这是一个高级操作——在单设备迁移中,需要在旧种子和新种子之间安全切换,而且掷骰序列必须被视为秘密密钥材料:绝不能拍照、以数字形式保存或输入到联网电脑中。
针对 Mk4、Mk5 和 Q 用户
在这些型号上生成任何替代种子之前,用户必须先升级:Mk4 和 Mk5 升级到 5.6.0 或更高版本固件,Q 升级到 1.5.0Q 或更高版本。只有在确认已安装修复后的固件之后,才应生成新的种子。该过程包括在存入任何资金之前记录并验证备份,在设备上验证接收地址,发送一笔小额测试交易,并在整个迁移完全确认完成之前保留旧备份。
为何这件事的影响远不止一笔盗窃
3800 万美元的资金被掏空本身就足够令人震惊,但更深层的影响远不止于此。冷存储硬件钱包之所以存在,正是因为它们被视为最后一道防线——隔离网络、离线运行且在密码学上可靠。一个通过悄然绕过硬件随机数生成器,将种子熵从 128 位降低到 72 位的缺陷,不仅威胁到某一条产品线,更动摇了这样一个基础假设:离线密钥生成天生就比软件替代方案更安全。
Block 将其研究结果披露给 Coinkite,后者团队对此予以确认。两家公司都将各自的分析描述为初步结论。两方在尚未完成全部测试之前就选择公开——正是因为攻击已经在进行中——这反映出一种有意的取舍:将用户预警置于传统“负责任披露”时间表之上。Coinkite 已确认调查仍在进行中,并表示后续会公布更多细节。对于受影响的用户而言,从容、谨慎迁移的时间窗口现在仍然是打开的,但它可能不会无限期保持开启。
常见问题
哪些 Coinkite 设备受到种子熵漏洞的影响?
运行 4.0.1 或更高版本固件的 Mk3 设备受到影响,固件 5.6.0 之前的 Mk4 和 Mk5 设备,以及 1.5.0Q 之前的 Q 设备也受到影响。Mk3 受影响最为严重。TAPSIGNER、OPENDIME 和 SATSCARD 不受影响。
如果使用了受影响的设备,用户如何保护自己的资金?
用户应将资金迁移到在运行修复后固件的设备上新生成的种子中。在 Mk4、Mk5 或 Q 上执行此操作之前,应先升级到所需的固件版本。作为临时措施,使用强且唯一的 BIP-39 口令可以增加一层独立的保护。那些在最初创建种子时加入至少 50 次独立掷骰的用户,被认为在本次特定 RNG 问题下是安全的。
所有 Coinkite 冷钱包设备都受到该漏洞影响吗?
不。TAPSIGNER、OPENDIME 和 SATSCARD 不受影响,因为它们运行的代码库与 Mk 系列设备不同。
仅能使用 Mk3 设备的用户,推荐的做法是什么?
高级用户可以在运行 4.1.9 固件的 Mk3 上,通过选择 Import Existing > Dice Rolls 并输入至少 99 次独立掷骰,创建一个仅由掷骰生成的种子。这会完全绕过有缺陷的 RNG。对于不那么高级的用户,推荐的临时步骤是使用强且唯一的 BIP-39 口令,并将资金转移到受口令保护的钱包,然后再迁移到修复后设备上的新种子。
{“@context”:”https://schema.org”,”@type”:”FAQPage”,”mainEntity”:[{“@type”:”Question”,”name”:”哪些 Coinkite 设备受到种子熵漏洞的影响?”,”acceptedAnswer”:{“@type”:”Answer”,”text”:”运行 4.0.1 或更高版本固件的 Mk3 设备受到影响,固件 5.6.0 之前的 Mk4 和 Mk5 设备,以及 1.5.0Q 之前的 Q 设备也受到影响。Mk3 受影响最为严重。TAPSIGNER、OPENDIME 和 SATSCARD 不受影响。”}},{“@type”:”Question”,”name”:”如果使用了受影响的设备,用户如何保护自己的资金?”,”acceptedAnswer”:{“@type”:”Answer”,”text”:”用户应将资金迁移到在运行修复后固件的设备上新生成的种子中。在 Mk4、Mk5 或 Q 上执行此操作之前,应先升级到所需的固件版本。作为临时措施,使用强且唯一的 BIP-39 口令可以增加一层独立的保护。那些在最初创建种子时加入至少 50 次独立掷骰的用户,被认为在本次特定 RNG 问题下是安全的。”}},{“@type”:”Question”,”name”:”所有 Coinkite 冷钱包设备都受到该漏洞影响吗?”,”acceptedAnswer”:{“@type”:”Answer”,”text”:”不。TAPSIGNER、OPENDIME 和 SATSCARD 不受影响,因为它们运行的代码库与 Mk 系列设备不同。”}},{“@type”:”Question”,”name”:”仅能使用 Mk3 设备的用户,推荐的做法是什么?”,”acceptedAnswer”:{“@type”:”Answer”,”text”:”高级用户可以在运行 4.1.9 固件的 Mk3 上,通过选择 Import Existing > Dice Rolls 并输入至少 99 次独立掷骰,创建一个仅由掷骰生成的种子。这会完全绕过有缺陷的 RNG。对于不那么高级的用户,推荐的临时步骤是使用强且唯一的 BIP-39 口令,并将资金转移到受口令保护的钱包,然后再迁移到修复后设备上的新种子。”}}]}
本文在人工智能协助下完成,由编辑团队审核。

