报告编号CTI-2026-0804-COLDCARD-RNG ·发布日期2026-08-04 ·分类TLP:GREEN ·严重程度 CRITICAL
作者 Dennis Kim / HoKwang Kim · [email protected] · @gameworkerkim
硬件钱包的安全性,从来不在于"把密钥放在哪里",而在于"密钥是如何生成的"。Coldcard完美地守住了前者,却在后者上疏忽了整整五年。
🌐 Language:한국어 · English · 日本語 ·中文
目录
- 摘要(TL;DR)
- 引言 — 隔离依然完好,生成却已崩溃
- 事件时间线
- 根本原因分析 — 仅检查宏是否存在的fail-open结构
- 技术性漏洞分析 — 熵崩溃的量化
- 攻击链分析 — 离线种子复现与链上清空
- 影响量化分析 — 三波攻击
- 幸存者分析 — 什么保住了钱包
- 应对与迁移 — 补丁无法修复的部分
- 行业启示 — 重新审视信任模型
- 韩国视角 — 监管适配性与对国内交易所的建议
- 致比特币投资者的建议
- 检测·响应·预防清单
- 结论
- 参考文献
- 附录 A — 影响范围及修复固件对照表
- 附录 B — 未确认事项与后续追踪课题
1. 摘要(TL;DR)
2026年7月29日至8月2日,加拿大Coinkite公司生产的比特币专用硬件钱包Coldcard所生成的种子,成为一场大规模资产窃取的目标。据Galaxy Research统计,已观测到的损失为1,367.05 BTC(约8,860万美元,约合1,230亿韩元)、4,585个地址,攻击分三波进行,截至本报告撰写时仍未结束。
本次攻击的本质不是入侵,而是复现。攻击者没有接触过任何受害者的设备,没有窃取PIN码或种子短语,也没有使用恶意软件或钓鱼手段。2021年3月,Coldcard固件的构建配置出现不一致,导致种子生成被路由到MicroPython的确定性软件PRNG(Yasmarang),而不是STM32硬件随机数生成器(TRNG)。这个PRNG仅以芯片唯一ID与计时器寄存器数值进行初始化,此后再未收集任何额外的熵。结果,Mk2/Mk3的实际熵从128比特崩溃至约40比特,Mk4/Mk5/Q则崩溃至约72比特。
40比特是消费级硬件即可进行全空间搜索的规模。攻击者在离线状态下枚举候选种子,按BIP32/BIP39规则派生出地址,再查询公开区块链上的余额,只挑选有资产的地址进行清空。区块链的透明性,就这样被挪用成了攻击者的侦察基础设施。
核心事实摘要
| 类别 | 内容 |
|---|---|
| 漏洞引入时点 | 2021年3月1日提交(ckcc.rng_bytes → ngu.random.bytes),固件v4.0.0于2021年3月17日发布 |
| 暴露期间 | 约5年4个月 |
| 实际熵 | Mk2/Mk3约40比特,Mk4/Mk5/Q约72比特(设计目标为128比特) |
| 第一波 | 2026-07-30 01:10–01:51 UTC,41分钟,1,082.65 BTC / 1,196个地址 / 约7,020万美元 |
| 累计损失 | 1,367.05 BTC / 4,585个地址 / 约8,860万美元(截至2026-08-02) |
| 厂商首次公告 | 第一波结束约30小时后 |
| 被盗资金转移情况 | 无——仍以未使用状态保留在攻击者控制的地址中 |
| 受害者特征 | 平均休眠期约3.18年,大多为长期持有的个人 |
| 未受影响产品 | TAPSIGNER、OPENDIME、SATSCARD(独立代码库)、Trezor、Ledger、Block(Bitkey) |
本次事件一句话总结:冷存储守住了密钥,却没能守住密钥被制造出来的那个瞬间。
2. 引言 — 隔离依然完好,生成却已崩溃
硬件钱包的安全模型建立在两个独立的前提之上。
- 隔离前提 — 私钥永不离开未连接互联网的设备。
- 生成前提 — 该密钥源自任何计算资源都无法猜测的随机数。
整个行业的营销、用户教育与监管讨论,几乎全部集中在第一个前提上。"不连接互联网"这句话一直是硬件钱包广告的核心,韩国虚拟资产监管中的"冷钱包保管比例"指标,同样是对隔离前提的量化。
在本次事件中,隔离前提从未被打破。受害者之一、加拿大人Jonathan Goodman使用的Coldcard一直存放在银行保险柜中,从未连接过互联网,他也从未向任何人透露过种子短语。然而在2026年7月29日晚间,他在短短7分钟内损失了18.25 BTC。
崩溃的是第二个前提。而当第二个前提崩溃时,第一个前提便不再具有任何防御价值。攻击者根本不需要突破防线——他们只是在防线之外,重新制造出了防线之内生成的秘密。
这一结构与传统网络安全的入侵响应范式截然不同。没有入侵痕迹,没有可供检测的日志,事件发生的时间点不是资产被窃取之时,而是密钥生成之时。受害者早在五年前就已被攻破,而他们根本没有办法知道这一点。
3. 事件时间线
| 日期时间 | 事件 | 备注 |
|---|---|---|
| 2021-03-01 | 将种子生成调用从ckcc.rng_bytes改为ngu.random.bytes的提交(commit)被合并 |
漏洞引入时点 |
| 2021-03-17 | 固件v4.0.0发布 | 开始分发存在漏洞的固件 |
| 2021-03 ~ 2026-07 | 存在漏洞的种子持续被生成与流通 | 用户与厂商均未察觉 |
| 2026-07-29晚间(当地时间) | 个人受害者Jonathan Goodman,7分钟内损失18.25 BTC | 首个公开的受害证词 |
| 2026-07-30 01:10–01:51 UTC | 第一波攻击:清空1,082.65 BTC / 1,196个地址(耗时41分钟,分布于6个区块) | 中间3个区块为空白——疑似批量广播痕迹 |
| 2026-07-30(最初10分钟) | 约窃取3,000万美元,优先打击高额钱包 | Chainalysis分析 |
| 2026-07-31(第一波结束约30小时后) | Coinkite发布首份安全公告(针对Mk2/Mk3) | 资金已流出完毕 |
| 2026-07-31 09:33 EDT | 发布修复固件(Mk4/Mk5 v5.6.0+, Q v1.5.0Q+) | |
| 2026-08-01 | Coinkite扩大公告范围——确认Mk4/Mk5/Q同样受约72比特熵影响 | 影响范围扩大 |
| 2026-08-01 | Galaxy Research确认第二波攻击——累计1,158.66 BTC / 2,673个地址 / 约7,510万美元 | 7个攻击者控制地址 |
| 2026-08-02 | Galaxy Research确认第三波攻击——新增207.73 BTC / 1,912个地址 | 针对小额钱包,追踪难度更高的模式 |
| 2026-08-02 | 累计1,367.05 BTC / 4,585个地址 / 约8,860万美元 | 攻击仍在进行 |
| 2026-08-02 | Galaxy向联邦执法机构与合规公司举报约600个疑似攻击者地址 | |
| 2026-08-03(截至目前) | 被盗资金仍未转移,调查持续进行 | 本报告撰写时点 |
4. 根本原因分析 — 仅检查宏是否存在的fail-open结构
4.1 缺陷的结构
根据Block比特币工程团队公开的分析,该缺陷按以下顺序产生。
[1] Coldcard生产构建配置
MICROPY_HW_ENABLE_RNG = 0
(因Coinkite提供了自有的硬件RNG封装,故有意设置为0)
↓
[2] libngu库
仅检查宏"是否被定义"(#ifdef系列)
未检查"值是否为启用状态"(#if)
↓
[3] 判定结果
由于宏已被定义,不会被误判为"硬件RNG可用",
构建绑定到MicroPython的默认回退路径
↓
[4] 回退PRNG:Yasmarang
种子来源 = 芯片唯一ID(UID)+ 计时器寄存器
初始化之后不再收集新的熵
↓
[5] 2021-03-01提交
ckcc.rng_bytes(直连STM32硬件外设)
→ ngu.random.bytes(受损的libngu路径)
↓
[6] SHA256d哈希
哈希无法增加输入熵
2^40个输入 → 最多2^40个输出
关键在于第6步。不少用户与部分早期报道曾误以为"用SHA256哈希过就应该是安全的",但密码学哈希函数只提供压缩与扩散,并不会创造熵。如果输入候选有2^40个,输出候选同样只有2^40个。这与2012年以来反复出现的一系列RNG失败案例(Debian OpenSSL、Android SecureRandom、Profanity靓号地址生成器等)属于同一种结构性错误。
4.2 为何五年间未被发现
| 因素 | 说明 |
|---|---|
| 仅凭输出观察无法检测 | Yasmarang的输出能够通过统计随机性检验(NIST STS、Dieharder等)。问题不在于分布,而在于搜索空间的大小 |
| 构建时刻的缺陷 | 仅阅读源代码无法发现该问题,它产生于构建配置与库条件编译之间的相互作用 |
| 开源的悖论 | 正因固件开源,攻击者也能以同样方式进行验证。可审计性是一把双刃剑 |
| 缺乏可复现性验证 | 发布流程中不存在跨设备熵验证——即检查两台相同设备是否会生成不同种子 |
| 自动化审计的局限 | Coinkite表示,事件发生前数周曾对同一代码进行过基于AI的审计,但未发现该缺陷 |
4.3 关于攻击者发现路径的观察
Coinkite提出,攻击者可能利用AI在开源固件中发现了该缺陷。与此同时,该公司自身的AI审计却在同一代码中一无所获。这种不对称值得关注。
防御者的AI审计所提出的问题是宽泛且没有明确目标的——"这段代码里有没有漏洞?"而攻击者使用AI提出的问题则是狭窄且目标明确的——"这台设备能生成的种子总共有多少种可能?"后者显然是更容易回答的问题。LLM不是替代判断的神谕,而是替代计算的工具,工具产出的质量与提问的具体程度成正比。这一点为防御方的AI审计设计提供了实务上的教训。
不过,攻击者是否真的使用了AI,目前仍属情境推测,并非已确证的事实。
5. 技术性漏洞分析 — 熵崩溃的量化
5.1 漏洞摘要
| 项目 | 内容 |
|---|---|
| 漏洞类型 | CWE-331(熵不足)、CWE-338(使用密码学上脆弱的PRNG) |
| 受影响产品 | Coldcard Mk2、Mk3、Mk4、Mk5、Q |
| 引入时点 | 2021-03-01(提交)、2021-03-17(v4.0.0发布) |
| CVSS v3.1(评估值) | 9.1(Critical) — AV:N / AC:L / PR:N / UI:N / S:U / C:H / I:N / A:H |
| 攻击前提条件 | 无需对目标设备进行物理或逻辑访问 |
| 可检测性 | 受害者侧无法检测(不存在入侵痕迹) |
5.2 熵崩溃的规模
| 型号 | 设计目标 | 实际熵 | 搜索空间 | 实务解读 |
|---|---|---|---|---|
| Mk2 / Mk3 | 128比特 | 约40比特 | 约1.1×10^12 | 消费级GPU集群可在数小时至数天内完成全空间搜索 |
| Mk4 / Mk5 / Q | 128比特 | 约72比特 | 约4.7×10^21 | 以现有消费级设备而言不现实,但对国家级或大规模资金攻击者而言处于理论射程之内 |
| 正常BIP-39 12词 | 128比特 | 128比特 | 约3.4×10^38 | 无法全空间搜索 |
Mk4/Mk5/Q相对较好的原因,是其安全元件(secure element)将自身的熵混入了PRNG状态。但根据Coinkite的技术背景文档,这些型号在初始混入之后,后续大部分随机数值仍是从同一条受损路径中取出的。
部分早期报道将搜索空间描述为"约40亿个(2^32)"。这一数字似乎源自Block提及的"32比特重新播种(reseed)漏洞",应与Coinkite官方公告中约40比特的估算数值区分开来看待。但无论采用哪个数字,结论都同样是——处于可全空间搜索的范围之内。
5.3 种子之外的附带影响
同一条受损路径同样被用于种子生成以外的功能。Block公开资料所列出的受影响函数如下。
- 纸钱包(paper wallet)私钥生成
- Seed XOR分割掩码生成
- 设备复制(cloning)密钥生成
也就是说,即便是使用Seed XOR将种子分割保管的用户,其分割掩码本身也可能是可预测的。这意味着"高级用户反而更安全"这一普遍认知,只能部分成立。
5.4 针对fail-open结构的未解决质疑
Block将Mk4/Q/Mk5的结构定性为"危险的fail-open结构"。其指出,若在启动序列早期、重新播种(reseed)执行之前捕获到异常,设备可能会以公开的初始状态、不附加任何额外熵的方式继续运行。该情形是否会在实际生产环境中发生,仍有待另行评估,截至本报告撰写时属于未解决事项。
这一点从安全设计原则的角度看至关重要。密码学随机数生成器必须是fail-closed的——若无法获取熵源,应当中止运行,而不是返回一个数值。返回低质量数值的结构,会把"失败"这一事实本身给掩盖起来。
6. 攻击链分析 — 离线种子复现与链上清空
6.1 分阶段拆解
| 阶段 | 行为 | 观测依据 |
|---|---|---|
| 1. 缺陷识别 | 分析开源固件及构建配置,估算搜索空间 | 固件公开仓库 |
| 2. 候选种子枚举 | 结合UID、计时器状态与前序RNG调用历史约束条件,复现候选输出流 | Block分析 |
| 3. 地址派生 | 按BIP-32/BIP-39/BIP-44、49、84各派生路径生成地址 | 标准规范 |
| 4. 余额比对 | 与公开区块链数据(UTXO集)进行匹配比对 | Galaxy · Chainalysis分析 |
| 5. 优先级选定 | 优先打击高额钱包,再扩散至小额钱包 | 最初10分钟窃取3,000万美元 |
| 6. 自动化清空 | 全部交易使用相同的硬编码手续费率30 sat/vB,无找零输出 | Galaxy分析——疑似使用自动化工具 |
| 7. 资金保留 | 资金保留在(第一、二波共计)7个攻击者地址中未动用 | 链上观测 |
6.2 交易指纹
Galaxy判断存在自动化工具使用的依据有两点。第一,所有交易均使用了相同的硬编码手续费率(30 sat/vB)——正常的钱包软件会根据mempool状况动态调整手续费。第二,不存在找零输出(change output)——这是一种将全部余额转移至单一地址的清空(sweep)模式。
这一指纹为今后编写类似攻击的检测规则提供了基础素材。
6.3 各波次之间的差异
| 波次 | 时点 | 规模 | 特征 |
|---|---|---|---|
| 第一波 | 07-30 01:10–01:51 UTC | 1,082.65 BTC / 1,196个地址 | 优先打击高额、模式均一 |
| 第二波 | 08-01确认 | 累计1,158.66 BTC / 2,673个地址 | 与第一波模式相似,推测为同一操作者 |
| 第三波 | 08-02确认 | +207.73 BTC / 1,912个地址 | 针对小额目标,模式更复杂、追踪难度更高 |
Galaxy明确指出,尽管每一波看起来都像是单一操作者所为,但仅凭链上数据无法判定三波是否为同一主体。第三波出现的模式变化,同时留下了两种可能性:一是工具改进,二是出现了利用相同密钥空间的另一名行为者。
6.4 MITRE ATT&CK映射
| Tactic | Technique | ID | 在本事件中的实现 |
|---|---|---|---|
| Reconnaissance | Gather Victim Host Information | T1592 | 分析设备UID与计时器特性 |
| Reconnaissance | Search Open Technical Databases | T1596 | 查询公开区块链UTXO集 |
| Reconnaissance | Search Open Websites/Domains | T1593 | 分析开源固件仓库 |
| Resource Development | Develop Capabilities: Malware | T1587.001 | 制作自动化清空工具 |
| Credential Access | Brute Force | T1110 | 对缩小后的种子空间进行全空间搜索 |
| Credential Access | Unsecured Credentials: Private Keys | T1552.004 | 从复现出的种子中派生私钥 |
| Collection | Data from Information Repositories | T1213 | 收集链上余额数据 |
| Impact | Financial Theft | T1657 | 清空比特币资产 |
7. 影响量化分析 — 三波攻击
7.1 损失规模
| 项目 | 数值 |
|---|---|
| 累计窃取量 | 1,367.05 BTC |
| 美元折算 | 约8,860万美元 |
| 韩元折算(按1,390韩元/美元计) | 约1,232亿韩元 |
| 受影响地址数 | 4,585个 |
| 第一波耗时 | 41分钟 |
| 单笔最大损失 | 约180万美元 |
| 公开证词的个人损失 | 18.25 BTC(约160万加元) |
| 资金追回 | 0(全部滞留于攻击者地址,未转移) |
| 厂商察觉至公告的延迟 | 约30小时 |
7.2 受害者画像
根据Galaxy的分析,被窃资产的平均休眠期约为3.18年。这表明受害群体并非机构,而是集中在长期持有型个人(long-term holder)身上。
这一画像具有三方面含义。
- 检测延迟 — 由于许多用户数年未曾打开过钱包,他们察觉到资产被窃取的时间大幅延后。
- 安全意识与受害程度的反相关 — 那些不信任交易所而选择自我保管的、安全意识相对更高的群体,反而成了受害者。
- 不可恢复性 — 个人自我保管的资产既不受存款保险保护,也不适用交易所的储备金或保险。
7.3 持续进行中的风险
Galaxy警告称攻击仍在进行中,由脆弱种子生成的所有地址最终都会被清空。第三波以小额钱包为目标这一事实,意味着攻击者正在降低经济性门槛,逐步耗尽剩余目标。"我的钱包金额小,优先级应该较低"这种判断,已经不再成立。
8. 幸存者分析 — 什么保住了钱包
8.1 幸存条件
| 条件 | 保护级别 | 依据 |
|---|---|---|
| 独立掷骰输入50~98次 | 安全(RNG缺陷单独不构成风险) | 骰子输入本身即可贡献128比特以上 |
| 独立掷骰输入99次以上 | 安全(贡献约256比特) | 同上 |
| 掷骰次数不足50次或已不记得 | 危险——需迁移 | Coinkite建议 |
| 强且唯一的BIP-39密码短语(passphrase) | 立即暴露风险降低,但非根本解决 | 生成了仅凭种子词无法到达的另一个钱包 |
| 在存在漏洞的固件发布之前生成的种子 | 安全 | v4.0.0之前 |
| 在修复固件上新生成的种子 | 安全 | 仅设备生成的熵已足够 |
| 多签(全部密钥均由存在漏洞的设备生成) | 危险 | 所有密钥均受同一缺陷影响 |
| 多签(部分密钥由其他厂商设备生成) | 条件性安全 | 取决于阈值配置 |
关键在于,掷骰结果与设备生成的熵经哈希结合,而这部分用户提供的熵不受固件缺陷的影响。
8.2 启示 — 重新评估用户熵
掷骰功能一直被当作"供偏执用户使用的可选高级功能"。而本次事件表明,在厂商信任崩塌的情况下,这一功能是唯一真正发挥作用的防线。
但正如Casa高层所指出的,期望普通投资者主动掷骰来补充种子熵并不现实。这恰恰暴露出易用性与安全性之间的鸿沟,而如何用产品设计而非用户教育来填补这一鸿沟,正是整个行业面临的课题。
实务上的建议很明确:应将用户提供的熵从可选功能转变为默认设置。至少在生成用于大额保管的种子时,理应将其强制设为必要步骤。
9. 应对与迁移 — 补丁无法修复的部分
9.1 修复固件版本
| 型号 | 发布轨道 | 修复版本 |
|---|---|---|
| Mk2 / Mk3 | 标准 | v4.2.0及以上 |
| Mk4 / Mk5 | 标准 | v5.6.0及以上 |
| Mk4 / Mk5 | Edge | v6.6.0X及以上 |
| Q | 标准 | v1.5.0Q及以上 |
| Q | Edge | v6.6.0QX及以上 |
注意: 标准轨道与Edge轨道是彼此独立的两条发布线。不能因为Edge版本号高于标准版本,就认为其一定是已修复版本。
9.2 补丁的局限性
固件更新不会更改或修复已有种子。
这一句话,几乎概括了本次事件应对的全部要点。漏洞并不存在于设备本身,而存在于设备已经生成出来的那个数字中。因此,以下应对措施全部无效。
| 无效的应对 | 原因 |
|---|---|
| 仅更新固件、继续使用原有钱包 | 种子仍然是脆弱的 |
| 将脆弱种子恢复到其他厂商的钱包中 | 攻击者搜索的是种子空间,而不是设备 |
| 将脆弱种子重新抄写到纸质/金属备份上 | 问题在于种子值本身 |
| 将资金转移到其他地址(派生索引) | 由同一种子派生出的所有地址均已暴露 |
| 将资产拆分为小额 | 第三波攻击正在以小额资产为目标 |
9.3 正确的迁移流程
- 确认设备型号与发布轨道,首先安装对应的修复固件。
- 在屏幕上通过版本字符串直接确认已安装修复固件。
- 生成一个全新的种子。修复固件的设备生成熵已足够,掷骰输入为可选项。
- 备份新的种子与密码短语。密码短语应与种子词在物理上分开保管。
- 对设备重新通电(power-cycle),并在设备屏幕上验证钱包指纹(fingerprint)与收款地址。
- 先发送小额测试交易并确认到账。
- 转移剩余的全部资产。
- 在确认迁移完成之前,不要销毁旧备份。
Coinkite与多家研究机构共同强调的一点是:不要急躁。在紧急情况下因迁移失误(地址输入错误、备份有误、跳过验证)而导致的损失,已被反复观测到甚至超过了黑客攻击本身造成的损失。
9.4 厂商应对评估
| 措施 | 评价 |
|---|---|
| 向所有型号发布轨道推送修复固件 | 恰当——响应迅速 |
| 全部销毁未出货库存设备 | 恰当——阻断供应链污染 |
| 向已出货客户逐一发送邮件通知 | 恰当,但触达率有限 |
| 首次公告延迟约30小时 | 不恰当——公告发布于第一波结束之后 |
| 初期公告将Mk4/Q/Mk5归类为"无影响",8月1日才更正 | 不恰当——初期范围判定有误,误导了用户判断 |
| 明确列出未受影响产品(TAPSIGNER/OPENDIME/SATSCARD) | 恰当 |
30小时的延迟是本次事件应对中最应受到批评的一点。不过,由于攻击发生在公告之前,即便厂商立即发布公告,很可能也无法阻止第一波攻击。问题在于,第二、第三波的大量受害者正是在这段延迟期内失去了采取行动的机会。
10. 行业启示 — 重新审视信任模型
10.1 崩塌的假设
| 行业的默认假设 | 本次事件的反证 |
|---|---|
| 硬件RNG是可信的 | 一行构建配置就能将其关闭,而且这一事实会被掩盖 |
| 开源固件已被充分审计 | 五年间公开的代码中,无人发现问题 |
| 物理隔离能保障密钥安全 | 隔离堪称完美,资产却已消失 |
| 冷存储比热钱包更安全 | 在生成阶段的缺陷面前,这种比较毫无意义 |
| 自我保管能消除交易所风险 | 只是把交易所风险换成了厂商风险 |
10.2 结构性教训
第一,信任的最小单位不是设备,而是瞬间。硬件钱包的安全评估,不应问"这台设备是否安全",而应问"这个密钥被生成的那一瞬间是否安全"。这将改变资产保管尽职调查(due diligence)所应提出的问题形式。
第二,随机数生成器必须是fail-closed的。在无法获取熵源时仍返回低质量数值的设计,会把失败这一事实本身掩盖起来。这正是NIST SP 800-90B要求持续健全性检查(continuous health test)的原因所在。
第三,可审计性并不等于已被审计。开源会引发一种"应该有人检查过吧"的集体错觉。实际是否被检查过是另一回事,未经验证的事物应被当作不存在来对待。
第四,透明性是一把双刃剑。公开账本既是审计与验证的基础,同时也是攻击者的免费侦察基础设施。隐私技术(CoinJoin、避免地址重用)在本次事件中具备了实质性的防御价值。
第五,厂商集中化是一个新的单点故障。在去中心化系统中,若用户集中依赖少数几家硬件厂商,协议层的去中心化虽仍得以维持,但系统性风险却会在密钥生成层不断累积。本次事件是这一风险首次以大规模形式实现的案例。
10.3 协议层本身并无问题
有一点需要附带说明:比特币协议本身、secp256k1曲线、BIP-32/39标准中,均未发现任何缺陷。失败完全发生在实现层——更准确地说,是发生在特定厂商的构建配置中。Trezor、Ledger、Block(Bitkey)均已确认自家产品不受影响。
这一区分在市场沟通中至关重要。"比特币被黑了"这种说法是不准确的,准确的说法应是"某特定硬件钱包厂商的密钥生成实现失败了"。
11. 韩国视角 — 监管适配性与对国内交易所的建议
11.1 现行韩国监管的盲区
《虚拟资产用户保护法》(2024年7月19日起施行)要求虚拟资产业者将用户虚拟资产经济价值的80%以上保管于冷钱包中——这一比例是从此前《特定金融信息法》体系下ISMS认证要求的70%基准上调而来。业者须每月核算经济价值并维持该比例。
2026年2月,韩国金融委员会通过对国会政务委员会的书面答复表示,在制定第二阶段法案(《数字资产基本法》)下位规定时,将考虑把冷钱包保管比例上调至100%水平。同时,该委员会也在研究是否将数字资产托管(custody)单独规范为一类业务。
问题在于,整个监管体系规范的只是"隔离前提"。
| 监管指标 | 规范对象 | 是否能防御本次事件 |
|---|---|---|
| 冷钱包保管比例80% | 资产存放在哪里 | 不能 |
| 冷钱包保管比例100%(讨论中) | 资产存放在哪里 | 不能 |
| ISMS认证 | 一般管理体系 | 部分 |
| 准备金·保险(韩元市场30亿韩元,其他5亿韩元) | 事后赔偿 | 仅限事后应对 |
| 密钥生成熵质量标准 | 不存在 | — |
即便冷钱包比例达到100%,也无法阻止此类攻击。由脆弱种子生成的冷钱包,即便处于100%的冷存储状态,依然会被清空。这意味着监管指标与实际风险并未对齐。
11.2 对韩国国内交易所与VASP的建议
| 优先级 | 措施 | 详情 |
|---|---|---|
| 立即 | 全面排查密钥生成来源 | 对所有运营中冷钱包的密钥进行清单化,记录其生成时间、设备与固件版本、HSM。若曾使用Coldcard系列,应立即隔离并迁移 |
| 立即 | 排查消费级硬件钱包用于运营资产的情况 | 消费级硬件钱包并非为机构托管用途设计。需确认是否曾以临时或应急方式使用过此类设备 |
| 1周 | 验证熵来源的冗余性 | 确认HSM是否单一依赖TRNG。至少将两个以上独立熵源做XOR结合,确保其中任一源失效时其余仍能维持安全性 |
| 1周 | 建立密钥生成溯源(provenance)记录体系 | 以签名日志的形式保存每个密钥的生成日期、设备标识符、固件版本、熵源与见证人。这是事后确定影响范围的前提条件 |
| 2周 | 审计多签·MPC配置的异构性 | 若阈值配置中的全部密钥均来自同一厂商、同一固件、同一库,则多重化毫无意义。应在厂商、架构、熵源三方面进行交叉分散 |
| 2周 | 引入跨设备熵验证流程 | 将验证同型号两台以上设备生成密钥的统计独立性,纳入密钥生成SOP |
| 1个月 | 重新确认HSM认证要求 | 确认FIPS 140-2/140-3 Level 3以上、CC EAL4+等认证的有效性,以及RNG是否包含在认证范围之内 |
| 1个月 | 固件SBOM与变更管理 | 获取托管基础设施全部组成部分的SBOM。固件更新时须强制进行第三方安全审计与回归验证 |
| 每季度 | 制定密钥轮换政策 | 淘汰无限期使用的密钥。定期轮换时须使用新的熵源重新生成 |
| 常态 | 强化链上异常提款检测规则 | 基于硬编码相同手续费率、无找零输出、长期休眠地址全额转移等清空指纹建立告警机制 |
11.3 对监管当局的政策建议
从保管位置监管扩展为密钥生命周期监管— 冷钱包比例是必要条件,而非充分条件。第二阶段法案下位规定除了上调比例外,还应纳入密钥生成、备份、轮换、销毁全过程的完整性要求。
在托管单独业务规范中明确RNG要求 — 金融委员会正在研究的数字资产托管业务规范中,有必要考虑将使用经认证的随机数生成器(符合NIST SP 800-90A/B/C或同等认证)明确列为准入监管要求。
审议硬件钱包漏洞公示义务 — 可考虑对在韩国境内流通的硬件钱包厂商,规定发现重大漏洞时须在一定期限内(如24小时)通知用户。本次事件30小时的延迟,恰恰证明了这一制度的必要性。
建立自我保管用户的信息告知体系 — 自我保管不适用存款保险,也不适用准备金赔偿。应在交易所提款环节告知用户这一事实以及厂商风险的存在。
摸清国内流通情况 — 目前尚无公开资料说明Coldcard在韩国国内的流通规模及受害案例。有必要由KISA、金融安全院层面开展实态调查,并发布韩文建议。
11.4 韩国国内市场的特殊性
韩国市场以韩元市场五大交易所为中心呈现出较高的交易所集中度,加上《旅行规则》(Travel Rule)实施对个人钱包提款的限制,使得自我保管比例相对偏低。这一特点降低了本次事件对韩国的直接冲击,但同时也留下了以下两点风险。
- 交易所托管基础设施本身的密钥生成风险会更加集中。 如果由个人分散持有,个别事故本可局限于个体层面,但一旦集中于交易所,便会演变为系统性风险。
- 在法人市场开放与机构托管扩大的阶段,如果托管业者的密钥管理标准尚未确立,同类事故完全可能以远大得多的规模重演。
12. 致比特币投资者的建议
12.1 致Coldcard持有者的即时判定流程
Q1. 你的钱包种子是否由Coldcard生成?
否 → 无影响(但请确认Q5)
是 ↓
Q2. 种子生成时间是否在2021年3月17日(固件v4.0.0发布)之后?
否 → 无影响
不确定 → 视为受影响,继续下一步
是 ↓
Q3. 生成种子时是否输入了50次以上独立且未公开的掷骰结果?
是(确定) → RNG缺陷单独不构成风险。但Seed XOR用户请参见12.3
否 / 不记得 ↓
Q4. 属于需立即迁移的对象。按照9.3的流程执行。
Q5. 是否使用过纸钱包生成、Seed XOR分割、设备复制功能?
是 → 相应产出物也可能是可预测的。需要单独迁移
密码短语(passphrase)用户注意:强且唯一的BIP-39密码短语能大幅降低即时暴露风险,但并不能修复脆弱的种子本身。Coinkite建议,即便是使用密码短语的用户,也应在实际条件允许的情况下尽快完成迁移。
12.2 致一般比特币投资者的建议
| 建议 | 依据 |
|---|---|
| 分散使用不同厂商 | 单一厂商依赖是本次事件所证实的系统性风险。持有规模较大者应将资产分散到不同制造商、不同架构的设备中 |
| 多签应采用异构配置 | 若2-of-3配置中的3个密钥均来自同一型号、同一固件,多重化效果等于零 |
| 养成使用用户熵的习惯 | 将厂商无法控制的熵(掷骰或抛硬币等)结合进种子中,至少50次 |
| 使用密码短语,但要分开保管 | 种子词与密码短语应存放在物理上不同的地点 |
| 避免地址重用 | 削弱公开账本沦为攻击者侦察资产的结构 |
| 定期检查余额 | 本次受害者的平均休眠期为3.18年。应建立至少每年一次的余额检查习惯 |
| 订阅厂商安全公告渠道 | 30小时的公告延迟固然是问题,但未看到公告的用户损失的是数天时间 |
| 按规模对保管方式分层 | 小额优先考虑便利性,大额则采用多签、异构、用户熵 |
| 理解自我保管的责任范围 | 自我保管资产既不受存款保险保护,也不适用交易所准备金或保险 |
12.3 不应做的事
| 禁止事项 | 理由 |
|---|---|
| 将脆弱种子恢复到其他钱包应用/设备中,并认为自己已经"迁移完成" | 种子值本身就处于搜索空间之内 |
| 因金额较小而推迟迁移 | 第三波攻击的目标正是数千美元规模的钱包 |
| 在恐慌状态下不经验证就大量转账 | 迁移失误造成的损失反复被观测到甚至超过黑客攻击本身 |
| 向自称提供"恢复服务"的第三方提供种子 | 事件发生后正是二次钓鱼的高峰期。任何情况下都不应向他人提供种子 |
| 生成新种子前省略固件确认步骤 | 若在存在漏洞的固件上生成新种子,该种子仍会是脆弱的 |
12.4 在韩国国内发生受害时的应对流程
- 保全链上证据 — 记录被盗交易的交易ID、时间(UTC)、发送/接收地址与金额,并同步截图区块浏览器画面。
- 向执法机构报案 — 向警察厅网络调查局或所辖警察署网络调查队报案。由于需要国际协作,报案的时间点非常重要。
- 向链上分析公司举报 — Galaxy Research、Chainalysis等机构正在建立攻击者地址数据库。提供受害地址信息有助于整体追踪。
- 申请交易所冻结 — 为应对资金流入交易所的情况,可提前向国内外主要交易所的合规渠道登记相关地址。目前资金仍未转移,该措施具有实际效力。
- 准备税务处理 — 被盗损失的税务处理因个案而异,应保留资产转移记录与被盗证明材料。具体判断需咨询税务专业人士。
本节内容为一般性信息,并非法律建议。个别情况的法律应对应咨询律师。
13. 检测·响应·预防清单
13.1 个人用户
- 确认所持硬件钱包的厂商、型号、固件版本
- 确认各个种子的生成时间及生成设备记录
- 确认是否输入过掷骰等用户熵
- 若适用:安装修复固件 → 生成新种子 → 小额测试 → 转移全部资产
- 单独排查Seed XOR、纸钱包、设备复制的产出物
- 设置区块浏览器余额提醒
- 订阅厂商安全公告渠道
13.2 交易所·托管业者
- 全部冷钱包密钥的生成溯源清单化
- 调查消费级硬件钱包用于运营资产的使用历史
- 确认HSM认证范围是否包含RNG
- 验证多个独立熵源的结合结构
- 审计多签·MPC配置的厂商异构化
- 将跨设备熵验证纳入密钥生成SOP
- 获取固件SBOM并建立更新前第三方审计流程
- 部署基于清空指纹的异常提款检测规则
- 制定并实施密钥轮换政策
- 定义事故发生时的用户通知SLA(建议24小时以内)
13.3 硬件钱包制造商
- 将RNG路径重新设计为fail-closed(熵获取失败时中止运行)
- 增加验证构建配置与库条件编译之间相互作用的测试
- 将跨设备种子独立性验证纳入发布关卡(release gate)
- 实现NIST SP 800-90B持续健全性检查
- 研究将用户熵输入从可选功能转为默认设置
- 建立漏洞紧急通知体系(考虑邮件触达率局限的多渠道方案)
- 提供用户可自行使用的(离线)自检工具
14. 结论
本次事件将加密货币安全讨论的焦点,从"保管"转移到了"生成"。
过去十年间,整个行业将资源集中于改善"存放在哪里"这一问题——从热钱包转向冷钱包,从单签转向多签,从自我保管转向受监管的托管。韩国国内的监管也一直围绕冷钱包保管比例这一单一指标演进。这个方向本身是正确的,也确实预防了大量事故。
然而,本次事件揭示出——所有这些改进,其实都建立在一个从未被验证的前提之上:密钥从一开始就被制造成不可猜测的。这个前提,因一行构建配置而崩塌,五年间无人知晓,最终导致在一台完美隔离的设备上,8,860万美元凭空消失。
归纳起来,有以下四点。
- 冷存储保管的是密钥,而不保证密钥的质量。保管监管必须由生成监管来加以补充。
- 随机数生成器不应悄无声息地失败。fail-open型RNG会把失败这一事实本身掩盖起来,这比失败本身更加危险。
- 可审计性不等于已被审计。未经验证的事物,应被当作不存在来对待。
- 去中心化应按层级分别评估。即便协议层实现了去中心化,只要密钥生成层集中于少数厂商,系统性风险依然存在。
"不要信任,去验证(Don't trust, verify)"是比特币历经已久的原则。本次事件表明,这一原则不仅适用于协议本身,也同样应适用于"自己的密钥究竟是如何被生成的"这一问题上。而绝大多数用户目前并没有验证这一点的手段。提供这样的手段,正是厂商与监管当局接下来必须完成的课题。
15. 参考文献
- Coinkite. (2026). COLDCARD Security Advisory — Seed Generation. Coinkite Blog. https://blog.coinkite.com/coldcard-mk3-seed-generation-warning/
- Coinkite. (2026). Technical Deep Dive into the Entropy Issue. Coinkite Blog. https://blog.coinkite.com/entropy-technical-backgrounder/
- CoinDesk. (2026, August 1). How bitcoin cold wallets lost $70 million in an attack that never touched the devices. https://www.coindesk.com/tech/2026/08/01/how-bitcoin-cold-wallets-lost-usd70-million-in-an-attack-that-never-touched-the-devices
- CoinDesk. (2026, August 2). Bitcoin cold-wallet attack spreads to 4,500 addresses as losses near $89 million. https://www.coindesk.com/tech/2026/08/02/bitcoin-cold-wallet-attack-spreads-to-4-500-addresses-as-losses-near-usd89-million
- Decrypt. (2026). Coldcard Bitcoin Exploit Balloons to $88 Million as Attackers Keep Draining Wallets. https://decrypt.co/374817/coldcard-bitcoin-exploit-88-million-attackers-draining-wallets
- The Hacker News. (2026, August). Coldcard Hardware Wallet Flaw Linked to $70 Million Bitcoin Theft. https://thehackernews.com/2026/08/coldcard-hardware-wallet-flaw-linked-to.html
- BleepingComputer. (2026). COLDCARD wallet RNG flaw likely linked to $88 million Bitcoin theft. https://www.bleepingcomputer.com/news/security/coldcard-wallet-rng-flaw-likely-linked-to-88-million-bitcoin-theft/
- Tech Times. (2026, July 31). Coldcard Hardware Wallet Hacked via Firmware Bug That Bypassed RNG for Five Years. https://www.techtimes.com/articles/322392/20260731/coldcard-hardware-wallet-hacked-via-firmware-bug-that-bypassed-rng-five-years.htm
- crypto.news. (2026). A build error in Coldcard's firmware drained $38 million in bitcoin in 25 minutes. https://crypto.news/coldcard-firmware-bug-drains-38-million-bitcoin/
- Bitcoin Magazine. (2026). Coinkite Releases Fixed Firmware After Coldcard Bug; AI Likely Involved In The Breach. https://bitcoinmagazine.com/business/coinkite-releases-fixed-firmware-after-coldcard-bug-ai-likely-involved-in-the-hack
- The Crypto Times. (2026, August 1). Coldcard Hack Hits $75M After Alleged Second Attack Wave: Galaxy Research. https://www.cryptotimes.io/2026/08/01/coldcard-hack-hits-75m-after-alleged-second-attack-wave-galaxy-research/
- TechSpot. (2026). A Coldcard firmware flaw let hackers drain $70 million in Bitcoin in 41 minutes. https://www.techspot.com/news/113322-coldcard-firmware-flaw-hackers-drain-70-million-bitcoin.html
- PrivacyGuides. (2026, August 3). Nearly 1,400 Bitcoin Hacked from Coldcard Wallets. https://www.privacyguides.org/news/2026/08/03/nearly-1400-bitcoin-hacked-from-coldcard-wallets/
- 247wallst.com. (2026, August 1). Coldcard Hacked for $70M: How Do You Keep Bitcoin Safe if Cold Wallets Can Be Hacked? https://247wallst.com/investing/cryptocurrency/2026/08/01/coldcard-hacked-for-70m-how-do-you-keep-bitcoin-safe-if-cold-wallets-can-be-hacked/
- 韩国金融委员会(금융위원회). (2023). 《虚拟资产用户保护相关法律》施行令制定案新闻资料. https://www.fsc.go.kr/no010101/81214
- 新闻1(뉴스1). (2026年2月20日). "金融委员会:交易所虚拟资产冷钱包保管比例,拟审议上调至100%水平". https://www.news1.kr/finance/blockchain-fintech/6077484
- Decenter(디센터). (2026). "金融委员会:在第二阶段法案中审议将交易所冷钱包保管比例上调至100%". https://www.decenter.kr/article/20010694
- 每日经济(이투데이). (2026). "金融委员会:将尽快推进《数字资产基本法》"……与法人市场开放联动. https://www.etoday.co.kr/news/view/2606627
- 区块媒体(블록미디어). (2025年1月16日). 数字资产冷钱包保管比例上调至80%,各交易所运营方式不同. https://www.blockmedia.co.kr/archives/843516
- Thelec(디일렉). (2025年12月10日). Upbit使用的冷钱包比例超过98%,有利于安全. https://www.thelec.kr/news/articleView.html?idxno=45132
16. 附录 A — 影响范围及修复固件对照表
| 型号 | 受影响固件(以Coinkite公告为准) | 实际熵 | 修复版本(标准) | 修复版本(Edge) |
|---|---|---|---|---|
| Mk2 | v4.0.1 ~ v4.1.9 | 约40比特 | v4.2.0及以上 | 不适用 |
| Mk3 | v4.0.1 ~ v4.1.9 | 约40比特 | v4.2.0及以上 | 不适用 |
| Mk4 | 修复版本之前的全部版本 | 约72比特 | v5.6.0及以上 | v6.6.0X及以上 |
| Mk5 | 修复版本之前的全部版本 | 约72比特 | v5.6.0及以上 | v6.6.0X及以上 |
| Q | 修复版本之前的全部版本 | 约72比特 | v1.5.0Q及以上 | v6.6.0QX及以上 |
| TAPSIGNER | 无影响 | — | — | — |
| OPENDIME | 无影响 | — | — | — |
| SATSCARD | 无影响 | — | — | — |
注意来源之间的不一致:关于Mk2/Mk3的受影响范围,Coinkite官方公告标注为v4.0.1v4.1.9,而部分早期报道则标注为v4.0.0v5.0.3。若无法确定,将其视为受影响并进行迁移是更安全的做法。
17. 附录 B — 未确认事项与后续追踪课题
| 项目 | 当前状态 | 追踪必要性 |
|---|---|---|
| 攻击者身份及国籍 | 未确认。Galaxy已向执法机构举报约600个疑似地址 | 高 |
| 三波攻击是否为同一主体 | 未确定。第一、二波模式相似,第三波有所不同 | 中 |
| 攻击者是否使用了AI | 厂商推测,尚无确证 | 中 |
| Mk4/Mk5/Q的72比特空间是否已被实际攻击 | 截至目前尚未观测到 | 高 |
| Block指出的fail-open启动路径是否实际发生 | 未解决 | 高 |
| 韩国国内流通量及受害案例 | 无公开资料 | 高 |
| 由脆弱种子生成的纸钱包·Seed XOR产出物的受害情况 | 尚未统计 | 中 |
| 最终损失规模 | 仍在进行中,可能扩大 | 高 |
| 监管当局是否将引入硬件钱包认证体系 | 讨论初期 | 中 |
本报告采用TLP:GREEN分级,允许在社区内共享。商业用途需另行协商,引用时须注明出处。许可协议:CC BY-NC-SA 4.0。
免责声明:本文档基于公开来源情报(OSINT)撰写,属于威胁情报分析,并非投资建议或法律建议。由于事件仍在进行中,数据与影响范围可能发生变化。
© 2026 Dennis Kim(金浩光 · 김호광) · 本文作为独立CTI档案(TLP:GREEN)公开发布。 联系:[email protected] · GitHub:gameworkerkim/CYBER-THREAT-INTELLIGENCE-REPORT