核心用法
本 Skill 为 AI 代理提供完整的去中心化身份(DID)生命周期管理能力,基于 iden3 自主权身份协议构建。核心脚本包括:
| 脚本 | 用途 |
|------|------|
| `createNewEthereumIdentity.js` | 创建新 DID 身份,支持随机生成或导入私钥 |
| `getIdentities.js` | 列出本地存储的所有身份 |
| `generateChallenge.js` | 为特定 DID 生成随机挑战值 |
| `signChallenge.js` | 使用 DID 私钥签名挑战 |
| `linkHumanToAgent.js` | 一站式签名挑战并创建人机绑定验证请求 |
| `verifySignature.js` | 验证 JWS Token 确认 DID 所有权 |
典型工作流
1. 代理身份创建:运行创建脚本生成 did:iden3:billions:main:... 格式 DID
2. 人机绑定:通过 linkHumanToAgent.js 将代理 DID 与真人身份关联(底层使用 Billions ERC-8004 Registry 和 Attestation Registry)
3. 身份验证:代理间通过挑战-响应机制验证对方 DID 所有权
显著优点
- 协议成熟:基于 iden3 经过验证的自主权身份协议,支持零知识证明
- 标准化合规:符合 ERC-8004 代理注册标准,与以太坊生态兼容
- 双注册机制:ERC-8004 代理注册表 + Attestation 注册表双重验证人机关系
- 密钥灵活:支持新生成或导入现有私钥,兼容 0x 前缀格式
潜在局限
- 依赖 Node.js 环境:所有脚本为 Node.js 实现,需预装依赖
- 本地存储风险:私钥默认存储于本地 JSON 文件,虽有可选
BILLIONS_NETWORK_MASTER_KMS_KEY加密,但配置不当易泄露 - 挑战值语义混淆:
linkHumanToAgent.js的--challenge参数既可接受随机数值,也接受 JSON 对象,接口设计存在歧义 - 网络依赖:需连接 Billions Network 完成链上注册和验证
适合人群
- 需要为 AI 代理建立可验证数字身份的开发者
- 构建人机协作可信系统的平台方
- 探索去中心化代理经济的早期采用者
常规风险
| 风险类型 | 说明 |
|---------|------|
| 私钥泄露 | `kms.json` 若未配置主密钥加密,私钥以明文存储于本地 |
| 中间人攻击 | 挑战-响应流程若在不安全通道传输,可能被截获重放 |
| 身份伪造 | 需严格验证 `verifySignature.js` 结果,不可仅凭 DID 字符串信任身份 |
| 配置错误 | 脚本硬性要求先检查身份存在性,跳过步骤会导致不可预期的失败 |