返回博客
观点

Ledger Recover 风波给自托管的启示

扁平风格插图:一台硬件钱包把种子拆分成三份加密分片,分别发送给三家托管公司。

5 月 16 日,销量领先的硬件钱包厂商 Ledger 发布了 Recover:一项需主动开通的订阅服务,它在设备内部对你的助记词加密备份,将其拆分为三份分片,再把分片分发给三家托管方。公告发出后短短几小时,事情就演变成了 Ledger Recover 风波——自托管领域多年来最猛烈的一次舆论反弹,伴随着删掉的推文、仓促安排的采访,以及最终被按下暂停键的上线计划。三周过去,火气稍稍降温,值得回头问一问:这场风波究竟证明了什么。

先亮出我们的答案:这场争论从来不真正关乎某一项可选服务,而是关乎一个假设的公开崩塌——人们原以为私钥在物理上不可能离开硬件钱包的安全芯片,结果发现那只是一条策略,而非自然规律。无法验证的安全只是一句承诺,而承诺可以随一次固件更新而改变。

Ledger Recover 究竟做了什么

撇开怒火不谈,它的机制其实很好描述。Ledger Recover 是一项需主动开通的订阅服务,定价约为每月 10 美元:设备在内部对钱包助记词加密,把加密后的材料拆分为三份分片,分发给三家彼此独立的公司——Ledger 自己、Coincover 和 EscrowTech。任何一家托管方持有的信息都不足以重建种子。要恢复时,用户先用政府签发的身份证件完成身份验证;随后三家托管方中的两家把各自的分片释放到一台新设备上,种子在那里被重新拼合。

这项服务随 Nano X 的一次固件更新一同推出,并且必须显式开通:除非持有者订阅、在设备上确认并通过身份验证,否则不会备份任何内容。在这一点上 Ledger 的说法始终如一,也没有任何公开证据与之相悖。

Ledger Recover 流程示意图:设备把种子加密并拆分为三份分片,分别由 Ledger、Coincover 和 EscrowTech 持有,恢复需通过身份验证并集齐三份中的两份分片。
Ledger Recover 如何把加密后的种子分发给三家托管方。

反弹为何如此猛烈

既然服务是可选的,怒火从何而来?因为这份公告揭示的不只是一款产品,而是一种能力。Recover 要想存在,Ledger 的固件就必须能把种子材料——虽经加密和分片,但终究是种子材料——移出安全芯片、传出设备。Ledger 的大量用户曾真诚地相信这在设计上就不可能,而公司自己的营销也在助长这种信念:官方账号几个月前的一条帖子声称私钥永远不会离开安全芯片,公告发布后几小时内它就被翻了出来,被人们不知疲倦地转发。

Ledger Recover 风波的决定性一幕,是 Ledger 的一个官方账号承认:从技术上讲,编写能够协助提取密钥的固件从来都是可能的。这条帖子很快被删除,但截图早已传遍各处——而且这句话本身是准确的。刺痛人心的恰恰在此:不是什么隐藏的后门,而是人们意识到,横亘在用户密钥与外部世界之间的那道屏障,从来都取决于经过签名的固件选择做什么。

另外两重顾虑放大了这场反应。其一是身份:Recover 把经过验证的政府证件与硬件钱包绑在一起,对那些部分出于隐私考虑才选择自托管的人来说,这种配对令人不安。其二是集中:三家实名公司持有分片,就意味着三个可被传唤的对象、三个可能被攻破的面,以及三个未来政策一旦转向就会产生影响的地方。

你一直在信任固件

接下来是让人不舒服的部分,而且它远不止关乎一家厂商。安全芯片保护密钥免遭物理提取和篡改,但它并不决定设备的固件被允许向它请求什么。任何生成并保管你密钥的封闭设备,都在要求你信任其制造商的代码签名密钥、发布流程、员工,以及抵御法律压力的能力——设备用多少年,这份信任就要维持多少年。

自托管不是非黑即白,而是一整叠信任假设——硬件、固件、软件、流程——真正有用的问题是:其中哪些层是你能独立验证的。五月的这些事没有改变这叠假设中的任何一层;改变的是,一个非常庞大的群体第一次把它看得清清楚楚。

我们也应当坦白自己在这叠假设中的位置。和大多数钱包应用一样,Ownbit 的 App 是闭源的。面对这个现实,诚实的做法不是假装信任不存在,而是尽量缩小它需要覆盖的范围——我们的安全模型正是这样构建的:多签合约开源,Ownbit 多签中的每一把密钥都是一份标准 BIP39 助记词,并且按照已公开的自助恢复指南操作,即使没有 Ownbit 的服务器,资金依然可以恢复。衡量一款钱包的标准,不在于你是否信任厂商——在某个环节你总归是信任的——而在于这份信任需要覆盖的范围有多小,以及其中有多少是你能亲自查验的。

Recover 想解决的问题是真实存在的

在这场群起而攻之的浪潮中,人们很容易忘记:Ledger 瞄准的是一种真实存在的失败模式。广为流传的估计长期显示,全部比特币中大约有五分之一被困在密钥已经丢失的钱包里。写在一张纸上的助记词,是双向的单点故障:捡到它的任何人都能拿走一切;而一旦它被烧毁、被水泡烂,或者干脆被遗忘,一切也随之消失。交易所用账户和客服解决了这个问题,代价是交出托管权——这笔交易,整个行业已经不止一次有理由后悔。

因此,这份雄心值得得到公允的对待。硬件钱包、MPC 服务和受监管的托管机构,各自服务着有真实需求的真实用户,一项带保险的恢复服务也确实适合其中一部分人。Ledger Recover 风波的核心异议要窄得多:这项服务悄悄改写了一台人们早已买下的设备的信任模型,而只要固件保持闭源,这次改写就无法被独立审计。

拆分秘密不等于拆分控制权

Recover 三份分片、两份即可恢复的设计,乍听之下很像多签。但差别恰恰是问题的全部。种子分片拆分的是一个终究要被重新拼合的秘密:在恢复的那一刻,完整的密钥再次出现在同一个地方,一切都押在执行拼合的各方和流程上。多签拆分的则是控制权本身。两三份独立的助记词,由不同的人在不同的设备上生成,永远不会在任何地方合并;一个 2-of-3 钱包需要链上的两个签名,不存在任何让一台机器短暂持有全部秘密的仪式。

正是这个区别,让多签自 2017 年起就是 Ownbit 的核心设计。每位参与方各自保管一份标准 BIP39 助记词,签名规则由区块链而非某家公司的口头承诺强制执行,Ownbit 的服务器只协调签名,从不持有任何密钥。丢失一把密钥不致命,偷走一把密钥没有用,而且没有任何托管方——包括我们自己——存储着任何能够转移资金的东西。

对比示意图:分片的种子在恢复时重新拼合成一把完整密钥,而 2-of-3 多签使用彼此独立的密钥,各自签名、永不合并。
分片终要拼合成一个秘密;多签的密钥各自签名,永不相遇。

截至 2023 年 6 月,我们该记住什么

第一:无需恐慌。这三周里没有任何事情证明存在漏洞利用、失窃或设备被攻破,一台未开通 Recover 的 Ledger,面对的实际风险与四月时并无二致。如果你拥有一台,理智的应对都是冷静的应对——审慎地安装固件更新,并重新审视你在信任什么,而不是被别人的说法牵着走。

第二:趁教训还新鲜,把你的信任假设盘点一遍。你的方案里哪些部分只是承诺,哪些是可以验证的?一个有用的练习是,对你使用的每一款钱包问一句:它的厂商能够做什么——不是会不会做,而是能不能做——如果它真做了,你是否会察觉。

第三:对于真正重要的余额,不要再依赖任何单一密钥或单一公司。把控制权分散到一个 2-of-3 多签中,可以消除 Recover 所针对的那个单点故障,同时不必把一份可重建的种子副本交到任何托管方手里。截至本文写作时,Ledger 已暂停 Recover 的推出,并承诺在上线前开源更多代码——这是正确的方向,而它应当以这个行业里一切事物都应当被评判的方式来评判:看它交付时有多少是可验证的。Ledger Recover 风波留下的长久教训是:“做不到”与“不会做”之间的距离,正是自托管这门学问的全部内容,而用户有权知道自己买到的究竟是哪一个。

常见问题

什么是 Ledger Recover?

Ledger Recover 是 Ledger 于 2023 年 5 月 16 日宣布的一项需主动开通的订阅服务,用于备份硬件钱包的助记词。设备对种子加密,将其拆分为三份分片,分发给三家托管方——Ledger、Coincover 和 EscrowTech。恢复时需要通过政府证件的身份验证,并集齐三家托管方中两家的分片。

Ledger Recover 是后门吗?

不是通常意义上的后门:它是可选的,需要主动开通、付费订阅并在设备上进行物理确认。争议之所以爆发,是因为这项功能证明了 Ledger 的固件竟然能够把加密后的种子材料导出安全芯片——这意味着许多用户以为属于物理层面的保护,实际上只是一条固件策略。

Ledger 硬件钱包还能安全使用吗?

整个事件中没有任何漏洞利用、失窃或安全缺陷被证实,一台从未开通 Recover 的设备的行为与从前无异。改变的是用户应当默认的信任模型:一台固件闭源的设备,可信程度恰好等于其厂商代码与流程的可信程度。许多持有者会认为这可以接受;另一些人则会用多签分散自己的风险。

种子恢复服务的自托管替代方案是什么?

主要替代方案是多签。一个 2-of-3 多签钱包把控制权分散到保存在不同设备上的三份独立助记词之间,因此丢失一把密钥不会丢失资金,也没有任何公司持有可重建的种子副本。它解决的是同样的意外恢复问题,却不需要托管方,也不需要身份验证。

如果过去几周让你重新检视自己的信任都集中在哪里,那么务实的下一步,就是不再依赖任何单一密钥——或任何单一公司。Ownbit 多签让你把控制权分散到由你亲自保管的多份标准助记词之间:合约开源,安全模型的设计目标就是即使没有我们的服务器,资金也依然可以恢复。站在这里旁观下一场风波,心境会平静得多。