加拿大硬件钱包厂商 Coinkite 证实,Coldcard 系列存在种子生成漏洞。链上分析显示,台北时间 7 月 31 日上午 9 时 31 分起的 25 分钟内,攻击者在三个区块窗口内通过 500 笔交易转走 1,324 笔 UTXO,总计 594.48 枚比特币。按事发时约 6.4 万美元的比特币价格计算,金额约为 3,830 万美元。
这次事件把问题指向 Coinkite 旗下 Coldcard 的种子生成机制。Coldcard 长期被视为比特币自托管领域的硬件钱包代表产品,这次漏洞则出在固件层面。
链上追踪:约 500 个单签地址在短时间内被集体扫空
最早发出警报的是链上监测社区。AnchorWatch 首席执行官 Rob Hamilton 在 X 上发布初步分析称,被扫空的地址全部为单签地址,且集中在原生 SegWit 格式。他写道:“乍看之下,这像是钱包生成环节的熵出了问题。”
根据他的统计,这轮转移涉及 1,324 笔 UTXO、500 笔交易,全部发生在三个区块之内,总额为 594.48 枚 BTC。他还提到,其中 562 枚 BTC 随后被归集到同一个新地址,截至当时尚未继续移动。
Wizardsardine 首席执行官 Kevin Loaec 也把问题指向低熵随机数生成器。他认为,种子的随机性低于应有水平,才给攻击者留下了推算私钥的空间。
从受害地址的特征看,这批地址余额全部高于 0.15 BTC,生成时间跨越 2021 年至 2026 年,其中不少地址已经多年没有活动。Reddit 上也出现了受害者自述的时间线。这些迹象被解读为,攻击者可能已提前完成大规模私钥推算,并在同一时间集中发起转移。
漏洞原因:硬件随机数生成器被意外停用
将技术细节公开的是 Block 旗下 Bitkey 钱包开发团队的工程与安全人员。其技术报告指出,Coldcard 在 2021 年 3 月发布的 4.0.0 版本固件中引入了一项编译设置,意外停用了安全芯片内建的硬件随机数生成器。
问题没有在后续流程中被发现。报告称,程序库中的检查逻辑只验证这项设置是否“存在”,而不是验证其是否“启用”。结果是,密钥生成过程退回到了可预测的软件实现,所使用的随机来源变成了芯片序列号和时钟寄存器。
这两项数据都不属于保密信息。芯片序列号是出厂即固定的数据,时钟数值也可以被攻击者利用手中的设备进行测量并缩小范围。原本应当不可预测的随机种子,因此变成了可被暴力求解的问题。
根据 Coinkite 的说明,受影响设备生成的随机数只有约 72 位熵,低于预期的 128 位熵。受影响的不只是钱包种子,纸钱包私钥、种子拆分遮罩、设备复制密钥以及 Key Teleport 传输,也都使用了同一套生成器。
影响范围扩大:不只 Mk3,后续多款型号也被列入
Coinkite 在 7 月 30 日发布安全公告时,最初把重点放在 Mk3 机型,称凡是在 4.0.1(2021 年 3 月)至 5.0.3 固件版本上生成种子的用户,都应尽快迁移资产。该公司当时还表示,初步分析显示 Mk4、Q 和 Mk5 不受影响。
随后,Bitkey 硬件负责人 Max Guise 在 X 上表示,这个种子生成漏洞并不局限于 Mk3,Mk2、Mk4、Q 与 Mk5 也受到影响,只是严重程度因型号不同而异。他写道:“竭力攻击正在进行的可能性很高,仍有更多钱包面临被扫空的风险。我个人建议所有受影响的用户,在能安全操作的前提下尽快转移资金。”
在后续更新中,Coinkite 也扩大了受影响范围,确认 Mk4 与 Mk5 在 5.6.0 之前、Q 在 1.5.0Q 之前的固件版本均受影响。该公司同时表示,TAPSIGNER、OPENDIME 与 SATSCARD 因使用不同代码库,不在本次漏洞范围内。
官方建议:不要等待固件更新,先迁移资产
针对受影响用户,Coinkite 给出的处置建议分为几种情况。
- 从未使用骰子输入生成种子的用户,应尽快迁移到新种子。
- 曾通过至少 50 次公正且私密的骰子输入生成种子的用户,因该输入至少可提供 128 位熵,风险较低;若达到 99 次以上更好。
- 设置了强且唯一的 BIP-39 passphrase 的用户,风险也相对较低,但官方强调,即使使用强 passphrase,也应尽快迁移到新种子;较短、常见或重复使用的 passphrase 不应被视为安全。
Coinkite 同时提醒,用户不应等待后续固件更新。官方给出的步骤是:在未受影响的设备上生成新种子、验证备份、先进行小额测试交易,再转移全部资金。
如果用户仍需在 Mk3 上避开内建随机数生成器,Coinkite 建议通过“Import Existing → Dice Rolls”输入至少 99 次骰子结果来创建新种子。

