Skip to main content
目录 目录(8 节)

Moon

 · 

分片 ≠ 分权:50 万人在用的无助记词钱包,两片密钥都在同一家公司手里

fomo 的营销页说「没有任何单一方能访问你的密钥」,它的用户协议说「你的 Apple ID 被盗,风险自负」。两句都是真的,但只有第二句说出了真相。本文提出「密钥三层」框架(生成层 / 保管层 / 准入层),拆解这类无助记词钱包的真实承重墙:钱包的安全度 = min(三层),而所有营销文案都在讲它最强的那一层。核心判断——分片数不等于分权数。

fomo 的用户协议里有一段全大写的免责条款,和它官网那篇《我们如何保护你的加密资产》,讲的不是同一个故事。

安全页说:密钥被分片分发,「没有任何单一方(包括 fomo)能够重构你的密钥、访问你的钱包」。

用户协议说:「你的交易钱包是非托管的,你独自负责保护对它的访问权,包括用于保护或恢复它的邮箱账户、Apple ID 或其他凭证……你接受你的邮箱账户或 Apple ID 遭到未授权访问的风险。」

两句都是真的。但只有第二句说出了那个真正重要的事实:在这套架构里,你的 Apple ID 就是你的助记词。

这是一款有 50 万注册用户的产品。如果你在做消费级钱包、fintech、企业收款,或者你正在评估要不要把用户资产交给一个「无需助记词」的产品——这篇讲的是那套架构真正的承重墙在哪里,以及为什么几乎所有人都看错了位置。

先把三层拆开:密钥三层(Key Stack)

关于「无助记词钱包安不安全」的争论之所以永远吵不出结果,是因为吵架双方在说三件不同的事。任何一个密钥系统都必须拆成三层来看:

① 生成层——密钥是怎么来的?
② 保管层——密钥平时以什么形态、存在谁那里?
③ 准入层——谁有资格把它调用起来?

规律很简单,也很少有人明说:

钱包的实际安全度 = min(三层)。而所有营销文案,都在讲它最强的那一层。

把这把尺子架到 fomo 上,结论立刻清晰。

① 生成层:这一层做得干净

fomo 的钱包底层是 Privy(现已被 Stripe 收购)的嵌入式钱包。私钥在 TEE(可信执行环境,AWS Nitro Enclave)内部生成,用硬件熵源。

这一点值得说清楚,因为它常被误解:它不是从你的 Apple ID 派生出来的。 不是早期 Web3Auth 那种「OAuth token 换密钥材料」的模型,也不是把助记词加密后存进 iCloud。你的社交账户在密钥诞生的那一刻,不参与任何计算。

所以「fomo 用 Apple 账户生成钱包」这个说法,是错的。生成层没问题。

② 保管层:分片是真的,分权是假的

生成后,私钥立刻用 Shamir 秘密分享(SSS) 切片,分别存放在不同的安全边界里。Privy 有两套架构:

  • 端上执行模型(2-of-3):device share(用户设备本地)+ auth share(Privy 加密保管)+ recovery share(用户密码、云备份,或 Privy 托管)
  • 服务端 TEE 模型(2-of-2):enclave share(TEE 内,只能在 TEE 内解密)+ auth share(Privy 保管,凭有效认证凭证下发)

fomo 从未披露自己用的是哪一套。 它的安全页只写了「split into multiple shares」和「keys are only reassembled inside TEEs」——两套都符合这个描述。

但从产品特征可以反推:亚百毫秒签名、gasless、ERC-4337 批量交易、手机开仓桌面平仓的跨端无缝——这些几乎只能由服务端 TEE 模型(2-of-2)支撑。(这是推断,不是官方声明。)

如果推断成立,那么这里有一个必须点破的东西:

分片数 ≠ 分权数。

判断分片是否真的降低了风险,看的不是它切成几片,而是这几片跨越了几个相互独立的利益主体

在 2-of-2 模型里,两片密钥是这样分布的:一片在 Privy 的 TEE 里,一片在 Privy 的数据库里(加密)。分片数 = 2,分权数 = 1。

它们确实跨越了不同的技术边界,但没有跨越任何利益边界。真正的保障不是「分布式托管」,而是「TEE 的硬件完整性 + 认证校验 + 策略引擎」——这是一个纵深防御问题,不是一个信任分散问题。

这话不是我的发明。Privy 自己在文档里写得比谁都直白:

「重要的是要意识到:谁拥有 enclave,谁就拥有密钥。」

一家公司敢把这句话写进自己的产品文档,是值得尊敬的诚实。但读到它的人太少了。

③ 准入层:整条链的强度取在这里

这是全部的重点。

在 2-of-2 模型下,auth share 的下发条件是一个有效的认证凭证。而这个凭证,就是你的 Apple ID / 邮箱验证码(Privy 的案例文章提到 fomo 还支持 Google 登录,但 fomo 自家安全文档只列了邮箱和 Apple ID——这处口径不一致,它自己没解释)。

于是攻击路径短得可怕:

攻破你的邮箱或 Apple ID → 拿到 auth share → 与 TEE 内的 enclave share 凑齐两片 → 钱包易主。

没有第三片由用户独立掌握的分片来兜底。整个「分片」设计在这条路径上不产生任何额外阻力——因为攻击者根本不需要去攻密码学,他只需要走正门。

那 FaceID 呢? FaceID 是应用层的 UX 闸门,不是密码学分片。它防的是「手机被抢后当场转账」,防不住「攻击者在另一台设备上用你的 Apple ID 重新登录」。除非 fomo 把生物识别绑成了 Privy 的 authorization key 签名者(即让它成为策略签名的一部分),否则在服务端拼装密钥的那条路径上,FaceID 没有话语权。fomo 的公开文档没有说它绑了。

现在回头看那段全大写的免责条款。它写得一点都不含糊:用于保护或恢复钱包的邮箱账户和 Apple ID,风险由你承担。 法务部门早就把营销部门不愿意说的话说完了。

营销页告诉你密钥被分成了几片。用户协议告诉你钥匙挂在哪儿。

一个必须主动接住的反驳

到这里,专业读者会有一个合理的反问:「那它不还是比中心化交易所强得多?你别双标。」

对,确实强得多,而且这个改进是结构性的、真实的:

  • CEX 的用户资产在它自己的资产负债表上,可以被挪用、被再抵押、被冻结,破产时你排进债权人队列(FTX、Celsius 的教训不需要重述)。
  • fomo 做不到这些。它无法冻结你的仓位,无法挪用你的余额,倒闭时你的资产仍在链上,可以导出私钥换任意钱包接管。

这是货真价实的进步。但「比 CEX 强」和「你以为的自托管」之间,还隔着一整个身位。 准确的名字是 embedded self-custody(嵌入式自托管)——它消灭了托管方的挪用风险,但没有消灭单点风险,只是把单点从「交易所的资产负债表」搬到了「你的 OAuth 账户」。

搬家是有代价的,代价就是:你原以为自己在防交易所暴雷,实际上你在防的是自己的邮箱被盗。这两件事需要的准备完全不同。

其余几个未被讨论的裂缝

逃生通道本身就是一次暴露。 Privy 宕机 = 无法签名 = 无法交易和提现。唯一的逃生口是导出私钥,但按 fomo 用户协议原文:私钥「在传输中加密,由 Privy 以可读形式展示给你」。也就是说,你的完整私钥会在某个时刻以明文形态出现在一块屏幕上,此后全部责任转移给你。这条通道必须存在,但它不是零成本的。

主战场反而保护最弱。 EVM 链(Base、BNB)上是 ERC-4337 智能账户,理论上可以做花费限额、策略引擎、session key。但 Solana 上没有 ERC-4337 这一层,是普通 EOA——而 Solana 恰恰是 fomo 的主力链。保护最厚的地方,不是交易量最大的地方。

攻击面没有消失,只是换了形状。 「无助记词」确实消灭了「助记词被骗走」这个经典攻击面。但它换来了「OAuth 授权页被仿冒」这个新面。安全厂商 PCrisk 已记录到 fomoo.family——一个像素级仿冒 fomo 的钓鱼站,挂着 drainer。用户不再需要保护 12 个单词,改成需要分辨一个多出来的字母。

缺席的清单也在说话。 没有硬件钱包选项、没有多签、没有公开的提现白名单 / 时间锁 / 单笔限额、没有独立于邮箱的第二因素(TOTP 或 passkey)进入密钥路径。对一款主打自托管的产品,这套「无痛找回」的体验,正是拿掉这些换来的。便利从来不是免费的,它只是把账单寄到了别处。

所以,怎么用这把尺子

给正在评估任何一款「无助记词钱包」的人,三个问题按顺序问,答不上第三个前两个就不用谈:

  1. 生成层:密钥在哪生成?是硬件熵源,还是从我的登录凭证派生的?(后者是硬伤)
  2. 保管层:分成几片——以及更重要的,跨越了几个独立利益主体?两片都在同一家公司边界内的,就别叫「分布式」。
  3. 准入层:调起这把密钥需要什么?这个「什么」的安全度,就是整个钱包的安全度上限。

对已经在用 fomo 的人,实际有用的建议只有一条:把 Apple ID / 邮箱的两步验证拉到最满,优先用硬件密钥或 passkey,而不是短信。 因为那才是你真正的助记词——不管产品页面上写没写这四个字。

结论

fomo 的密码学底层是扎实的,TEE 加 SSS 是当前消费级钱包里比较好的一档,它对 CEX 托管风险的改进是真实的。

但密码学决定的是攻击有多贵,认证层决定的是攻击者需不需要用到密码学。当两片密钥都在同一家公司边界内、而调起它们只需要一个 OAuth 凭证时,这套系统真正的强度,写在你邮箱的安全设置页里,不在它的白皮书里。

分片不等于分权。无助记词不等于无单点。非托管不等于你以为的那种非托管。

你在用的钱包,第三层挂在什么上面?欢迎在评论里报一下你的架构,我挨个拆。


数据来源(均为一手,逐条核过)

  • fomo《How fomo Keeps Your Crypto Secure》官方安全架构说明
  • fomo Terms of Service(免责条款、钱包生成与私钥导出条款原文)
  • fomo《Announcing fomo web》(50 万注册用户)
  • Privy Docs — Security architecture(2-of-2:enclave share + auth share)
  • Privy Docs — On device execution environment(2-of-3:device / auth / recovery share)
  • Privy — Embedded wallets 101(「谁拥有 enclave,谁就拥有密钥」原文)
  • Privy — fomo 案例研究(登录方式:Apple / Google / email)

未披露 / 待核,已在文中标注:fomo 实际采用 2-of-2 还是 2-of-3(官方未公开,文中为推断);Google 登录在 iOS 与 Web 端是否开放(两边口径不一致);Stripe 收购 Privy 依据公开报道,未逐条核对官方公告。

#钱包安全 #嵌入式钱包 #自托管

Download Pickful App

Better experience on mobile

iOS

Android

APK