BITWU.ETH 🔆|2026年10月19日 03:56
安全必看篇:
Qubic 安全事件深度调查:1404 个钱包被盗,原因和陈志比特币被拿走,如出一辙,真正值得警惕的是什么?
1️⃣什么是资产被盗原因?
2️⃣随机数不足导致被盗的技术原理?
3️⃣如何避免自己存储资产钱包出问题,建立安全防线?
这次攻击发生于北京时间 10 月 18 日 07:42—09:26。
这次钱包资产被盗和陈志的比特币被打开,其实逻辑差不多,都是钱包生成私钥时随机性不足,导致原本应该难以猜测的私钥可能被攻击者通过穷举推算出来。
Qubic 部分钱包生成助记词时使用了不安全的随机数,导致私钥可能被攻击者推算出来,最终造成资产被盗。
这两个,暴露了同一类致命问题:
AI发展迅速,算法愈发强大,钱包生成私钥时随机性不足,会让攻击者(大部分时候应该都是 AI)有机会推算出私钥。被攻破的不是比特币或密码学算法,而是钱包生成密钥的环节。
回到Qubic 这个事件,根据项目方解释,攻击者利用可预测的 Seed,取得了部分钱包的交易控制权,在短时间内集中转走资产。
1️⃣安全问题至少在8个月前就被指出;
有一点必须拿出来说一下。
2026 年 2 月 12 日,一位名叫 fyllepo 的开发者向 Qubic 官方钱包仓库提交了一个 Pull Request:
PR #229:fix: strengthen seed generation with crypto.getRandomValues()
中文意思:
修复 Seed 生成方式,使用密码学安全随机数生成器。
开发者明确指出:
Qubic 钱包的 seedGen() 函数使用了 JavaScript 的 Math.random() 来生成钱包 Seed。
这个方法并不适合生成密码学意义上的秘密。
他建议改用 crypto.getRandomValues(),并提交了相应代码和测试。
更值得注意的是:
截至我查询的 2026 年 10 月 19 日,这个 2 月提交的 PR 仍然显示为 Open,而且页面显示没有审核人。
也就是说,至少从公开记录看,有开发者提前八个月指出了同类问题,但那份修复提案一直没有合并。
这不等于证明 Qubic 团队当时已经完整掌握此次攻击方式,也不能证明如果合并这个 PR,就一定能阻止全部损失。
不过,这个事实足以引出一个严肃问题:
一个负责保管用户资产的钱包项目,为什么可以让涉及私钥生成安全的修复建议长期悬而未决?
这值得项目方在正式事故报告中作出解释。
2️⃣技术原理:为什么55个字符的Seed,也可能轻易被破解?
这一点我专门和 GPT 聊了很久:
Qubic 使用的不是比特币常见的12/24个单词助记词,而是55个小写英文字母组成的Seed。
这是 Qubic 自己采用的钱包密钥格式。
正常情况下,如果每个字符都是独立、不可预测、均匀随机生成的,那么55个字母可以提供非常大的搜索空间。
但我在 Qubic 的 GitHub 原始代码里看到了这样的生成逻辑:
const letters = 'abcdefghijklmnopqrstuvwxyz';
for (let i = 0; i < 55; i++) {
seed += letters[Math.floor(Math.random() * 26)];
}
问题就在 Math.random()。
JavaScript 的这个函数适用于游戏、动画、普通抽样等用途,却不能保证密码学安全。Mozilla 的开发者文档明确提醒,不能使用它生成安全敏感的随机数,应使用 crypto.getRandomValues()。
3️⃣ 应该注意什么和哪些启发?
如果你的比特币助记词是在可信硬件钱包内部正常生成的,没有通过存在问题的钱包软件创建,那么目前没有证据表明它们受到此次 Qubic 漏洞影响。
期关注的 Coldcard 随机数漏洞、Qubic 事件,以及各种数据库泄露、供应链问题,确实都在提醒我们:
加密资产的风险远远超出了智能合约和共识协议本身。
4️⃣我们如何做可以防止,建议建立五道防线
1. 尽量使用经过长期检验的硬件钱包,在设备内部生成助记词,尽量选长期经过验证的,可提高安全性。
2. 对大额资产,可以考虑自己贡献一部分随机数;
例如,有些硬件钱包支持通过投掷真实骰子,向生成助记词的过程加入额外随机性。
一枚标准六面骰子,每次公平、独立投掷可提供约2.585 bit的熵。
投掷99次,理论上可以获得约256 bit的随机性。
这样做的价值在于:
即使硬件钱包内部的随机数生成器有缺陷,如果设备正确地混合了你提供的高质量随机数,依然可能生成安全的密钥。
Coldcard官方就提供了相关的骰子随机数混合和验证机制。
3. 选择能够独立验证安全机制的钱包;
举个具体例子。
Trezor Safe 5 目前支持 Entropy Check(随机数生成过程检查)。它在创建钱包时进行抽样验证,检查设备是否按公布的方式使用随机数。
这个功能可以帮助发现某些设备篡改或不按预期生成密钥的问题。但它并不能数学上证明最终保留的每一份助记词都有足够随机性。
4. 对你的 BTC,使用不同品牌组成2/3多签;
即使其中某个钱包存在随机数漏洞,攻击者推算出一个私钥,仍然无法单独转走资产。
只要另外两个私钥仍然安全且相互独立,单个私钥被破解就不足以盗取资金。
5. 关注钱包安全公告,特别注意助记词生成时的固件版本,经常升级甚至2-3年换一次设备
分享至:
脉络
热门快讯
APP下载
X
Telegram
复制链接