乔纳森·古德曼遵守保护比特币安全的规则。

保存他钥匙的硬件钱包是冷卡,从未连接到互联网。他把它存放在保险箱里。他从未与任何人分享过的助记词被存放在第二个保险箱中。但古德曼说,7 月 29 日,他所有的钱包都被掏空了,最后的所有聪都被盗了。这位多伦多企业家报告称,在袭击发生时损失了 18.25 比特币,价值略高于 117 万美元。

他在 8 月 1 日的一篇帖子中写道:“也许这件事中最困难的部分是我所做的一切都是正确的。”

古德曼的损失是影响数千名 Coldcard 用户的更大规模黑客攻击的一部分。 Galaxy Research 表示,它高度确信,在一系列攻击中,大约 7,300 个地址中的 1,596 个比特币(价值超过 1 亿美元)被盗。 Galaxy 研究负责人 Alex Thorn 于 8 月 4 日估计,至少有 15 名不同的攻击者正在利用该漏洞。他们都不需要物理访问设备。

硬件钱包的整个安全前提是其秘密永远不会离开芯片。如果没有互联网连接,除了物理访问设备之外​​没有其他办法。尽管硬件钱包的物理特性给用户带来了自身的风险——比如设备放错地方,或者像扳手攻击一样可怕——但它们的主要卖点是,它们可以免受黑客和其他网络恶魔的侵害。

但是,就 Coldcard 而言,这一安全承诺并未兑现。该漏洞并不存在于钱包本身,而是存在于保护用户代币的秘密密码或助记词的生成方式中。

比特币钱包可以有不同的形式。软件钱包也称为“热钱包”,在连接互联网的设备上运行,这使得它们易于使用,但如果设备受到损害,它们就会暴露。

硬件钱包或“冷钱包”(例如 Coldcard)将密钥保存在未连接到互联网的单独设备上。冷钱包最早的形式之一是所谓的“纸钱包”,用户在一张纸上写下访问钱包所需的密钥。虽然这些钱包不会受到黑客的攻击,但存在着损坏或丢失的巨大风险。

硬件钱包介于纸钱包和基于浏览器的热钱包之间。它们比软件更难被破解,比纸张更难丢失,但它们并非绝对可靠。它们可能会丢失或被盗,并且用户首先需要能够信任设备来正确创建密钥。

“气隙系统有所帮助,但它们并不是一个完美的解决方案,”TEXITcoin 创始人 Bobby Gray 告诉 CoinDesk。 “安全性必须从密钥的生成方式开始,并贯穿托管过程的每个部分。”

不幸的是,这就是 Coldcard 钱包的制造商 Coinkite 出了问题的地方。

2016 年 3 月,这家总部位于多伦多的比特币公司告诉客户,它正在取消其托管热钱包。运营一家在线金融服务公司带来了持续大量的垃圾互联网流量,旨在使他们的服务离线,同时法律成本和监管复杂性也不断增加。

相反,Coinkite 表示想尝试一些不同的东西。它希望构建去中心化的硬件和“软件而非服务”。那是加密货币历史的早期,在比特币第二次减半之前,当时整个比特币的交易价格略高于 400 美元大关。

Coinkite 的支点于 2016 年 4 月首次生产了 Opendime。这个小 USB 棒生成并隐藏了私钥,允许比特币像物理不记名票据一样从一个人传递到另一个人。物理上打破设备的密封揭示了密钥并允许使用资金。

冷卡很快也跟进了。 Coinkite 于 2017 年 12 月发布了该设备,标题为“世界需要一个开放、廉价且超安全的硬件钱包”。在其中,该公司认为现有的硬件钱包太昂贵并且依赖于专有的配套应用程序。

最初的设计结合了数字键盘、屏幕、安全元件和 MicroSD 插槽。用户可以在 Coldcard 和计算机之间移动未签名和已签名的交易文件,而无需建立实时数据连接。他们不需要 Coinkite 帐户或桌面应用程序来使用钱包。

第一批设备于 2018 年发货。下一个型号于 2019 年 4 月发布,增加了更多功能。随着每一次更新的版本,Coldcard 都变得更加复杂,理论上,技术也更加复杂。

Coldcard 的复杂性是其吸引力的一部分。它是为愿意检查交易细节、管理备份和构建自己的安全模型的用户而构建的。

包括胁迫 PIN、加密 MicroSD 备份、多重签名支持和用户提供的骰子在内的一系列功能迎合了将托管视为对抗性行为的比特币持有者。

Coldcard 的源代码也是公开的。用户可以检查固件、重现构建并将其与 Coinkite 的版本进行比较。这种可见性强化了比特币生态系统的核心精神——“不要信任,要验证”。

尽管用户能够检查 Coldcard 的代码,但他们并没有真正仔细观察。 Coldcard 在 2021 年重大软件变更期间发生了种子生成故障,但多年来并未引起人们的注意。

Coinkite 将固件版本 4.0.0 描述为“全新代码,同样出色的功能”。该版本用新的等效代码替换了其代码,添加了可重复的构建,并感谢名为“switck”的帐户提供的“新源代码库”。

比特币开发者 James O’Beirne 发现“switck”帐户属于 Coinkite 联合创始人 Peter Gray,因为他发现以该名称发布的 58 个代码更改与 Gray 以他自己的名义发布的更改所使用的加密签名相同。

此类签名的功能类似于防篡改的数字签名,表明相同的秘密签名密钥批准了两组工作。 Coinkite 尚未对身份声明做出回应。

Switck 开发了 libngu,这是一个可重用代码的集合,已合并到安装在客户设备上的 Coldcard 固件中。它的工作之一是帮助产生创建钱包时使用的随机性。

O’Beirne 表示,他在 2025 年 5 月审核 Coldcard 代码时对这一流程提出了质疑。在将钱包随机性的来源追溯到 libngu 后,他提出了 Coinkite 存在缺陷的可能性。

奥贝恩表示,该公司回复称,真正的问题可能已经被发现。 “就是这个人在 2025 年 5 月对我关于缺陷可能性的报告不屑一顾,”他后来在谈到彼得·格雷时写道。

随机性至关重要,因为新钱包必须从大量可能的值中选择种子。该选择的不可预测性以“熵”位来衡量,用于指代缺乏可预测性。每增加一位,可能性的数量就会增加一倍,从而使种子更难猜测。

Coldcard 应该从设备内部的专用硬件生成器获得随机性。相反,配置错误将钱包发送到一个更简单的软件生成器,该生成器使用包括设备和计时数据在内的信息。

这些信息并不是完全随机的,因此可以缩小或复制它,从而大大减少攻击者需要测试的种子数量。

简而言之,Coldcard 的代码应该从大量的可能性中挑选出每个钱包的秘密,这些可能性如此之大,以至于任何计算机都无法尝试所有这些秘密。相反,接线错误将其发送到更小、更弱的源,从而使池缩小到足以让攻击者利用它。

Block 的比特币工程和安全团队称,该错误归结于两个软件如何通信以读取设置。

该设置的目的是在 Coldcard 添加另一个随机数源后关闭一个随机数源。 Libngu 仅检查该设置是否存在,而不检查它是打开还是关闭。因此,使用错误的生成器时固件可以正常构建。

Block 表示,受影响的 Mk2 和 Mk3 设备在该过程中没有收到安全随机性。 Mk4、Q 和 Mk5 设备收到了一些,但软件只保留了一小部分。

Coinkite 估计,这些新设备产生的种子具有 72 位随机性,而不是预期的 128 位。这使得可能的种子数量减少了大约 72 万亿倍。

Block 将漏洞代码追溯到 2021 年 3 月 17 日发布的固件版本 4.0.0。 Coinkite 将 4.0.1 版本确定为 Mk2 和 Mk3 用户的第一个受影响版本。

源代码是公开的,并且正确的硬件生成器存在于最终的固件中。审查人员确认该组件存在,但未能从头到尾遵循种子生成过程并确定该设备实际使用的生成器。

该公司表示,在盗窃发生前进行的人工智能辅助审查也漏掉了这个错误。事件发生后使用多个领先的人工智能模型进行的测试也未能识别出该问题。

Coinkite 承诺将发布有关此次失败的更全面的说明。该公司表示正在直接支持受影响的客户。

该公司没有回应 CoinDesk 的置评请求。

Coinkite 已为所有受影响的 Coldcard 型号和发布轨道发布了修复固件。此更新修复了未来的种子生成,但不会增强已使用易受攻击的软件创建的种子。

根据 Coinkite 的建议,受影响的用户必须安装更正的固件,生成新的种子并将其比特币转移到由此衍生的地址。

Coldcard 的理念是,比特币持有者可以取消托管人并减少他们需要信任的各方数量。该事件并没有恢复人们对交易所或银行作为交易对手的信心。它表明自我托管替代了不同的依赖关系:用户持有密钥,但钱包制造商仍然确定这些密钥是否安全创建。

乔纳森·古德曼 (Jonathan Goodman) 价值百万美元的比特币的钥匙放在一个保险箱里,放在一个从未上网的设备内。但是,由于 Coldcard 种子生成软件的缺陷,古德曼为保护自己的财富所做的努力并没有起到什么作用。

Zcash 的 Tachyon 升级旨在扩大屏蔽支付规模,提高量子准备度,并测试其资金、安全和治理是否能够持续。