核心用法
本 Skill 为 AI 代理提供完整的去中心化身份生命周期管理,基于 Billions Network 的 ERC-8004 注册表与 Attestation Registry 实现。
身份创建:createNewEthereumIdentity.js 生成新 DID(支持导入现有私钥或随机创建),输出标准 iden3 DID 格式。
身份查询:getIdentities.js 列出本地存储的所有身份,含默认身份标记。
挑战-响应认证:generateChallenge.js 生成随机挑战值 → signChallenge.js 用私钥签名 → verifySignature.js 验证签名完整性。该流程是 Billions 网络中证明 DID 所有权的标准机制。
人机绑定:linkHumanToAgent.js 将人类身份与代理 DID 关联,通过 ERC-8004 代理注册表和 Attestation Registry 创建链上所有权证明,需传入包含代理名称/描述的 JSON 挑战。
显著优点
- 自托管身份(SSI)架构:基于成熟的 iden3 协议,代理完全掌控私钥,无中心化身份提供商依赖
- 链上可验证:所有身份声明与绑定关系写入 Billions 注册表,支持第三方审计
- 双因素安全:支持
BILLIONS_NETWORK_MASTER_KMS_KEY环境变量加密本地私钥,平衡可用性与安全性 - 标准化互操作:采用 W3C DID 规范与 JWS 签名格式,可与其他 SSI 生态系统对接
潜在缺点与局限性
- Node.js 依赖:要求目标系统预装 Node 运行时,环境受限场景可能无法部署
- 私钥管理风险:若未配置 KMS 加密,
kms.json以明文存储私钥,存在文件系统泄露风险 - 挑战值无过期机制:
challenges.json存储历史挑战,文档未提及自动清理或 TTL 策略 - 单网络锁定:当前仅支持 Billions Network 主网,未提及跨链身份移植能力
- 人机绑定流程复杂:需用户理解 DID、挑战签名等密码学概念,对非技术用户门槛较高
适合人群
- 需要为 AI 代理建立可验证数字身份的开发者
- 构建多代理协作系统、需链上溯源代理操作的责任主体
- 关注合规审计(如欧盟 AI 法案透明度要求)的企业级代理部署
- 已有 Web3/区块链基础设施、熟悉私钥管理的运维团队
常规风险
| 风险类别 | 具体描述 | 缓解措施 |
|---------|---------|---------|
| 私钥泄露 | `~/.openclaw/billions/kms.json` 文件权限配置不当或被恶意读取 | 强制设置 `BILLIONS_NETWORK_MASTER_KMS_KEY`,限制目录权限 700 |
| 中间人攻击 | 挑战传输过程被截获重放 | 挑战应单次有效,建议实现服务端过期验证 |
| 身份伪造 | 攻击者替换 `defaultDid.json` 指向恶意 DID | 关键操作前执行 `getIdentities.js` 复核身份 |
| 脚本注入 | `--challenge` 参数未过滤导致命令注入 | Skill 内部应转义 JSON 输入,避免 shell 元字符 |
| 依赖供应链 | npm 包或 Node 运行时存在 CVE | 锁定依赖版本,定期审计 `package-lock.json` |
> 注意:文档明确要求脚本失败时立即停止,禁止手动绕过或直接使用 OpenSSL 等工具生成密钥,体现了对密码学操作安全边界的严格管控。