你需要的一切
在Me2eM上构建
所有包的API参考、术语表、quick start和指南——从第一个种子短语到已验证的会话。
核心实体
协议的核心:从种子短语派生的根Identity、上下文Handles和stateless签名会话。
这里不存储也不查找:服务器通过一次签名检查验证会话,第三方仅使用你的根公钥验证委托访问。证明链携带audiences、scopes和TTL限制,在验证时强制执行——信任可以委托和撤销,无需共享私钥。
你得到什么
-
从seed派生的Identity — 来自32字节或12/24词短语——永远不变,不存储在任何地方。
-
隔离的Handles — 每个上下文一个独立的Ed25519密钥对; compromised一个不会泄露其他的。
-
证明链 — 父级签名的授权,带有audiences、scopes和TTL限制,由任何第三方离线验证。
-
Stateless会话 — verifyStateless用于你的后端,verifyAttested用于合作伙伴——带有即时分支撤销。
-
内置派生 — 确定性密码、通道密钥和X25519共享密钥,以及BIP39 passphrase支持。
端到端加密
用于实际通信的协议加密:标准Signal X3DH、长寿命加密通道和用于离线接收者的信封。
通道为每条消息派生新密钥并旋转纪元,所以即使密钥后来泄露,加密内容仍然密封。预密钥使异步交付可行:你可以加密发送给几天未上线的人。底层有审计过的原语——HKDF、X25519、AES-256-GCM——Argon2id在边缘保护密码。
你得到什么
-
标准X3DH — Signal的密钥协商,带有强制的一次性预密钥——无零回退,抗MITM。
-
前向安全的通道 — 每条消息的密钥、严格递增的重放保护、在定义点的纪元旋转。
-
离线信封 — X3DH封装的密钥到达未上线的接收者;每个信封都是自包含的。
-
Argon2id密码加固 — 交互式和高敏感用途的命名配置,强度检查和HIBP泄露查询。
-
验证过的原语 — HKDF针对RFC 5869测试向量、X25519、AES-256-GCM、安全密钥擦除。
React SDK
将协议转化为产品UI的React绑定:身份钩子、种子短语屏幕、自更新会话。
种子短语是用户绝不能丢失的那个秘密——所以它的UX是安全模型的一部分。单词只显示一次,通过顺序网格验证,导入时逐词验证。派生密钥仅作为非提取的CryptoKeys持久化,每个身份隔离。headless层保持每个状态机框架无关——未来的@me2em/sdk。
你得到什么
-
身份钩子 — useCreateIdentity、useImportSeed、useHandle、useSubHandle——完整的身份生命周期。
-
防止灾难的seed UX — 一次性显示、单次复制、顺序验证网格、导入时逐词验证。
-
自更新会话 — useSession跟踪过期并在半衰期自动续期。
-
Encrypted context cache — 每个身份的IndexedDB隔离,带有非提取的持久化CryptoKeys。
-
Headless层 — 框架无关的状态机,零React导入。
协议语言
整个模型的共享词汇表——每个术语在此定义一次,然后在别处使用。
Identity
从种子短语派生的根加密身份。永远不变。
Handle
一个派生的、有证明的、命名的密钥,代表一个独立的身份上下文。
SubHandle
Handle的子叶节点。
Attestation
父级签名的记录,将子密钥与名称和授权绑定。
Session
无状态签名授权令牌。
Channel
从X3DH共享密钥派生的长寿命E2EE关系。
Transient material
仅在使用的瞬间存在于RAM中的密钥字节。
Ephemeral material
带TTL和旋转的材料(SPK/OTK、缓存密钥、会话令牌)。
从seed到已验证的会话
四个步骤——在每个场景中相同,从消息传递到充电网络。
写下seed
纸上的12或24个BIP39单词。唯一的永久身份载体——永不传输,永不存储。
派生根
Identity通过HKDF在本地计算。每个上下文的Handle——工作、个人、设备——从中离线派生。
委托和签名
证明链授予对设备、合作伙伴和AI代理的受限、限时访问。会话是stateless签名令牌。
验证和撤销
任何第三方仅用根公钥验证。一个撤销的jti立即禁用整个分支。
常见问题
第一次派生之前会提出的问题。