2026年7月30日凌晨1点10分,UTC时间,比特币区块链上发生了一件诡异的事。

1,196个地址,在短短41分钟内,被同一个未知的攻击者像收麦子一样逐一清空。1,082.65枚比特币——当时价值超过7,000万美元——在6个区块的跨度内悄然转移。没有任何一台硬件钱包发出警报,没有任何一个用户收到提示。

而此时距离ColdCard官方发布安全警告,还有整整30个小时。

这不是一次普通的黑客攻击。攻击者没有钓鱼、没有社会工程学、没有供应链植入。他甚至不需要碰你的设备。他只需要在电脑前,像解一道数学题一样,把你的私钥"算"出来。

到8月2日,据Galaxy Research的最新链上追踪,三波攻击已累计扫走1,367.05枚比特币,涉及4,585个地址,总损失约8,860万美元。

这是一颗埋了5年零4个月的定时炸弹,终于在2026年夏天引爆。

一颗埋了五年的炸弹

故事要从2021年3月说起。

那时候,ColdCard的开发商Coinkite正在做一件看起来很常规的技术升级——把Bitcoin Core的libsecp256k1加密库集成到自己的固件里。在3月1日的一个代码提交(commit b18723dd)中,他们将钱包种子生成的路径迁移到了libngu库。

谁也没注意到,这次迁移埋下了一个致命的配置错误。

ColdCard的板级头文件里有一行代码:#define MICROPY_HW_ENABLE_RNG (0)。这行代码的本意是告诉MicroPython:"别用你自己的硬件随机数生成器了,我有自己的。"但问题出在libngu的检查方式上——它用的是#ifndef来检查这个宏"是否存在",而不是检查它的值"是否非零"。

打个比方:这就像一扇门装了密码锁,系统只检查"你有没有输入密码",却不管你输入的是"123456"还是空字符串。宏是定义了,但值是0——等于没锁。

于是,当用户在ColdCard上生成新钱包时,本应由硬件真随机数生成器(STM32芯片内置的TRNG)来提供熵源的操作,悄悄地滑向了一个叫Yasmarang的软件伪随机数生成器。而Yasmarang的种子来源是什么?芯片的序列号、系统滴答定时器和实时时钟寄存器。

说白了,你的"随机"私钥,是用设备的出厂编号和时间戳拼出来的。

这不是秘密信息。序列号是工厂写死的元数据,时钟值是可以通过同型号设备推导的可测量状态。对于掌握足够计算能力的攻击者来说,这些信息就是打开你钱包的钥匙。

3月17日,包含这个脆弱路径的固件v4.0.0正式发布。从此之后,每一台在这版固件上生成种子的Mk3设备,其钱包的熵值只有约40比特——而不是BIP-39标准承诺的128比特。

128比特和40比特的差距有多大?128比特意味着2的128次方种可能,全世界的计算机算到宇宙热寂也枚举不完。40比特意味着约1万亿种可能——现代计算机几小时就能跑完。

这颗炸弹就这么安静地躺在固件里,一躺就是5年。

一颗埋了五年的定时炸弹
一颗埋了五年的定时炸弹

期间,Coinkite发布了多次固件更新,没有一次触及这个问题。2022年3月,他们为Mk4添加了32位重播种API,从安全元件中读取熵并"增强"随机性——但只保留了4个字节的摘要。4字节,32比特,上限被钉死在约43亿种可能。一个普通GPU集群几天就能暴力穷举。

2026年,Coinkite甚至用"最好的AI模型之一"对自家固件做过代码审查。AI说:没发现什么问题。

四十一分钟的收割

2026年7月30日,UTC时间凌晨1点10分。

比特币区块链上,一批休眠多年的地址突然同时活跃起来。Galaxy Research的链上分析师后来追踪到,这些地址的创建时间横跨2021年到2026年——几乎与脆弱固件的存活时间完美吻合。受害地址的中位休眠时长约3.5年,完全符合长期冷存储的行为特征。

攻击是有节奏的。1,324个独立的比特币输出,被分散打包进500笔交易,在3个区块的窗口内完成。但中间有3个区块完全没有扫荡活动——说明交易是分批广播的,不是连续流。

最关键的"特征签名"是手续费。每一笔扫荡交易都硬编码了完全相同的30.0 sat/vB手续费。这个数字是当周中位数(约0.4-1.0 sat/vB)的30到75倍,而且所有交易都没有找零输出。

这意味着什么?正常用户转账时,会根据网络拥堵情况调整手续费,剩下的钱会退回到自己的找零地址。但攻击者不在乎手续费——他用的是偷来的钱,多付一点无所谓。没有找零,说明他根本不持有这些钱包的完整UTXO,只是用算出来的私钥直接把钱转走。

562枚比特币被合并到了一个单一地址。截至发稿,这笔钱纹丝未动。

Block工程师Clay Garrett随后发现了更多线索:695笔交易的签名特征与已确认的盗窃交易匹配,如果全部坐实,额外的488枚比特币也将被归入同一波攻击。Galaxy Research最终将第一波的总数字定格在1,082.65枚比特币,来自1,196个地址。

所有受害钱包都是单签名钱包,余额都超过0.15枚比特币。没有一个是多重签名,没有一個使用了强密码短语。

25分钟,594枚比特币。41分钟,1,082枚比特币。

速度本身就是证据。这不是人类在操作,是自动化脚本在批量收割。

官方迟到了三十小时

攻击发生在7月30日凌晨。而Coinkite发布初步安全公告的时间,是大约30个小时之后。

据The Block报道,7月30日当天,Block的比特币工程和安全团队率先注意到链上异常,并独立追查到了根本原因。他们随即向Coinkite披露了发现。Coinkite在同一天发布了仅针对Mk3的初步公告。

但Block选择了在Coinkite完成全部验证之前就公开技术报告。原因很简单,Block在报告中写道:"活跃利用正在进行中。"

每多一小时沉默,就多一个钱包可能被清空。

7月31日,Coinkite CEO Rodolfo Novak(圈内人称NVK)发表公开道歉信。"我很抱歉,也很心碎。我们的团队对昨天的消息感到崩溃。"他写道,同时承认公司承担全部责任。

但道歉解决不了已经生成的不安全种子。NVK坦言:固件更新只能保护未来新生成的种子,对已经用脆弱固件创建的钱包,更新毫无作用。用户必须在安全固件上重新生成种子,然后把资金全部迁移到新钱包。

Coinkite在7月31日发布了紧急修复固件:Mk3升级至v4.2.0及以上,Mk4和Mk5升级至v5.6.0及以上,Q升级至v1.5.0Q及以上。公告还特别警告:迁移过程中不要急躁,操作失误造成的损失可能比漏洞本身更大。

但有一个尴尬的现实——据Casa联合创始人Jameson Lopp在X上透露,Coinkite为了防止数据泄露,会在120天后清除所有客户记录。这意味着他们根本无法联系到过去5年间购买过脆弱设备的用户。

那些早已把ColdCard扔进抽屉、以为比特币安全无虞的人,可能永远不会知道自己的钱包正在被人暴力破解。

第二波精准收割

7月31日,第二波攻击到来。

这一次,攻击者从1,478个地址中扫走了76.16枚比特币。与第一波相比,金额小了很多,但涉及的地址数量反而更多。

这说明什么?攻击者在"扫尾"。

第一波是精准打击——优先清空那些余额大、休眠时间长的高价值目标。第二波则扩大了搜索范围,把那些余额较小、可能被遗漏的地址也一并收走。每枚比特币的平均收益从第一波的约0.91枚骤降到约0.05枚,但这恰恰说明攻击者已经建立了完整的脆弱地址数据库,正在系统性地清盘。

更令人不安的是时间节点。第二波发生在Coinkite发布安全公告之后。也就是说,攻击者明知事件已经曝光,仍然在大规模操作。

他不打算收手。

第三波销声匿迹

7月31日到8月1日,第三波攻击出现。约208枚比特币(Galaxy Research精确追踪到207.7294枚)从1,912个地址被转走。

但这一次,攻击者改变了手法。

前两波攻击有一个共同特征:资金被汇聚到少数几个"收集器"地址。这是一种高效的归集方式,但也让链上分析师很容易追踪资金流向。562枚比特币躺在同一个地址里,全世界都盯着它。

第三波完全不同。受害者资金没有被送往少数地址,而是被分散进了293个独立的P2WSH金库地址。

P2WSH(Pay-to-Witness-Script-Hash)是一种比特币地址类型,它的花费条件在资金移动之前是隐藏的。外部观察者无法从地址本身判断这些比特币需要什么条件才能再次被花出去。293个独立金库,意味着追踪难度呈几何级数增长。

Galaxy Research在分析中指出了两种可能性:第一种,原始攻击者在第一波操作曝光后重建了资金归集策略,以降低被追踪的风险;第二种,另一个独立的攻击者发现了同一批脆弱地址,开始自己的扫荡行动。

仅凭链上数据,无法区分这两种可能。

但无论哪种情况,结论都一样:攻击远未结束。

到8月2日,Galaxy Research给出了三波攻击的累计数据:1,367.05枚比特币,4,585个地址,约8,860万美元。

三波攻击 · 收割全景
三波攻击 · 收割全景

而另一个监测面板"Coldcard Sweep Watch"在周六美东时间下午5点给出的数字是1,158.848枚比特币——略低于Galaxy的统计。两个数据源的差异本身就说明,这场攻击的全貌仍在不断更新中。

随机数不随机

要让非技术背景的读者理解这次漏洞有多严重,需要解释一个核心概念:随机数。

在加密世界里,"随机"是一切的根基。你的比特币私钥、钱包种子、助记词——全部由随机数生成。如果随机数足够"随机",猜出你的私钥的概率约等于零。但如果随机数可以被预测或复现,你的钱包就是一扇虚掩的门。

ColdCard的问题,恰恰出在这里。

Block工程团队的详细技术报告揭示了完整的失败链条:

第一层失败:硬件随机数生成器被关闭。 ColdCard的STM32芯片内置了一个真随机数生成器(TRNG),本来是生成私钥的"金矿"。但一个编译配置错误导致这个TRNG被绕过,系统转而使用MicroPython的Yasmarang软件伪随机数生成器。

第二层失败:Yasmarang的种子不安全。 Yasmarang的初始化参数来自三个源:MCU的96位UID(芯片唯一标识,只有低32位参与)、SysTick定时器(一个周期性递减计数器,Mk2/Mk3约8万个可能值)和RTC实时时钟寄存器。这三个值,没有一个是密码学意义上的密钥。序列号是工厂写的,定时器是可推导的,时钟是可测量的。

第三层失败:XOR操作不创造熵。 libngu库维护了第二个Yasmarang状态,用公开常量初始化,每个输出字与MicroPython的输出做异或运算。但密码学的基本原理告诉我们:如果两个输入都可复现,它们的异或结果也可复现。异或不能凭空创造不确定性。

第四层失败:哈希函数也不增加熵。 ColdCard对生成的种子做了SHA256d双哈希处理。哈希函数能让输出看起来更均匀,但不能增加输入的可能组合数。如果输入只有2的32次方种可能,输出也只有2的32次方种可能——只是看起来更"乱"了而已。

对于Mk4、Q和Mk5设备,虽然增加了安全元件的重播种机制,但只保留了4字节(32位)的摘要。上限被钉死在约43亿种可能。而Mk2和Mk3在v4.0.0到v4.1.9固件上,如果攻击者知道设备UID和定时器状态,候选数直接降为2的0次方——完全确定。

这意味着,只要攻击者能获得你的设备序列号和大概的生成时间,他就能离线复现你钱包的整个随机数流,进而推导出你的私钥。

而获取设备序列号有多难?ColdCard的固件是开源的,代码在GitHub上。任何拥有同型号设备的人都可以测量定时器和时钟的行为模式。至于序列号——你在二手平台买一台ColdCard,序列号就贴在包装上。

随机数不随机:四层失败
随机数不随机:四层失败

四十比特的谎言

BIP-39标准告诉你:12个助记词等于128比特的熵,24个助记词等于256比特的熵。这是"不可破解"的数学保证。

ColdCard的屏幕上,生成种子的过程看起来一切正常。它甚至会提示你掷骰子来增加随机性。如果你不做这一步,它也会"自动"为你生成种子。你以为你得到了128比特的安全性,实际上只有40比特。

40比特是什么概念?用日常生活的参照来理解:128比特的搜索空间,相当于把地球上所有沙子编号后让你猜其中一粒。40比特的搜索空间,相当于让你猜一个12位的数字密码——现代计算机几小时就能遍历完毕。

128比特 vs 40比特
128比特 vs 40比特

更残酷的是,这个"40比特"的上限是在攻击者完全不知道设备信息的情况下的理论最大值。如果攻击者知道你的设备UID(比如你曾在社交媒体晒过设备照片),搜索空间会进一步压缩。如果同时知道大概的生成时间,搜索空间可能降到接近零。

这不是一个"可能被利用"的理论漏洞。这是一个已经被实际利用、已经造成8,860万美元损失的真实攻击。

而且,同一个脆弱的随机数生成器不只用于钱包种子。Block的报告指出,ColdCard的纸钱包私钥、种子XOR分割掩码、设备克隆密钥、Key Teleport传输密钥、Web 2FA的TOTP共享密钥——全部使用了同一个ngu.random构造。攻击面远不止已经被清空的那些地址。

CEO的道歉与AI阴影

NVK的道歉信里有几个值得注意的细节。

第一,他承认Coinkite的审查流程没能发现这个漏洞。更令人不安的是,Coinkite在攻击发生前曾用"最好的AI模型之一"审查过自家固件,AI的报告是"没有发现严重问题"。而攻击者疑似使用了AI来分析开源固件代码,找到了这个埋藏5年的缺陷。

"这是一个新AI范式带来的冰冷现实。"NVK写道。攻击者和防御者使用同样的AI工具,但攻击者只需要找到一个漏洞,防御者需要找到所有漏洞。这种不对称性,让开源安全审查的有效性面临前所未有的挑战。

第二,Coinkite一开始只警告了Mk3用户,声称Mk4、Q和Mk5"初步分析不受影响"。但随后就不得不扩大警告范围——这些型号同样存在熵值不足的问题,只是严重程度稍低(72比特 vs 40比特)。

72比特听起来比40比特好很多,但在密码学实践中,72比特远低于128比特的最低安全标准。在持续且有针对性的攻击下,72比特并非不可破解。Coinkite将此描述为"不那么严重但仍然严重"——这种措辞在8,860万美元的损失面前显得苍白无力。

第三,NVK承诺会协助受影响用户寻求警方报案、保险理赔或独立调查。但Coinkite不掌握客户联系信息(120天后清除记录),也不清楚到底有多少台脆弱设备还在流通中。

Casa CEO Nick Neuman在X上的一段话点出了问题的核心:"你不能要求人们掷骰子来保证自托管的安全。这对99%的人来说根本行不通。"

交易所涌入上万BTC

攻击的影响不限于直接受害者。

7月31日,中心化交易所录得了比特币净流入的异常飙升。Timechainindex.com的数据显示,当天交易所净流入约11,163枚比特币。其中River收到约3,679枚,Binance收到约3,224枚,Kraken收到约2,848枚,OKX收到约1,291枚。

这些流入并不一定全部来自ColdCard用户或攻击者。交易所的日常运营、机构调仓、客户存取都会产生资金流动。但一个安全恐慌事件恰好伴随着如此大规模的交易所流入,时间上的巧合足以引起关注。

可能的解释有两种:一是恐慌的ColdCard用户在得知漏洞后,紧急将比特币转入交易所保管;二是攻击者正在尝试通过交易所变现部分赃款。也可能两者兼有。

与此同时,另一组数据更耐人寻味。7月30日至8月1日间,一批创建于2010年至2017年之间的休眠地址开始移动比特币,总计约306枚。其中一个2010年7月2日创建的地址移动了超过50枚比特币的coinbase交易输出。三个2017年7月29日创建的钱包在同一区块中分别移动了37.5枚和两个30枚比特币。

这些远古比特币的移动与ColdCard攻击之间的关联尚未得到确认。但在安全事件期间,大量休眠资金同时苏醒,本身就是一个需要警惕的信号。

冷存储神话的裂痕

ColdCard一直以来被比特币社区视为"最安全"的硬件钱包之一。它专注于比特币、完全离线操作、固件开源、支持多重签名——几乎符合所有"正确"的自托管建议。

正因如此,这次攻击的打击格外沉重。

比特币评论员Guy Swann在X上写道:"这是比特币历史上对最懂行、'安全措施最到位'的比特币持有者最严重的一次打击。这不是交易所因为热钱包被黑。这是成千上万的个人用户,他们的私人密钥被从脚底下抽走了。"

ARK Invest数字资产研究总监Lorenzo Valente的话更直接:"自托管硬件钱包领域目前就是一场灾难。实际上,消费者只是用一种风险换了另一种风险——用对手方风险换了软件风险、硬件风险、供应链风险、钓鱼风险、备份风险,以及一个失误就失去一切的可能性。坦白说,今天你把钱分散放在几个上市交易所或ETF里,反而更安全。"

Taproot开发者Udi Wertheimer则指出了一个更深层的变化:"你的比特币安静地躺在某个秘密的地方、你安心享受生活不用担心的想法,在当下是不切实际的。如果你不想自己操心,你就得花钱请别人替你操心。"

Binance创始人赵长鹏(CZ)在8月1日发文警告:"没有什么是100%安全的。"他呼吁用户将资金分散到多个钱包,不要把所有鸡蛋放在一个篮子里。

竞品厂商迅速划清界限。Ledger声明其设备使用经过认证的Secure Element内置真随机数生成器,生成完整的256比特熵,不受影响。Trezor确认其设备混合使用多个独立随机源,同样安全。

但这场危机引发的根本性讨论远超ColdCard一家公司。

Blockaid的数据显示,2026年上半年加密领域的大部分损失并非来自智能合约漏洞,而是来自密钥泄露和操作安全失败。ColdCard事件完美地印证了这一趋势——漏洞不在协议层,而在密钥生成层。

一个硬件钱包的安全性,最终取决于用户永远看不见、摸不着的固件代码。当那段代码出错时,所有的物理隔离、离线操作、开源审查都成了纸糊的城墙。

冷存储神话的裂痕
冷存储神话的裂痕

谁的密钥还在裸奔

截至发稿,攻击仍在持续。

Galaxy Research正在监控约300个攻击者地址,等待第一笔向外的支出。被盗资金的平均收益正在递减——第一波平均每个地址约0.91枚比特币,第三波降至约0.11枚。收益在减少,但搜索没有停止,这说明脆弱地址池远未被清空。

更关键的问题是:还有多少脆弱种子尚未被攻击者发现,也尚未被用户迁移?

ColdCard在2021年3月至2026年7月间售出的设备数量从未公开。Coinkite清除客户记录的政策让精确通知变得不可能。而那些在脆弱固件上生成种子、随后将种子导入其他钱包的用户,同样处于风险之中——不安全的种子不会因为换了软件就变安全。

Block工程师Max Guise在X上呼吁:"任何拥有受影响ColdCard的人,应尽快安全地转移资金。"

Peter Todd——曾被怀疑是中本聪的网络安全工程师——提出了一个更隐蔽的风险:即使使用多重签名,如果2/3的签名设备都是受影响的ColdCard,攻击者在用户发起交易、揭示多重签名脚本时,就能获取足够信息截走资产。

每一分钟,都可能有新的钱包被清空。每一台仍在使用脆弱种子的ColdCard,都是一颗等待引爆的炸弹。

而攻击者的身份,至今成谜。那562枚比特币,仍然安静地躺在合并地址里——像一头蛰伏的猛兽,随时可能苏醒。