你可以构建什么
用户身份在每个上下文中保持分离——工作、个人、家庭、设备——没有链接它们的中央数据库。每个 Handle 是一个单独的 Ed25519 密钥对,从同一个种子导出,每个设备从种子短语重新计算相同的密钥。
它是如何工作的
用户为每个上下文导出 Handle。每个 Handle 携带自己的密钥对、自己的证明链和自己的会话。应用仅看到用户提交的 Handle 并根据根公钥验证。
const work = await identity.deriveHandle('work');
const home = await identity.deriveHandle('home');
const devices = await identity.deriveHandle('devices');
优势
- 按构造隔离。 一个 Handle 被入侵永远不会暴露另一个——不同的密钥,不同的授权。
- 无状态。 服务器仅用根公钥验证会话——无需维护或保护的用户数据库。
- 新上下文一行。 新角色是一次导出——无需注册、无需批准、无需泄露的数据。
- 确定性。 相同种子、相同 Handle——总是如此。每个设备一个身份,无需同步。
权衡
- 种子丢失 = 按设计丢失身份。 没有恢复——种子是身份的唯一永久载体。
- 用户教育。 角色需要解释:用户必须了解何时提交哪个 Handle 以及为什么隔离很重要。
- Alpha。 包 API 是 1.0 之前版本;固定版本。
链接
- 场景 5 在协议使用场景指南