五年旧患突然引爆
这一两天,Coldcard 这个号称把冷存储做到极致的硬件钱包,摊上了一个不小的麻烦。按目前多家链上分析机构的数据,累计已有超过 4500 个地址被清空,损失总量约 1300 多枚 BTC,按当前价格算接近 8800 万美元。更让人警觉的是,其中一波攻击在几十分钟内就扫掉了上千个地址,速度明显不像临时起意,攻击者很可能提前做了不少准备。
需要说明的是,不同机构统计口径还不完全一致,损失金额和地址数量后续可能还会修正。大家先看一个大概量级就好,不必把某个具体数字当成板上钉钉的事实。
私钥的本质是一串随机数
我们平时说的私钥,说白了就是一串超级长的随机数字。这串数字必须足够随机、足够混乱,别人才没有办法推算出来。生成这串数字的过程越混乱越安全;越有规律,越容易被人猜到。这次的问题大概率就处在这个随机环节:某些设备生成的私钥,随机性可能没有想象中那么高。
这背后其实有一个很简单的逻辑。冷钱包一直强调私钥不出设备,只要助记词不联网,理论上外人摸不到你的资产。但这次事件如果分析下来,问题发生在更底层:设备一开始生成私钥时,用来产生随机数的那部分材料,可能没有想象中那么难猜。
Coldcard 固件里的随机数隐患
具体技术原因,据一些安全研究人员的分析,大致是固件在某一层更新的时候,随机数生成这一块的代码逻辑可能出现了问题,导致部分设备在某些情况下跳过了原本设计的高强度随机数通道,改用了一套相对容易被推算的备用方案。这套方案用到的材料,和设备本身的一些信息有一定关联性,理论上具备被外部推算的可能。
当然,这目前还只是一种流传较广的技术解读,官方后续可能还会有更正式的说明。具体细节我建议大家以厂商和安全机构公布的公告为准。
我们可以做的三件事
面对这种底层问题,我们不可能靠猜哪一个平台绝对安全,但可以在操作上增加几层缓冲。我总结三个相对稳妥、不针对具体平台的思路。
- 生成 seed phrase 时,别只依赖设备自带的随机数。可以选择支持手动掷骰子的钱包,多掷几次,加入一份来源独立的随机性,即使设备本身出现预判不到的问题,也多一层保障。
- 设置一个足够复杂的 passphrase,也就是在助记词之外再加一层自己设定的密码。这样即便前面某个环节出了问题,没有这层密码,别人也很难真正动到你的资产。但一定做好离线备份,因为一旦忘了,谁都救不回来。
- 如果资产规模较大,考虑使用多重签名(Multisig),尽量搭配不同厂商、不同技术方案的设备分别签名,不要把全部资产放在同一套技术方案里。
行业需要补上随机数测试这道工序
事件出来后,圈内开始出现反思。有安全团队提到,硬件钱包行业这些年可能确实缺一道工序:设备做出来以后,应该实际去测一次生成的随机数在统计学上到底够不够随机,不能光靠代码写完就完事。这个说法算是给整个行业提了个醒。
一些其他钱包厂商也站出来说明,自家的产品会使用不止一种随机数来源做交叉验证,理论上抗风险能力会更高。具体效果如何,还要交给时间和后续安全审计去检验。这些目前都是相关方各自表态,仅供参考,不代表最终定论。
如果你持有 Coldcard 设备
如果你手上正好有相关品牌的设备,先别慌。留意厂商官方渠道有没有发布相关说明,最好按官方给出的步骤操作,不要自己乱折腾。同时警惕任何要求你在网页或联网软件里输入助记词的人,那基本可以判断是骗子。
自托管安全,从来不是一劳永逸
说实话,这类问题这些年来零零星星都出现过,具体是哪个品牌不重要,核心提醒是差不多的:自我保管的安全,从来不是买一个硬件钱包就能一劳永逸。多花一点心思在随机数、passphrase 和签名方案这些环节上,总归是值得的。
我是老李,希望这期内容对你有帮助。
