几乎每个主流 messenger 在注册时都问你要手机号(只有一个例外,后面会讲到)。其中一些会说"手机号只是用来验证,不是你的身份"。这种说法多半是营销修辞:手机号就是这套系统里的身份,从所有有意义的维度看都是。你换号了,账号就失联;有人偷了你的号,账号就被偷;谁有你的号、你跟谁聊过、你跟谁同群 —— 整张社交图都用手机号当 key。
BlindPost 没有手机号。不是"我们不把你的手机号跟账号关联起来",是根本没有。注册界面不问你要,我们的数据库里没有"手机号"这一列,我们也没有 SMS provider 账户,因为我们压根不发短信。
下面讲讲这件事实际上意味着什么 —— 当"身份"不再是手机号,什么会发生改变。
"那我手机丢了怎么找回账号?"
听到我们不收手机号,接下来通常会有两个问题:
问:你们没有我手机号,那我手机丢了怎么找回账号?
答:12 个英文单词的助记词 —— 注册时生成,有一个引导页让你"把这 12 个词记在一个安全的地方"。换设备时,你把这 12 个词输回去,客户端会重新生成跟之前一模一样的密钥。同一个身份、同一个地址、同一批联系人和群聊,只是换了一台手机。没有短信验证码,没有邮件链接,任何一步都不需要经过我们的基础设施。
问:12 个词看起来挺短的 —— 会不会被人暴力破解?
答:不会,差距大概是宇宙存在年龄的 7.8 亿倍。这个数我们在另一篇文章里算过。简版结论:12 个 BIP39 助记词携带 128 比特熵,可能的组合数比地球上每一粒沙、可观测宇宙里每一颗恒星、大约 10 万个地球里每一个原子的总数还要多。
助记词是"这个账号是你的"和"这个账号丢了"之间唯一的分界。把它当成保险箱钥匙对待 —— 写在纸上、离线保存、不要拍照、不要发给自己邮箱。助记词跟设备一起丢了 → 账号永久找不回。没有"客服找回"这条路 —— 因为我们手上没有任何东西能证明"这账号是你的"。
在 BlindPost 上,"你"是谁
你装 BlindPost、创建账号的时候,手机本地生成一对长期密码学密钥 —— Ed25519。公钥那一半就是你的身份。其他人看到的是从公钥派生出来的一段短字符串(base58 编码的指纹);这就是你想让别人找到你时分享的"地址"。
你用一组 12 个英文单词的助记词来备份这把密钥。(我们在前一篇文章算过这组助记词的安全性。)助记词也是你换设备时唯一的恢复方式。助记词丢了、设备也没了 → 账号永久找不回来。 没有"短信验证码重置",也没有"点这里发条短信给你"。
显示名、头像、个人简介都能改,改这些不影响你密码学层面是谁。你的身份就是那把公钥,公钥永远不轮换。
其他 messenger 怎么做的 —— 以及泄漏点在哪
WhatsApp 用手机号作为账号标识符。通讯录发现走的是:你上传整个通讯录,服务器告诉你哪些号码是 WhatsApp 用户。换手机,号码跟着;换 SIM —— 大多数地区允许 SIM 移植,验证手段意外地薄弱 —— 账号也跟着。
Signal 在很多维度上比 WhatsApp 好得多,但注册时仍然要手机号。最近的版本支持在通讯录里隐藏手机号、改用 username —— 是个真改进。但手机号还在 Signal 的数据库里,还绑着账号,还能被传票调到,还有 SIM-swap 被盗的风险。
Telegram 用手机号方式类似,加上一个额外特点:服务器存"非密聊"消息的明文副本。
共同形态:公司持有你的手机号。任何针对公司的传票都能拿到你的手机号。任何对公司的入侵都暴露你的手机号。任何对你手机号的 SIM port 都会接管你的账号。
你的攻击面变成什么样
当 BlindPost 的服务器被传票 / 搜查令 / 入侵时,关于你的"身份",可被取证恢复的是:
- 你的 Ed25519 公钥(顺便,这也是你愿意公开的地址 —— 设计上就是公开信息)。
- 发到这把公钥的加密 envelope(我们在别的文章里讲过的那些封死密文)。
- 你最近一次连接我们集群的时间(因为我们要判断连接是不是活跃)。
不能被恢复的:
- 你的手机号 —— 我们没有。
- 你的邮箱 —— 我们不问。
- 你的姓名 —— 我们不存;你设的名字本地,通过端到端加密分享给联系人。
- 你的通讯录 —— 我们不同步。没有"查看哪些联系人在 BlindPost"这种功能。
- 你的 SIM 卡 / IMSI / IMEI —— 跟我们模型无关;手机只是承载密钥的硬件。
这就是"没手机号"换来的:在我们的记录里,没有任何一根线能把"张三、138-XXXX-1234、2026 年 8 月 3 日注册"这类信息从档案里抽出来送进法庭 —— 因为这根线根本不存在。
代价
我们失去最便利的那种通讯录发现:你没办法"打开 app → 看通讯录里谁也在用 → 一键添加"。那个功能只有在客户端和服务器都知道你的手机号时才能工作。我们都不知道,所以我们做不到。
替代方式:
- 分享你的地址 —— 那段 base58 公钥指纹 —— 通过任何 out-of-band 渠道(粘贴到 Signal、发 iMessage、写在纸上)。或者分享邀请链接,本质是同一个东西套了一层。
- 当面扫二维码。
- 通过群邀请链接加群,然后在群里认识成员。
跟 WhatsApp 的"上传通讯录一键发现"比,这是真实的体验摩擦。我们选择承担它,因为另一条路 —— 收集和存储手机号 —— 跟整个项目的隐私目的相违背。一个数据库可以被传票调出账号手机号的隐私 app,本质上是一只手被绑着打仗;不如一开始就不收。
收尾
"手机号即身份"这套模型是 2010 年代的便利,Signal 那一代端到端加密的默认假设里就这么定下来,后来也没有被认真重新思考过。它换来的是 SMS 注册和顺滑的通讯录发现,这两件事对用户增长来说是实打实的好处。但它同时给了公司 —— 以及通过公司给了政府 —— 一根永久通往你现实身份的线:你的 SIM swap 风险、你的账单地址、你的运营商记录、你的通话元数据。
我们走了更难的那条路。助记词是代价;一个其他人都拿不到的身份 —— 不是我们、不是运营商、不是法庭 —— 是收获。
BlindPost