阅读约 5 分钟
有了通行密钥,为什么身份种子依然重要
是的,即便你已经设置了通行密钥,仍然需要保存好身份种子。通行密钥只是日常解锁的便利手段;身份种子才是可携带的身份,它能在 CardanoWall、CLI、SDK 以及任何 Label 309 工具之间通用。

是的,即便你新增了通行密钥,仍然需要保存好身份种子。
通行密钥负责日常解锁,而身份种子本身就是你的身份。只要保存好种子,你就能在任何地方重建同一个 Label 309 身份:在 CardanoWall 中、在开源的命令行工具中、在各个 SDK 中,以及在任何实现了该标准的其他软件中。一旦你同时丢失了种子和所有解锁保险库的途径,这个身份就再也无法使用了。
这并不是疏漏,而是「CardanoWall 从不托管你的身份」这一设计的直接结果。如果某个服务能够凭空把身份还给你,那它同样有能力冒充你。
什么是身份种子?
身份种子是一份 32 字节的秘密。每个 Label 309 工具都会从这一个值出发,确定性地派生出你身份所用的各项密钥,用来:
- 为存在性证明记录签名;
- 在经典接收地址上接收封存记录;
- 在可选的后量子接收地址上接收封存记录;
- 解密发给该身份的记录;
- 在把身份导入新账户时,证明你确实持有该身份。
种子是这一切可携带的根。它不是 Cardano 钱包助记词。它不持有任何 ADA,不掌控任何资金,也不是支付钱包。它只是一个 Label 309 身份的根,别无其他。想更完整地了解身份如何从这 32 字节生长出来,参见你的身份就是一份种子。
CardanoWall 为什么不干脆替我把种子藏起来?
因为彻底替你藏起来,就意味着这个服务掌握了替你恢复身份的权力,而这恰恰是整套设计拒绝扮演的角色。
如果 CardanoWall 能够在没有种子的情况下重置或重建你的身份,它就必须持有某个足以代你行事的秘密。这个秘密会让服务变成托管方:一个可能被攻破、被传唤、或干脆被关停的单点,一旦失守,你的身份也随之消失。
所以这种切分是刻意为之。CardanoWall 可以提供一个加密保险库,通行密钥可以打开这个保险库。但保险库只是便利层,而种子才是完全属于你自己的东西。
那通行密钥到底起什么作用?
它只负责打开便利保险库,仅此而已。
保存好种子之后,你就可以新增一个通行密钥。通行密钥让你的浏览器无需每次都粘贴种子,就能解锁加密的身份保险库。正是这一点让日常工作保持顺畅:
- 为记录签名;
- 解密收到的封存记录;
- 在多个身份之间切换;
- 撰写封存消息;
- 在另一台已登录的设备上解锁,由你的通行密钥服务商同步过去;
- 笔记本电脑丢失后重新登录,前提是你的通行密钥已同步。
保险库本身存放的是加密后的密文,而非明文种子,而且它只面向你的通行密钥寻址,因此服务无法读取它。想完整了解通行密钥能解锁什么、又不能做什么,参见通行密钥如何保护你的身份保险库。
问题在于适用范围:一个通行密钥只绑定一个账户、一种平台环境,而种子不受此限。
种子能做哪些通行密钥做不到的事?
它能把身份带到任何地方。有了种子,你可以:
- 把身份导入一个新的 CardanoWall 账户;
- 把它带入其他 Label 309 软件;
- 在命令行工具中使用它;
- 在某个实现了该标准的第三方工具中使用它;
- 有意地共享一个团队身份;
- 在托管保险库不可用时重新登录;
- 确认派生出的公钥与你预期的身份相符。
通行密钥解锁的是某一个账户的保险库,而种子重建的是身份本身。正因如此,CardanoWall 把种子视为权威备份,把通行密钥视为叠加在其上的缓存。
如果我丢失了种子会怎样?
这取决于你手上还剩下什么。
如果你仍有一个可用的通行密钥,且托管保险库在线,那就没问题:你可以打开身份,经过一道重新认证的步骤,从设置中再次显示种子。请把这当作终于该把它妥善保存到某个持久之处的时刻。
如果你同时丢失了种子和每一种保险库解锁要素,这个身份就无法再使用了。你无法再用它为新记录签名,无法解密发给它的封存记录——包括丢失之后才到达的那些。而且 CardanoWall 没有任何人能重置它,因为 CardanoWall 没有任何人持有它。
你已经发布的证明则是另一回事。它们依然可以验证,因为验证只依赖公开数据:Cardano 上的交易元数据,以及在需要时的内容字节。种子的丢失,丝毫不会推翻你已经发布的证明。
如果有人窃取了种子会怎样?
把这个身份视为已泄露,并将其替换。
任何持有种子的人都能派生出同样的私钥。他们可以用你的身份签名,并解密发给该身份的封存记录,无论是过去的还是将来的。一旦种子被别人知道,就再也没有办法收回。
应对之道不是在同一个身份里「更换种子」。一份种子永久对应一个身份。正确的做法是:
- 创建一个新身份;
- 保存新种子;
- 通过人们信任的渠道发布或分发新的公钥;
- 在服务中停用旧身份;
- 不再使用旧的接收地址;
- 在有帮助的场合,发布取代旧记录的新记录。
正因如此,种子值得像对待任何其他高价值秘密一样小心保管。停用旧身份与删除旧身份之间的区别,值得你在真正需要之前就先弄清楚;参见活跃、已停用、已删除。
我应该把种子存在哪里?
存在你本来就信任、用于长期保管秘密的地方。可取的选择包括:
- 一款口碑良好的密码管理器;
- 一份离线的加密归档;
- 存放在安全场所的纸质副本;
- 一套企业级的秘密管理流程;
- 用于共享团队身份时,办公室保险箱里的一个封存信封。
避开那些容易让秘密泄露的地方:
- 手机相册里的截图;
- 普通的、未加密的笔记;
- 聊天消息;
- 邮件草稿;
- 问题追踪系统或 wiki;
- 公开文档;
- 任何你可能下意识粘贴钱包助记词的地方。
合适的保护级别应与身份的价值相匹配。一个用完即弃的测试身份,和一个新闻编辑室的共享身份,不该用同样的方式来保管。
种子是钱包助记词吗?
不是,而且 CardanoWall 特意把两者区分得很清楚。
CardanoWall 刻意不为身份采用钱包式的单词列表。Label 309 身份种子以一段带校验和的字符串呈现,看上去与加密货币钱包备份毫无相似之处,正是为了让你不会把两者混淆。这个校验和能识别出输入错误与截断,却不必借用那种人们一看就联想到资金的单词网格格式。
切勿把 Cardano 钱包助记词粘贴到 CardanoWall。它不需要,也从不索取。身份种子只用于你的 Label 309 身份,仅此而已。
我应该多久接触一次种子?
越少越好。健康的模式是:
- 创建或导入身份;
- 保存种子;
- 新增一个通行密钥;
- 日常解锁都用通行密钥;
- 只在迁移、恢复或审计身份时,才显示或重新输入种子。
这样既能让种子真正可携带,又不至于让你每天都去摆弄一份原始秘密。日常之中,你只需轻点通行密钥;种子则安全地在后台等候。
简短版
身份种子就是身份,通行密钥只是便利解锁。
在你开始依赖某个身份之前,就先保存好种子。用通行密钥让日常工作保持顺畅。让种子远离不受信任的设备,也永远不要把它和钱包助记词混为一谈。如果 CardanoWall 能每天帮到你,却依然无法替代你的种子,那这套模型正按设计运转。
延伸阅读
- 移除通行密钥会发生什么?——移除一个要素,以及它会撤销和不会撤销什么。
- 这一开放标准的主页是 label309.org,开源的 SDK 与命令行工具则在 github.com/cardanowall。