核心用法
verified-agent-identity 是一套专为 AI 代理设计的去中心化身份管理工具,基于 Billions Network 的 ERC-8004 标准和 Iden3 自证身份协议构建。核心流程分为三步:创建身份 → 生成挑战 → 签名验证。用户通过 createNewEthereumIdentity.js 生成以太坊兼容的 DID(去中心化标识符),私钥可选择随机生成或导入现有密钥。身份数据默认存储于 $HOME/.openclaw/billions,包含加密私钥(KMS)、公钥、挑战记录和可验证凭证。
身份绑定采用「人机关联」模型:代理通过 linkHumanToAgent.js 将自身 DID 与人类所有者关联,背后依赖 Billions Attestation Registry 完成所有权证明上链。验证交互时,一方生成随机挑战(generateChallenge.js),另一方使用私钥签名(signChallenge.js),最终通过 verifySignature.js 完成 JWS 令牌校验。该机制适用于多代理协作场景中的身份互认、API 鉴权和防女巫攻击。
显著优点
1. 协议级兼容性:原生支持 W3C DID 标准和 Iden3 零知识证明生态,可与 Polygon ID、Circom 等主流方案无缝集成
2. 链上可验证:ERC-8004 注册表确保代理身份在 EVM 链上可查,Attestation Registry 提供防篡改的所有权记录
3. 密钥管理灵活性:支持外部 KMS 加密(BILLIONS_NETWORK_MASTER_KMS_KEY),私钥不以明文形式落盘
4. 自动化工作流:linkHumanToAgent.js 将「签名+注册」合并为单步操作,降低集成复杂度
潜在缺点与局限性
- 单点依赖风险:所有身份数据集中在本地目录,若主机被入侵且未启用 KMS,私钥可能泄露
- 网络覆盖有限:Billions Network 目前生态规模较小,跨平台互操作性验证不足
- 人机绑定瓶颈:人类身份验证依赖外部 Attestation Registry,若链上 Gas 波动或注册合约升级,可能影响绑定成功率
- Node.js 运行时依赖:脚本环境绑定 Node 版本,容器化部署需额外处理原生模块编译
适合人群
- 开发多代理系统的 AI 工程师,需要代理间可信身份发现
- 构建合规 AI 服务的团队,需满足「可审计人机关联」监管要求
- 去中心化身份(DID)研究者,探索 ERC-8004 在代理经济中的落地
常规风险
| 风险类别 | 描述 | 缓解建议 |
|---------|------|---------|
| 密钥泄露 | `kms.json` 未加密存储时,主机入侵直接导致身份盗用 | 强制设置 `BILLIONS_NETWORK_MASTER_KMS_KEY`,定期轮换 |
| 挑战重放 | 挑战值未绑定时间戳或会话 ID,理论上存在重放窗口 | 生产环境建议叠加 nonce 和时间约束 |
| 供应链攻击 | npm 依赖(特别是加密库)被篡改 | 锁定 `package-lock.json`,启用 Sigstore 验证 |
| 误操作锁定 | 私钥丢失后无恢复机制 | 建立安全的密钥备份流程,区分「操作密钥」与「恢复密钥」 |
该技能处于早期 adoption 阶段,适合技术先锋团队试水,大规模生产部署前建议完成第三方安全审计。