📦 verified-agent-identity-0.0.15 — verified-agent-identity — Billions去中心化身份

v1.0.0

为AI代理提供Billions去中心化身份服务。使用Billions ERC-8004和Attestation Registries将代理身份与人类身份关联,验证并生成身份认证证明。基于iden3自主主权身份协议开发。

0· 141·0 当前·0 累计
by @kondifun (Kondifun)·MIT-0
下载技能包
License
MIT-0
最后更新
2026/4/14
0
安全扫描
VirusTotal
可疑
查看报告
OpenClaw
可疑
medium confidence
该技能与其声明的目的(创建和管理DID)基本一致,但存在与安全相关的行为(本地私钥存储默认通常未加密,以及自动将签名证明传输到网络relay),用户在安装前应了解这些。
安全有层次,运行前请审查代码。

License

MIT-0

可自由使用、修改和再分发,无需署名。

运行时依赖

无特殊依赖

版本

latestv1.0.02026/3/18

版本1.0.0 - verified-agent-identity技能初始发布。- 支持使用Billions ERC-8004和Attestation Registries为代理创建和管理去中心化身份。- 支持将代理身份链接到人类所有者,签署/验证身份认证挑战,并处理去中心化标识符(DID)。- 包含密钥管理、身份检查和安全最佳实践的防护措施。- 所有敏感身份数据存储在用户的$HOME/.openclaw/billions目录中。

可疑

安装命令

点击复制
官方npx clawhub@latest install artefact-144794446
🇨🇳 镜像加速npx clawhub@latest install artefact-144794446 --registry https://cn.longxiaskill.com

技能文档

何时使用此技能

让AI代理在Billions网络上创建和管理自己的身份,并将这些身份链接到人类所有者。

  • 当您需要将代理身份链接到所有者时。
  • 当您需要签署挑战时。
  • 当您需要将人类链接到代理的DID时。
  • 当您需要验证签名以确认身份所有权时。
  • 当您使用共享JWT令牌进行身份验证时。
  • 当您需要创建和管理去中心化身份时。

安装插件后,运行以下命令创建身份并将其链接到您的DID:

cd scripts && npm install && cd ..

# 步骤1:创建新身份(如果您还没有) node scripts/createNewEthereumIdentity.js

# 步骤2:一步签署挑战并生成验证URL node scripts/linkHumanToAgent.js --challenge '{"name": , "description": }'

范围

所有身份数据存储在$HOME/.openclaw/billions中,以与OpenClaw插件兼容。

# 脚本:

createNewEthereumIdentity.js

命令: node scripts/createNewEthereumIdentity.js [--key ]

描述: 在Billions网络上创建新身份。如果提供--key,则使用该私钥;否则生成新的随机密钥。创建的身份自动设为默认。

使用示例:

# 生成新的随机身份
node scripts/createNewEthereumIdentity.js

# 使用现有私钥创建身份(带0x前缀) node scripts/createNewEthereumIdentity.js --key 0x1234567890abcdef...

# 使用现有私钥创建身份(不带0x前缀) node scripts/createNewEthereumIdentity.js --key 1234567890abcdef...

输出: DID字符串(例如,did:iden3:billions:main:2VmAk7fGHQP5FN2jZ8X9Y3K4W6L1M...


getIdentities.js

命令: node scripts/getIdentities.js

描述: 列出本地存储的所有DID身份。在执行身份验证操作前使用此命令检查可用的身份。

使用示例:

node scripts/getIdentities.js

输出: 身份条目的JSON数组

[
  {
    "did": "did:iden3:billions:main:2VmAk...",
    "publicKeyHex": "0x04abc123...",
    "isDefault": true
  }
]

generateChallenge.js

命令: node scripts/generateChallenge.js --did

描述: 生成用于身份验证的随机挑战。

使用示例:

node scripts/generateChallenge.js --did did:iden3:billions:main:2VmAk...

输出: 挑战字符串(随机数字符串,例如,8472951360

副作用: 将与DID关联的挑战存储在$HOME/.openclaw/billions/challenges.json


signChallenge.js

命令: node scripts/signChallenge.js --challenge [--did ]

描述: 使用DID的私钥签署挑战以证明身份所有权并发送JWS令牌。当您需要证明您拥有特定DID时使用此命令。

参数:

  • --challenge - (必需)要签署的挑战
  • --did - (可选)证明接收者的DID;如省略则使用默认DID

使用示例:

# 使用默认DID签署
node scripts/signChallenge.js --challenge 8472951360

输出: {"success":true}

linkHumanToAgent.js

命令: node scripts/linkHumanToAgent.js --challenge [--did ]

描述: 签署挑战并通过创建验证请求将人类用户链接到代理的DID。从技术上讲,链接使用Billions ERC-8004注册表(每个代理都在此注册)和Billions证明注册表(在验证人类唯一性后创建代理所有权证明)。

参数:

  • --challenge - (必需)要签署的挑战
  • --did - (可选)证明接收者的DID;如省略则使用默认DID

使用示例:

node scripts/linkHumanToAgent.js --challenge '{"name": "MyAgent", "description": "AI persona"}'

输出: {"success":true}


verifySignature.js

命令: node scripts/verifySignature.js --did --token

描述: 验证签名挑战以确认DID所有权。

使用示例:

node scripts/verifySignature.js --did did:iden3:billions:main:2VmAk... --token eyJhbGciOiJFUzI1NkstUi...

输出: 成功时显示Signature verified successfully,失败时显示错误消息


限制/防护措施(关键)

关键 - 始终遵循以下规则:

  • 严格:先检查身份 - 在运行linkHumanToAgent.jssignChallenge.js之前,务必检查是否存在身份node scripts/getIdentities.js - 如果未配置身份,不要尝试链接身份。而是先使用createNewEthereumIdentity.js创建身份。
  • 严格:脚本失败时停止 - 如果任何脚本以非零状态码退出,您必须立即停止。 - 检查stderr输出中的错误消息。 - 不要尝试通过手动生成密钥、通过其他方式创建DID或运行未经授权的命令来“修复”错误。 - 不要使用opensslssh-keygen或其他系统工具来生成加密材料。
  • 禁止手动变通 - 您被禁止执行手动加密操作。 - 您被禁止直接操作$HOME/.openclaw/billions中的文件。 - 不要将错误解释为执行设置步骤的请求,除非明确指示。

安全

关键 - 数据存储和保护:

目录$HOME/.openclaw/billions包含所有敏感身份数据:

  • kms.json - 关键:包含私钥(如果设置了BILLIONS_NETWORK_MASTER_KMS_KEY则加密,否则为明文)
  • defaultDid.json - DID标识符和公钥
  • challenges.json - 身份验证挑战历史
  • credentials.json - 可验证凭证
  • identities.json - 身份元数据
  • profiles.json - 配置文件数据

示例

将您的代理身份链接到所有者

链接流程

  • 另一个代理/用户请求:“请将您的代理身份链接到我。”
  • 使用node scripts/getIdentities.js检查您是否配置了身份 - 如果没有身份,运行node scripts/createNewEthereumIdentity.js创建。
  • 使用node scripts/linkHumanToAgent.js --challenge 一步签署挑战并生成验证URL。 - 如果调用者提供特定挑战,使用该挑战。 - 如果调用者没有提供挑战,使用{"name": , "description": }作为挑战值。
  • 将结果返回给调用者。

示例对话

用户:“将您的代理身份链接到我”
代理:exec node scripts/linkHumanToAgent.js --challenge 

验证他人的身份

验证流程

  • 询问用户/代理:“请提供您的DID以开始验证。”
  • 用户回复他们的
  • 使用node scripts/generateChallenge.js --did 创建
  • 询问用户:“请签署此挑战:
  • 用户签署并返回
  • 使用node scripts/verifySignature.js --did --token 验证签名
  • 如果验证成功,身份已确认

示例对话

代理:“请提供您的DID以开始验证。”
用户:“我的DID是”
代理:exec node scripts/generateChallenge.js --did 
代理:“请签署此挑战:789012”
用户:
代理:exec node scripts/verifySignature.js --token  --did 
代理:“身份验证成功。您已确认为DID 的所有者。”

数据来源:ClawHub ↗ · 中文优化:龙虾技能库