Coinkite表示,一名攻击者利用人工智能发现了其自身人工智能审查未能发现的漏洞,导致500个钱包暴露于种子生成缺陷,该缺陷将128位熵降至40位。
摘要
- 7月31日,一名攻击者在25分钟内从约500个Coldcard硬件钱包中盗取了594 BTC(约3800万美元),利用了自2021年3月以来存在的种子生成缺陷。
- 该缺陷将Mk3种子的有效熵从128位降至约40位,使得私钥可以通过暴力计算而非密码攻击来猜测。
- Coldcard的制造商Coinkite认为,攻击者使用人工智能发现了其开源固件中的漏洞,并表示其自身在数周前对相同代码进行的人工智能审计未发现任何问题。
- 目前所有Coldcard型号都受到不同程度的影响,Mk4、Q和Mk5种子的熵估计约为72位而非128位,更新固件无法修复已创建的种子。
- Block、Trezor和Ledger已确认其产品不受影响,而此次事件引发了关于硬件钱包是否可作为重要比特币持有唯一托管层的根本性问题。
攻击耗时25分钟。UTC时间7月31日凌晨2:14,一个实体开始从Coldcard硬件钱包中扫走比特币。到2:39,594 BTC已从约500个钱包转移到合并地址。这些资金在扫走时价值约3800万美元,并非通过网络钓鱼、恶意软件或物理接触设备被盗,而是因为设备生成了可预测的私钥。
总部位于多伦多的Coldcard制造商Coinkite在发现漏洞后于7月30日发布了公告和技术分析。该公司表示,固件中的构建错误导致种子生成从软件回退而非设备设计使用的硬件随机数生成器获取随机性。该缺陷自2021年3月发布的固件版本4.0.1以来一直存在。过去五年中在受影响的Coldcard上生成的每个种子都比其所有者认为的要弱。
影响不仅限于直接的经济损失。Coldcard一直是比特币极端主义者、安全研究人员和机构托管人的首选硬件钱包,他们优先考虑气隙、开源、比特币专用的安全性。如果比特币中最受信任的硬件钱包能在五年内携带熵缺陷而未被发现,那么问题不在于Coldcard是否失败,而在于任何硬件钱包是否可以被信任为托管安全的单点。
机制:128位如何变成40位
技术解释既简单又令人震惊。Coldcard的固件在种子生成期间调用一个函数来获取随机性。代码库中存在该函数的两个实现,具有相同的签名:Coinkite编写的硬件随机数生成器,以及从MicroPython(固件所基于的嵌入式Python运行时)继承的软件回退。
预处理器保护本应选择硬件实现。但该保护仅检查配置设置是否已定义,而非其值是否正确。编译固件时,构建系统通过选择软件回退来解决歧义。构建完成时没有警告。生成的固件生成的种子看起来正常,产生有效的比特币地址,并接受存款,没有任何迹象表明底层熵严重不足。
在Mk3上,Coinkite估计在此条件下生成的种子的有效搜索空间约为40位。128位种子可能组合数超过可观测宇宙中的原子数。40位种子约有1万亿种组合。这在中度资源的攻击者使用商品硬件即可达到的范围内。差异不是四舍五入误差,而是无法撬开的锁和可以踢开的锁之间的区别。
Mk4、Q和Mk5型号包含额外的安全元件,将自身的熵混合到种子生成过程中。Coinkite估计这些型号在缺陷下生成的种子有效熵约为72位。这比40位好得多,但仍远低于128位的目标。72位密钥空间在当前消费硬件下实际上无法暴力破解,但对于拥有专门计算资源的资金充足的对手来说,在理论上是可及的。
Coinkite公告中最关键的一句话是:“更新固件不会改变或修复现有种子。”每个在受影响固件上生成种子的Coldcard所有者必须在修补后的硬件上创建新种子并迁移资金。对于弱私钥没有软件修复方法。密钥本身必须更换。
AI维度
Coinkite的公告提出了一个立即引起安全社区关注的说法。该公司表示,它相信“有人使用AI审查了我们固件的先前版本”来发现这个漏洞。它还补充说,在攻击发生前几周,它已经用“最好的可用模型之一”对相同的代码进行了审查,但该模型“没有发现这个漏洞或任何严重问题”。
这一说法看似合理但未经证实。Coldcard固件是开源的,并在GitHub上公开可用。任何个人或自动化系统都可以审查它。这类特定的漏洞,即检查定义而非值的预处理器保护,是一种微妙的代码路径错误,大型语言模型在检测此类错误时,其能力因上下文、提示工程和所用模型的不同而有所差异。
Coinkite所描述的不对称性是真实存在的,即使其具体的归因是推测性的。攻击者和防御者确实可以使用相同的AI工具。但攻击者具有结构性优势:他们只需要找到一个可利用的缺陷,而防御者则需要找到所有缺陷。一个审查代码却报告没有严重问题的AI会提供虚假的信心。一个审查代码并发现单个可利用路径的AI则为攻击者提供了一切所需。
这一事件也引发了关于硬件钱包安全审计流程的更广泛问题。Coldcard因其开源方法而受到赞誉,这允许任何人检查固件。但开源可见性的价值取决于所执行检查的质量。如果制造商自己的AI审查(据推测是在对代码库架构和意图有充分了解的情况下进行的)错过了这个漏洞,那么开源优势就变成了理论上的,而非实际上的。
安全研究社区对AI归因的说法持怀疑态度。几位研究人员在社交媒体上指出,这种特定的漏洞类别,即检查定义与值的预处理器保护,在嵌入式系统文献中有详细记载,并且可以通过常规代码审查发现。他们认为,AI的框架可能会掩盖一个更根本的失败:Coinkite没有为一条五年未变的关键代码路径建立足够的人工审查流程。无论是AI还是人类研究人员发现了这个漏洞,根本问题都是一样的。代码是公开的,漏洞虽然微妙但并非新颖,而防守方没有人发现它。
Block于7月31日发布了一份独立技术分析,确认其所有产品(包括Bitkey)均不受影响。Block的硬件负责人Max Guise敦促任何受影响的Coldcard用户“在安全的情况下尽快转移资金”。Trezor确认其设备使用不同的熵生成方法,因此不易受攻击。Ledger尚未发布正式回应,但其安全元件架构使用独立的硬件随机数生成器,该生成器独立于固件运行。
五年窗口期
漏洞的时间线与漏洞本身一样具有破坏性。引入该漏洞的固件版本4.0.1于2021年3月发布。从2021年3月到2026年7月31日修补固件发布期间,在受影响的Coldcard上生成的每个种子都可能受到损害。这是五年零四个月的受影响种子生成期。
在此期间,Coldcard出货了Mk3(受影响,40位)、Mk4(受影响,72位)和Q(受影响,72位)。2026年发布的Mk5也受影响,为72位。Coinkite在此期间发布了多次固件更新,但均未解决或检测到熵问题。公司自己的安全审查,包括最近的AI审计,都没有发现它。
这五年窗口期也恰逢比特币价格大幅上涨的时期。2021年在受影响的Mk3设备上生成的种子(当时比特币交易价格在29,000美元至69,000美元之间)现在保护着价格超过60,000美元的资产。攻击者投入计算资源暴力破解40位密钥的经济激励随着每次价格上涨而增加。一个持有1 BTC的钱包,在种子生成时价值30,000美元,现在价值翻倍。攻击者的投资回报率仅仅通过等待就得到了提高。
受影响钱包的数量难以精确估计。Coinkite不公布销售数据。最初攻击中被盗的500个钱包代表了风险最高的子集,很可能是Mk3用户,他们拥有最弱的40位熵,且持有余额足够大,值得攻击者投入计算资源。所有受影响型号中种子受损的钱包总数可能要大得多。
攻击者的整合模式表明其进行了系统性的准备。594枚比特币从大约500个钱包中被扫入一个整合地址,然后转移到一个持有562枚比特币的单一地址。25分钟的执行窗口和同时被攻击的钱包数量表明,攻击者在发起扫荡之前已经预先计算了易受攻击的密钥。这不是一次机会主义攻击。这是一项需要数周或数月准备的行动。
对扫荡的链上分析显示了一个有条不紊的执行顺序。攻击者没有同时广播所有500笔交易,那将面临内存池拥堵以及监控异常交易模式的MEV风格机器人抢先交易的风险。相反,交易被分批处理,每批在一个或两个区块内确认。整合地址在多个区块中收到资金,然后一笔最终交易将562枚比特币转移到一个似乎是长期持有的地址。截至撰写本文时,这些资金尚未进一步移动。
迁移问题
Coinkite的补救指南要求受影响的用户执行钱包迁移:在修补后的固件上生成新的种子,验证备份,发送测试交易,然后转移剩余资金。对于拥有单一钱包和中等余额的用户来说,这个过程很简单。对于使用多重签名设置、时间锁定交易或作为更大托管安排中一把钥匙的钱包的用户来说,这个过程要复杂得多。
迁移本身也带来了安全风险。将资金从受损钱包转移到新钱包需要受损钱包签署交易。如果攻击者已经计算出私钥,攻击者可以通过监控区块链上来自受损地址的任何交易并立即扫荡剩余资金来抢先迁移。拥有大量余额的用户面临着自己的迁移和攻击者的扫荡之间的竞争条件。
对于在多重签名安排中持有比特币、Coldcard作为多个签名设备之一的用户来说,迁移更为复杂,但风险部分得到缓解。一个2-of-3多重签名钱包,如果只有一把钥匙是在受影响的Coldcard上生成的,只要攻击者无法危及第二把钥匙,它仍然是安全的。然而,受损的钥匙仍然削弱了整体安全模型,应该被替换。这个过程需要与所有钥匙持有者协调,用替换钥匙构建新的多重签名钱包,用现有的法定人数签署迁移交易,并在转移剩余资金之前验证新的安排。
Coinkite解决了一个提供部分缓解的边缘情况。在种子生成过程中添加了至少50次独立掷骰子的用户贡献了足够的外部熵,使总熵超过128位,无论固件缺陷如何。骰子输入与设备生成的随机性一起进行哈希处理,因此强大的骰子熵弥补了设备熵的不足。添加了99次或更多掷骰子的用户仅从骰子就贡献了大约256位熵。
骰子例外凸显了一个讽刺。在种子生成过程中最有可能添加大量掷骰子的用户是最注重安全的用户,正是那些因为Coldcard在卓越安全实践方面的声誉而选择它的群体。对于这些用户来说,他们对熵质量的偏执可能无意中保护了他们免受制造商未能提供熵的影响。
这对硬件钱包安全意味着什么
Coldcard事件并不是第一次硬件钱包受损。Ledger在2020年遭遇了数据库泄露,暴露了客户信息。Trezor在2023年披露了一种物理提取漏洞。但那些事件涉及元数据泄露或物理访问要求。Coldcard漏洞不同,因为它破坏了设备的基本安全承诺:生成真正随机的私钥。
时机加剧了损害。事件发生时,比特币交易接近历史高点,机构对自我托管解决方案的采用加速。专门选择Coldcard因其安全声誉的公司和家族办公室现在面临紧急运营决策:在可能已经受损的密钥上迁移资金,同时与可能已经计算出这些密钥的攻击者赛跑。
该事件挑战了比特币社区视为基础的几个假设。假设开源固件本质上比专有固件更安全,因为它可以被审计。假设专用比特币设备中的硬件随机数生成器比软件替代方案更值得信赖。假设专注于比特币而非支持多种加密货币的设备将拥有更简单、因此更可审计的代码库。
这些假设原则上都没有错。它们只有在作为绝对真理时才是错误的。开源固件可以被审计,但并没有被有效审计。硬件随机数生成器更值得信赖,但前提是构建系统确实链接到了它们。仅支持比特币的代码库更简单,但简单并没有阻止一个存在五年的漏洞未被发现。
实际教训是,硬件钱包不应被视为大额比特币持有的唯一托管层。将密钥分散在来自不同制造商的多个设备上的多重签名安排,结合独立生成的熵源,提供了任何单一设备都无法比拟的深度防御。Coldcard事件表明,即使是最受信任的设备也可能以用户无法察觉的方式失效,直到资金消失。
更广泛的问题是,硬件钱包行业的安全审查流程是否足以保护它们所保护的资产。一个固件漏洞造成3800万美元的损失表明它们还不够。比特币倡导者推广的自我托管模式要求托管工具达到与它们试图取代的银行基础设施相当的可靠性标准。在Coldcard事件之后,这一标准尚未达到。
值得关注的事项
- **攻击者对562 BTC合并转账的动向。** 资金是被混合、发送到交易所,还是原地不动,将提供关于攻击者 sophistication 和司法管辖区的信息。链分析公司已经在监控该地址。
- **初始500个钱包之外的其他受影响钱包。** 攻击者可能已经计算了其他钱包的密钥,但选择不同时扫走它们。所有受影响的Coldcard型号的总暴露量可能远大于最初的3800万美元。
- **用户迁移的速度。** Coinkite无法强制用户生成新的种子。30天、60天和90天后仍留在受感染种子上的钱包数量将表明该公告有效覆盖受影响用户群的程度。
- **监管回应。** 在传统金融中,由制造商固件漏洞导致的消费者金融产品3800万美元损失将引发监管行动。消费者保护机构或金融监管机构是否对此事件作出回应,将表明政府如何对硬件钱包进行分类。
- **竞争制造商的披露。** Block、Trezor和Ledger已确认未受影响。他们是否会发布自己熵生成过程的详细技术分析,将表明该行业是将此视为Coldcard特有的失败,还是视为系统性审查的机会。
常见问题解答
Coldcard漏洞中被盗了多少比特币?
大约594 BTC,价值约3800万美元,在2026年7月31日的25分钟内从约500个Coldcard硬件钱包中被盗。这些资金被合并到一个持有562 BTC的地址中。
Coldcard漏洞的原因是什么?
Coldcard固件中的构建错误导致种子生成使用了MicroPython的软件随机数回退,而不是硬件随机数生成器。一个预处理器的检查只检查了配置设置是否被定义,而没有检查其值,因此构建在没有任何警告的情况下链接到了错误的实现。
受影响的种子有多弱?
Mk3种子的有效熵约为40位,而不是预期的128位。Mk4、Q和Mk5种子由于安全元件提供的额外熵,有效熵约为72位。40位的密钥空间可以用普通硬件暴力破解。
更新固件能解决问题吗?
不能。更新固件可以纠正未来的种子生成,但不会修复在受影响固件上已经创建的种子。用户必须在修补后的硬件上生成新种子,并将所有资金迁移到新钱包。
哪些Coldcard型号受影响?
所有当前型号都受到不同程度的影响。Mk3受影响最严重,熵为40位。Mk4、Mk5和Q受影响,熵约为72位。Tapsigner、Opendime和Satscard使用不同的代码,不受影响。
其他硬件钱包是否受到影响?
Block、Trezor 和 Ledger 已确认其产品不受影响。Block 发布了一份独立的技术分析。Trezor 表示其设备使用了不同的熵生成方法。该漏洞特定于 Coldcard 的固件构建过程。
Coinkite 在攻击发生前是否知道该漏洞?
Coinkite 表示,在漏洞被报告后,他们于 7 月 30 日发现了该缺陷并发布了公告。该公司表示,在攻击发生前几周,他们对固件进行了一次 AI 审查,但审查未发现该问题。该漏洞自 2021 年 3 月以来一直存在。
Coldcard 用户现在应该做什么?
更新到您型号的最新固件。在已修补的设备上生成新的种子。验证备份和接收地址。发送测试交易。转移剩余资金。在原始种子生成期间添加了至少 50 次独立掷骰子的用户可能无需迁移,但 Coinkite 建议无论如何都要迁移。







