有人已经清空了原本无法访问的比特币钱包。
这些硬币存放在 Coldcard 设备上——加拿大制造商 Coinkite 的硬件钱包,这种钱包永远不会接触互联网。没有网络钓鱼链接。没有恶意软件。没有被盗的笔记本电脑。攻击者只是找出私钥是什么。

Galaxy Research 目前已在三波已确认的浪潮中追踪到超过 1,596 枚比特币被盗,疑似第四波浪潮将导致总数达到约 2,055 比特币——按当前价格计算,约合 1.3 亿美元。一场扫荡在 41 分钟内就筹集了 7000 万美元。 Coinkite 表示,至少有 15 名不同的攻击者涌入。
该公司于 8 月 1 日发布了一份技术背景资料,解释了问题所在。这是一份异常坦诚的文件,简短的版本是,钱包在没有人注意到的情况下滚动了八年。
零仍然是一些东西
2021 年,Coinkite 将 Coldcard 的加密技术转移到 libsecp256k1 上,这与 Bitcoin Core 使用的库相同。明智的决定。整合正是它崩溃的地方。
这次迁移悄悄地将种子生成从 Coldcard 自己的硬件随机数生成器转移到 MicroPython 的软件后备上——一种名为 Yasmarang 的小型算法,适用于根本没有随机芯片的设备。
🚨COLDCARD 黑客攻击造成的损失超过 1 亿美元
高可信度的 1,596 BTC 在 3 个已确认的浪潮和另外 14 个较小事件中从约 7300 个地址被盗。
如果我们加上可疑的(但未经证实的),总金额将增加到 1.3 亿美元(2000 比特币)。
更多内容请参见下面的帖子👇 pic.twitter.com/RAl3ib67qa
— 银河研究 (@glxyresearch) 2026 年 8 月 3 日
Coldcard 有一个随机芯片。只是不再被问到了。
这个原因几乎小得令人难以置信。构建防护使用#ifndef,它检查设置是否存在而不是它是否打开。 Coinkite 将该设置定义为零,意思是“关闭”。由于零仍然按照定义计算,因此安全检查通过并且构建完成。该函数的两个版本具有相同的签名,因此看起来没有任何问题。
Coinkite 写道:“COLDCARD 上的大部分随机性来自 PRNG,但我不知道它实际上在源代码库中。”它指的是伪随机数生成器,该软件生成的数字看起来是随机的,但从起始值开始遵循固定的配方。
为配方提供相同的起始值,您将获得相同的输出。每次。
在运行固件 4.0.1 至 4.1.9 的 Mk2 和 Mk3 设备上,该起始值来自芯片的序列号及其时钟。 Coinkite 估计结果搜索空间约为 40 位。较新的模型混合了一点安全元素熵,将它们提升到大约 72 位。
目标 128 也不是。
差距比看起来更重要。位是指数。 128 位搜索空间包含的组合比可观测宇宙中的原子还要多,而且没有人在搜索它。四十位大约是一万亿——一个像样的笔记本电脑可以处理的数字。你每损失一点,工作量就会减半。
Block 的工程团队发表了自己的分析,将新设备的有效安全元件搜索空间设置为 2^32 个候选者,平均约为 2^31 次试验。他们对旧板的评估比较直白:对于已知的设备 ID、计时器状态和通话历史记录,钱包的生成是确定性的。
确定性与随机性相反,而随机性对于密码学至关重要。
不是“弱”。可预测的。
Coinkite 怀疑它是被机器发现的。该公司写道:“我们必须假设有人使用人工智能来审查我们固件的早期版本,并偶然发现了这个问题。”并补充说,它最近在相同的代码上运行了最好的可用人工智能模型之一,但没有发现任何结果。 “攻击者和防御者都拥有相同的人工智能工具,但今天它没有帮助我们,只会帮助坏人。”
每个受影响型号均已修复固件。它不会修复现有的种子;这些钱包必须重新生成并转移资金。 Decrypt 报道了此类漏洞之后气隙存储的变化,并跟踪了超过 1.14 亿美元的损失。
熵实际上是什么
熵是攻击者不知道多少的度量。
换句话说,它基本上是不确定性,以比特为单位计算。一位是抛一枚硬币:两种结果,猜测者有一半的机会猜对。 10 位是 1,024 个结果。每一位都会使猜测者的工作量增加一倍。
比特币钱包是一个非常大的秘密数字。人们发送硬币的地址是从它的数学上推导出来的,并且推导只能以一种方式进行——你可以从密钥转到地址,但永远不会返回。
因此,每个钱包的安全性都取决于一个问题:攻击者必须尝试多少个数字?
如果该数字是用 128 位熵选取的,则答案是“超出物理允许范围”。如果选择的是 40,答案是“给我一些时间”。
这与量子计算威胁值得争论的属性相同——量子机器会攻击将密钥链接到地址的数学。 Coldcard bug 从来不需要这样做。在涉及数学之前,它使密钥可以被猜测。
这就是词汇变得棘手的地方。伪随机生成器生成的输出可以通过随机性统计测试,因此电子表格基本上不会标记任何内容。该产量仍然完全由其种子价值决定。它看起来是随机的,但事实并非如此。
统计随机性和密码学的不可预测性是不同的属性,Coldcard 的输出将顺利通过第一次测试,而第二次测试则完全失败。
真正的随机性必须来自物理噪声:电路中的电抖动、热波动、放射性衰变。这就是 Coldcard 上的硬件芯片的用途。那是构建标志断开连接的芯片。
然后卢克·达什尔(Luke Dashjr)举起了骰子
当用户争先恐后地再生种子时,许多人寻求了明显的低技术解决方案。 Coldcards 可让您掷物理骰子并将结果作为熵输入。 Coinkite 自己的指南将至少 50 个独立、私人掷骰子制成的种子视为不会受到该错误的威胁。
这听起来可能很愚蠢,但该公司实际上出售了一个袋子,里面装有“100 个可爱的小骰子”,让您可以更轻松地完成整个过程。
7 月 31 日,Bitcoin Core 开发者 Luke Dashjr 发布了警告:“相当多的人建议/使用骰子来缓解 Coldcard 漏洞。请注意,普通骰子并非设计为加密安全的。如果你打算这样做,你可能应该购买精密赌场骰子。即便如此,也要有另一个熵源。”
比特币推特并没有淡定。
“哈哈,现在你甚至不能掷骰子了,”一位用户写道。 “自我监护是为了……”另一个人问他是否应该雇用患有帕金森症的人来扔它们。 (不太好。)
我应该雇一个患有帕金森病的人来掷骰子吗?
— 穆伦 (@Bitcoin_Murern) 2026 年 7 月 31 日
也许最有用的答案来自算术。开发者贾斯汀·夏普 (Justin Sharp) 计算了一个坏骰子到底要花多少钱:
“杀伤力太大了。完美的 d6 每卷给出 2.585 位。明显有偏差的骰子,例如,一张脸在 20% 的时间而不是 16.7% 的情况下着陆,仍然给出大约 2.55 位。在 99 卷中,这就是约 256 位和约 252 位熵之间的差异。”
256 位中的 4 位。这是对明显不公平骰子的全部惩罚。
Dashjr 并没有错,廉价骰子具有可测量的偏差——注塑骰子从每个面上去除的塑料量略有不同,这正是赌场使用齐平填充精密骰子的原因。他对物理学的看法是正确的,但对赌注的看法是错误的。从 256 中丢失 4 位后,您的数量为 252。Coldcard 的错误使用户数量为 40。
不过,他的建议中隐藏着一个更尖锐的论点,而且这与制造公差无关。这是关于不信任任何单一来源。 Coldcard 的失败并不是因为它的熵略有偏差,而是一个组件默默地停止了贡献,并且没有任何东西捕获它。
该怎么办
如果您在受影响的 Coldcard 上生成了一个种子,而没有掷骰子(确实如此)或没有强大的 BIP-39 密码,那么该种子就会受到损害。
更新固件,生成新种子,验证指纹,发送测试交易,然后移动所有内容。 Coinkite 的建议逐一介绍了它。导出的种子带有缺陷——将坏种子转移到不同的钱包应用程序中并不能解决任何问题。
对于其他人来说,要点并不是硬件钱包坏了或者骰子是陷阱。
问题是“随机”是一种主张,而主张需要检查。 Coldcard 的源代码始终是公开的。预期的硬件 RNG 就位于二进制文件中。审阅者确认了它的存在,但从未确认种子生成器确实调用了它。
八年的审计检查了正确的代码。没有人检查它是否运行。