2026盛夏的无声洗劫:Coldcard、SecondFi事件与Crypto钱包安全
没有人钓鱼你、没有人攻破服务器、你的硬件也没有被入侵——但你的比特币还是消失了。2026 年夏天的两起被盗事件,让整个自托管行业重新审视一个最基础的问题:你的私钥,真的"随机"吗?
一、第一起:SecondFi,被"签名"出卖的 Cardano 钱包
2026 年 6 月 21 日至 23 日,Cardano 生态最主流的钱包之一 SecondFi(EMURGO 出品、已故 Yoroi 钱包的继任者)遭遇攻击:374 个用户钱包、共 1610 万 ADA(约 240 万美元)被掏空。7 月 22 日,EMURGO 官宣:SecondFi 永久停止运营,团队只保留一个职能——追回资产。
黑客是怎么做到的?没有钓鱼、没有供应链投毒、没有任何用户点过恶意链接。
根因是一个"nonce"(一次性随机数)缺陷。
要给交易签名,钱包需要生成一个随机数 nonce。SecondFi 对 Cardano 扩展版 Ed25519 签名方案的实现,在 6 月 8 日的一次 Android 更新中引入了错误的 nonce 推导逻辑——它变得可预测、可复用。而签名数学有个铁律:如果攻击者拿到同一密钥的几笔有效签名,并知道 nonce 之间的关系,就能从公开链上数据反推出你的私钥。SecondFi 的交易签名全部明文上链,等于把自己的"解密钥匙"挂在门口。
- 损失:约 1610 万 ADA(约 240 万美元),374 个钱包
- 后记:一名身份不明的"白帽"追回了 1.29 亿 ADA(约 1850 万美元),去向仍待确认
- 结局:项目永久关闭,正在开发基于零知识证明的恢复门户(预计 8 月上线)
一句话版本:钱包软件把"每次必须不同的随机数"写坏了,私钥被从链上公开签名里数学地算了出来。
二、第二起:Coldcard,被"熵"出卖的比特币冷钱包
如果说 SecondFi 还算是"钱包软件公司"的失误,那么 Coldcard 的翻车则震动了自托管界——因为它是行业里最受尊敬的硬件冷钱包:加拿大 Coinkite 出品、纯比特币、开源固件、空气隔离签名。
7 月 30 日凌晨,链上侦探发现异常:约 25 分钟内,约 500 个单签地址、共 594 BTC(约 3800 万美元)被系统性扫空。随后 Galaxy Research 的追查把规模扩大至 4000+ 地址、约 1367 BTC(约 8860 万美元)。
根因比 SecondFi 更"吓人":一个 2021 年 3 月就混入固件的构建期错误。某行 #ifndef 预处理宏判断失误,导致固件在生成种子(助记词)时,悄悄从"STM32 硬件真随机数发生器"回退到了一个为性能而非安全设计的软件随机数发生器 Yasmarang,种子来源混入了固定出厂序列号、时钟寄存器等可预测数据。
后果是灾难性的:
| 设备型号 | 实际熵 | 预期熵 | 爆破难度 |
|---|---|---|---|
| Mk2 / Mk3 | 约 40 bit | 128 bit | 现代算力可枚举 |
| Mk4 / Q / Mk5 | 约 72 bit | 128 bit | 仍需海量算力,但不可接受 |
40 bit 意味着攻击者不需要"偷"你的私钥,只需要把可能的种子空间全部算一遍,再与链上地址比对。攻击者显然在 7 月 30 日之前就完成了这套反向工程,然后用 25 分钟收割了所有撞上的钱包。
Coinkite 当天紧急发布修复固件(Mk3→4.2.0,Mk4/Mk5→5.6.0,Q→1.5.0Q),并给出沉痛的建议:更新固件救不了已经生成的种子——只要你的种子是在 2021 年 3 月之后的受影响固件上生成的,唯一安全的选择是换新设备、重新生成种子、迁移资产。
一句话版本:硬件钱包在"播种"环节生成了弱随机种子,私钥不是被偷的,是被"穷举"出来的。
三、它们其实是同一个敌人:密钥生成环节的"内部故障"
把两起事件并排看,你会看到一个惊人的共性:
- ❌ 没有服务器被攻破(SecondFi 是签名代码自己的错,Coldcard 是固件自己的错)
- ❌ 没有私钥泄漏(私钥从未离开设备/用户)
- ❌ 没有用户被骗(没人点链接、没人输错密码)
- ✅ 但攻击者都能从公开数据出发,推演并重建你的私钥
这两起事件与 2026 年 H1 整个行业的趋势完全一致:根据 Hacken 报告,2026 年第二季度 7.639 亿美元被盗资金中,超过 88% 源于密钥管理与运营失守,而非智能合约漏洞。业内早已不是"合约被黑"的时代,而是**"密钥是怎么生成、怎么签名、怎么保管"的时代**。
密码学家的老话说:随机性(entropy)是密钥安全的根基。签名 nonce 和种子熵,就是承载这条根的土壤。SecondFi 把土换成了沙,Coldcard 把土换成了沙——只是换法不同,一个是签名时出错,一个是播种时出错。
四、为什么一个 2021 年的 bug,五年没人发现?
这是这次事件最扎心的问题。Coldcard 固件一直是开源的,五年间经历了多次审计、无数用户背书。为什么?
- 源码看起来完全正确。 根因是一个预处理宏在构建期静默改写了随机数调用路径。读代码时一切正常,错误藏在构建系统里,肉眼审查无法发现。
- 熵无法事后验证。 40 bit 熵的种子和 128 bit 熵的种子,外形完全一样——没有告警、没有异常、没有统计差异。你永远无法从结果倒推当时随机数好不好。
- 开源 ≠ 被审计。 "足够多的眼睛"这句话在普通软件上成立,在硬件钱包固件上不成立——它需要嵌入式、密码学、安全启动、侧信道等交叉领域专家,全球没几个人够格逐行审查,而他们也没在做这件事。
- 测试覆盖不到构建错误。 功能测试验证"能生成种子",不验证"随机数来自哪个模块"。构建配置回归是 CI 的经典盲区。
- 漏洞需要被"武器化"才致命。 弱熵从 2021 年就在那里,但攻击者需要先逆向 Yasmarang 的状态(设备 UID、时钟、调用历史)才能还原种子流。这项工作做完了,武器化才会发生——7 月 30 日那场扫链,就是漏洞被武器化的瞬间,也是它第一次被"发现"。
一句话:这是一个"看起来正确、运行正常、无法从外部验证"的静默故障。它最终靠一笔 3800 万美元的盗窃才暴露。这提醒我们:密钥生成路径,应当被当作常设审计目标,而不是"已解决的问题"。
五、那我手上的 Trezor 呢?
Coldcard 事件后,整个硬件钱包行业第一时间自证清白:Ledger、Tangem、Jade、Bitkey 均声明不受影响。对 Trezor,一份 7 月 31 日发布的针对其固件源码的独立审计给出了肯定的结论:Trezor 的种子生成不存在 Coldcard 这一类缺陷,原因在架构层面:
- 双熵源混合。 Trezor 种子 = SHA-256(设备 TRNG 32 字节 ⊕ 电脑系统随机数 32 字节)。即使设备端 RNG 完全失效,主机熵仍兜底——Coldcard 致命就致命在设备是唯一熵源。
- 熵检查协议(entropy check)。 固件 2.8.7 / 1.13.1 起,创建钱包时会执行"先承诺、后揭示"的密码学验证,Trezor Suite 默认开启——在生成那一刻就能证明熵真的被采样了。这是全行业少有的同类机制。
- 弱随机数进不了量产固件。 测试用的弱 PRNG 被宏隔离、仅在模拟器构建存在,量产构建会因符号冲突直接链接失败——这正是 Coldcard 栽跟头的位置,Trezor 用工程手段封死了。
- 硬件 RNG fail-closed。 TRNG 故障即死机,绝不输出弱随机数。
当然,这不等于 Trezor 完美无缺:它的历史漏洞集中在物理攻击(如 Safe 3 的电压毛刺)和协议显示层,且属于"需要接触设备或主机已沦陷"的场景。但就Coldcard/SecondFi 这一条故障线(熵与随机数)而言,Trezor 是目前行业里架构防护最强的。
六、那"官方钱包 + Linux 离线机"呢
每次讲完硬件钱包,总有人问:那我不买硬件钱包,用一台专门的 Linux 电脑 + 官方钱包软件(如 Bitcoin Core),离线运行,行不行?这是一个被认真对待的方案,值得单独谈。
先给结论:在网络攻击与随机数这两条最受关注的攻击线上,它相当能打;但它的安全性建立在"纪律"而非"设计"之上,两者失败模式完全不同。
网络攻击:结构性免疫,但防线是"一次性"的
- 离线 Linux 机器物理上不联网 = 零远程攻击面,这是它最强的点,也是它优于在线方案的根本原因。
- 代价:你家里那台用于查余额的在线 watch-only 机器成为新的暴露面——它可以被攻陷,但偷不走密钥(密钥在离线机里),只能骗你在错误的地址上转账。
- 与 Trezor 对比:Trezor 是"主机 100% 沦陷也拿不到密钥,只可能被骗签一笔";离线 Linux 是"远程打不进来,但机器只要脏过一次就等于全没了"。
随机数:OS 熵很可靠,但风险藏在"调用层"
- 好消息:现代 Linux 内核 CSPRNG(
getrandom阻塞式初始化、x86 吸收 RDSEED、多源混合器)本身就是世界级的,官方钱包软件(Bitcoin Core、Electrum、Sparrow)也都走 OS 熵,不自造轮子。 - 坏消息:历史上最惨的熵事故,恰恰全在"软件钱包"这条线上:
- 2011–2013 年 Bitcoin Core:用 OpenSSL 的 RAND 且种子来源弱,真实丢币;
- Trust Wallet iOS(CVE-2024-23660,官方 App):只用设备时间当熵源,2023 年 7 月被在野利用;
- Randstorm、Ill Bloom(2026):一批软件钱包因弱 PRNG 集体爆雷,多链受损。
- 共性:不是 OS 熵穷,而是某个调用层把熵用错了;而这层没有事后验证手段——你永远无法证明"当时生成种子的那一刻,熵是强的"。这正是 Coldcard 教训的"软件版"。
一个反直觉的点:Trezor 会把主机的 32 字节熵混进种子——你的 Linux 熵越好,Trezor 也越强。两者是互补而非对立。
本地风险:你把全部赌注押在了"机器这辈子一直干净"
- 硬件钱包把"主机已被攻陷"当作设计前提,因此它失效时通常只是部分损失;离线 Linux 则把全部赌注押在一件事上:机器从未脏过。一次好奇联网、一个来路不明的 U 盘、一次把电脑借人——密钥即失,而且无从察觉。你永远不知道自己已经完了,直到余额归零。
- 更新悖论:空气隔离 = 永远没有安全更新。任何经由 U 盘、文件解析、特制 QR 触发的本地漏洞一旦存在于初始镜像或日后拷入的软件中,就永久有效,攻击面只增不减。
- 物理场景:短暂接触可装硬件键盘记录器、改引导;硬盘被拿走,就只能赌你的 LUKS/钱包口令强度,且存在冷启动攻击。
官方软件路线的最优实践清单
如果选择这条路,以下每一步都是硬要求:
- 装机:LTS 发行版最小化安装,官方 ISO + 校验和 + 在另一台机器上验签;装好后禁用 swap / 休眠(避免私钥明文落盘),拆网卡或防火墙全禁出站。
- "官方"两个字要用签名兑现:下载 Bitcoin Core 后核 GPG 签名 + SHA256SUMS,指纹以官网页面为准(不要信聊天记录里贴的哈希);有条件就对官方可复现构建产物比对。
- 熵清零(可选但推荐):默认 OS CSPRNG 已足够可靠;想彻底摆脱对软件的信任,可用骰子离线掷出 32 字节 hex,
sethdseed true <hex>手动注入 HD 种子——密钥熵由物理骰子决定,与软件、构建全部无关(等价于 BIP39 外部导入)。 - 备份与演练:
encryptwallet设强口令;把 HD 根种子写到钢板上、至少两份异地;现在就做一次完整恢复演练——新装一台干净机、导入种子、确认余额到账。熵不可事后验证,唯一靠谱的对冲是你亲手验证过"这张种子能救回我的钱"。
两方案对比
| 维度 | Trezor 硬件钱包 | 离线 Linux + 官方钱包 |
|---|---|---|
| 网络攻击 | 打不穿,但可被骗签 | 零攻击面(最强) |
| 熵/随机数 | 双熵源 + 熵检查,可验证(最强) | OS CSPRNG 可靠,但不可事后验证,依赖钱包软件实现 |
| 主机被感染 | 免疫(设计保证) | 一次失误 = 全损,且无声无息 |
| 物理被盗 | PIN + passphrase + 安全元件限速 | 口令强度 + 冷启动风险 |
| 更新维护 | 官方固件一键更新 | 不联网 = 永不补丁,攻击面累积 |
| 信任点 | 厂商固件(开源可审) | 你自己的终身纪律 |
结论
- 对能严格自律的专业用户:这套组合真实可用,安全性不输硬件钱包太多,且可审计性更强(你能看每行代码)。
- 对大多数用户:同样的失误,Trezor 用户的损失上限是"被骗签一笔"(且设备屏幕还能拦截),Linux 用户是全盘清空。
- 最优解是组合而非二选一:硬件钱包做主存储 + Linux 离线机做交易构造与校验(watch-only),或者干脆做多签(2-of-3:Trezor + 离线机 + 钢板),任一环节沦陷都不致命。
七、普通用户到底该怎么守
两起事件的教育意义不是"哪个钱包不能买",而是理解自托管安全的真正支柱:
- 熵(随机数):选择架构上可验证熵的来源。首选硬件钱包(双熵源 + 熵检查),次选官方钱包软件 + Linux(OS 级 CSPRNG 本身很强),不选来路不明的第三方软件。极客方案:用骰子离线掷出 128 位随机数生成 BIP39 助记词再导入钱包——密钥熵与软件、构建、厂商彻底无关。
- 真伪(供应链):Coldcard 教训对任何软件同样成立——下载的"官方软件"必须验 GPG 签名、对校验和、核对官方指纹。你的"官方"两个字,要用签名兑现。
- 备份(唯一不可再错的一环):助记词写钢板、至少两份异地存放。数据说明:90% 的自保管损失不是被黑,而是备份丢失。 黑客攻不破你,你却可能弄丢自己的钥匙。
- 可恢复(演练):现在就做一次完整恢复演练——新设备导入种子、确认余额、再决定是否继续使用。熵不可事后验证,唯一能对冲的,是你亲手验证过"这张种子能救回我的钱"。
另外两个低成本高收益动作:
- 加 passphrase(BIP39 第 25 个词):种子弱,passphrase 可以是最后防线;Coldcard 事件中,加了强 passphrase 的用户被认定风险极小。
- 多签:2-of-3(如 Trezor + 离线电脑 + 钢板),任一环节沦陷都不致命——"爆炸半径"永远是安全设计的第一指标。
尾声:冷储存的神话与可验证的未来
Coldcard 事件最刺痛的一句话来自一位老比特币玩家:"这是比特币历史上,对最懂行、保管最规范的那批人最沉重的一次打击。没有交易所被黑、没有热钱包泄露,是几千个人的私钥在脚下被重新算了出来。"
它摧毁的是一种安全感——"我把私钥锁进硬件,它就绝对安全"。真相是:硬件钱包的每一层安保,都建立在一个不可见的前提之上——随机数生成那一刻的正确性。 这个前提一旦出错,后面所有锁都形同虚设。
好消息是,行业正在朝"可验证"的方向走:Trezor 的熵检查协议、Coinkite 用构建期符号检查堵住同类回归、越来越多厂商支持外部骰子熵导入。冷储存的未来,不会属于"更信任谁",而属于"更多可以被验证的环节"。
对你个人而言,这件事的答案其实很朴素:把熵交给可验证的架构,把种子交给钢板,把恢复交给演练。 做到了这三条,下一次行业级地震发生时,你大概率只是看客。