COLDCARD RNG Incident (2026) 指 2026 年 7 月披露的种子生成事件。软件错误削弱了 seed 的安全性;seed 是钱包派生密钥的秘密基础,RNG 则是随机数生成器的缩写。判断风险要看种子如何生成,以及当时使用的固件。这不是比特币规则失效,也不是设备被远程接管。
Coinkite 和 Block 在收到资金损失报告后,于 2026 年 7 月 30 日公布了初步分析。按照厂商的说明,攻击者无需控制别人的设备,而是能够重现生成方式较弱的秘密,得到对应的私钥。私钥可以签署转账,因此仅仅让钱包离线并不足以防范这类问题。不过,这一事件说明不能确定每笔损失的具体原因;仅凭设备品牌也无法判断。 [2] [3]
钱包原本应该使用称为 TRNG 的硬件随机源。但集成 libNgU 库后,ngu.random.bytes 调用了 MicroPython 的 rng_get 函数及其 Yasmarang 软件生成器。程序构建时连接了错误的组件。MICROPY_HW_ENABLE_RNG 的值为 0,而 #ifndef 只检查这个设置是否存在,没有检查它的值。因此,正确的硬件代码可能就在文件中,生成种子时却没有用到它。这不是芯片故障,也不是刻意设计的应急模式。 [1]
如果秘密只来自较小的可能性集合,攻击者就更容易搜索。这里的程序状态取决于设备数据、计时器和先前的调用。Block 对 Mk4、Mk5 和 Q 描述了一次受限于 32 位的额外状态更新:其余状态固定时,最多只有 2^32 种不同的输出序列。Coinkite 对总熵,也就是不确定性程度,给出的初步估计是 Mk2/Mk3 约 40 位,新型号约 72 位。这些数字基于不同假设,不能据此推算每次攻击的成本,也不能说所有钱包都会立即被攻破。 [3] [1]
官方警告列出 Mk2/Mk3 的 4.0.1–4.1.9 版本。Block 的初步分析则已包含 4.0.0,以及 2021 年 3 月的改动。资料对起始边界存在分歧,不宜用猜测代替这种不确定性。如果无法确认种子的来源,迁移指南建议按受影响的钱包处理。Mk4/Mk5 和 Q 在各自固件分支修复前也受到影响。早期文章中“所有生产版本”的说法,不能用来描述后来已经修复的版本。 [2] [3] [5]
最早修复的版本为 Mk2/Mk3 4.2.0、Mk4/Mk5 Standard 5.6.0、Q Standard 1.5.0Q、Mk4/Mk5 Edge 6.6.0X 和 Q Edge 6.6.0QX。Standard 与 Edge 是不同分支;另一个分支的版本号更大,本身不能证明问题已修复。本次审阅时,厂商推荐 Mk4/Mk5 使用 Standard 5.6.3,Q 使用 1.5.3Q。安装前应检查最新官方页面、文件哈希和发布签名。哈希是内容的指纹,签名有助于验证来源。即使正确完成更新,也不会改变已有种子。 [4]
假设你把生成方式较弱的种子恢复到一台新设备上。设备换了,秘密却没有变。克隆或转移钱包也有这个限制。哈希是计算数据指纹的过程,不能增加可能的输入;BIP39 Checksum 用来帮助发现单词中的错误,也不能补上缺失的随机性。反过来,安全地在其他地方生成的种子,仅仅导入 COLDCARD,并不会因这个特定错误而变弱。关键仍是种子的生成方式。 [3] [5]
厂商给出的例外要求,最初通过 Add Dice Rolls 功能输入至少 50 次公平骰子的独立投掷结果。结果序列不能被记录或泄露,钱包必须使用添加结果之后显示的最终单词。如果次数更少或情况不确定,建议迁移。BIP39 Passphrase 是另一种措施:一段额外的秘密文本,与种子共同决定另一个钱包。强且唯一的 passphrase 会增加攻击障碍,但不能修复种子;厂商也建议使用它的人迁移。PIN 只是保护设备访问。今天创建新种子的规则,与这一历史例外是两回事。 [2]
首先确认原钱包的备份可用。然后按照迁移指南,在修复后的固件上生成真正的新种子,并验证新备份。核对 fingerprint,也就是钱包的简短标识,以及设备屏幕上的收款地址。先发送一笔小额测试,确认目标与到账后再转移其余资金。应包括所有有余额的账户、passphrase 钱包、派生钱包及 multisig 配置。在全部迁移确认完成前保留旧备份。若标识或地址不符,不要发送,也不要删除任何备份。绝不能把恢复秘密输入网页表单。 [5]
Multisig 要求多个密钥中的规定数量提供签名,才能转账。如果攻击者获得足够多的密钥来满足规则,保护就不再充分。因此要评估其余密钥,在设备上准备并验证新的签名规则,再把资金转过去。Block 还描述了同一生成器的其他用途,包括独立的 Paper Wallet 密钥,以及部分临时加密密钥。影响取决于具体用途和攻击者能得到的数据,不是所有功能都承受相同后果。 [3] [5]
状态页面列出了在真实 Mk4 上测试硬件生成器、审查源代码,以及独立重复构建某个修复版本的工作。这些检查有助于验证所描述的机制,但不能证明所有发布文件都安全。当前 Standard 分支还要求用户在创建新种子时提供自己的随机性。因此,早期“始终可选”的建议,已不是该分支当前的操作说明。页面持续记录修复进展,并仍将单独、详细的技术原因报告列为正在准备。 [4]
设备更新了,问题仍然存在
一位用户在 Mk3 4.1.9 上创建了种子,没有加入自己的骰子结果。后来他安装 4.2.0,并在另一台设备上恢复同一组单词,但使用的仍是原来的秘密。按照迁移指南,需要在修复后的固件上创建新种子,验证备份与地址,先进行小额测试,再转移剩余资金。旧备份应保留到整个迁移确认完成。
要获得更完整的理解,请将本词条与以下词条结合阅读: Cryptographic Entropy, Deterministic RNG, Seed Generation, BIP39 checksum, BIP39 passphrase, Dice Roll Entropy.
01只买一台新设备就够了吗?+
如果恢复的仍是同一个受影响种子,就不够。新硬件无法改变秘密最初的生成方式。处理方法取决于种子来源及独立骰子例外的准确条件。对受影响种子而言,要处理的是迁移到新钱包,而不只是更换设备。
0232 位是否意味着所有型号都同样容易被攻击?+
不是。Block 的分析中,这个数字指的是其余状态及调用历史固定时,生成器额外状态变化的范围。攻击者不知道的设备数据或时间信息会改变搜索任务。这不是通用的攻击速度测量,也不能保证某个种子安全。