📦 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 累计
kondifun 头像by @kondifun (Kondifun)·MIT-0
下载技能包
License
MIT-0
最后更新
2026/4/14
0
安全扫描
VirusTotal
可疑
查看报告
OpenClaw
可疑
medium confidence
该技能与其声明的目的(创建和管理DID)基本一致,但存在与安全相关的行为(本地私钥存储默认通常未加密,以及自动将签名证明传输到网络relay),用户在安装前应了解这些。
评估建议
该技能似乎能实现其声称的功能(创建/管理代理DID并生成/验证证明),但在安装前有两个实际的安全问题需要考虑:1)本地私钥存储:密钥被写入$HOME/.openclaw/billions/kms.json。如果未设置BILLIONS_NETWORK_MASTER_KMS_KEY,密钥将以明文hex形式保存。如果启用主密钥,该技能将从该密钥派生AES密钥并在写入时加密密钥。如果选择设置主密钥,请避免将其放置在共享或不受信任的位置;仅当您信任操作员时才考虑使用安全的密钥存储或OpenClaw技能环境功能。2)网络流量/证明:将人类链接到代理会签署挑战并将签名的JWS嵌入到传递给项目attestation-relay和identity-dashboard短链接的回调URL中。这是广告宣传的验证流程的一部分,但意味着签名证明令牌会被传输到billions.network服务(以及白名单解析器)。只有当您信任Billions网络端点(attestation-relay.billions.network、identity-dashboard.billions.network、resolver.pr...
详细分析 ▾
用途与能力
名称/描述、所需二进制文件(node)和包含的脚本都与DID/证明工具技能一致:身份创建、签名、挑战和DID存储。网络端点(resolver.privado.id、billions.network、rpc-mainnet.billions.network、attestation-relay.billions.network、identity-dashboard.billions.network)与Billions/iden3的用途相匹配。
指令范围
运行时指令仅限于身份管理(创建/列表/生成挑战/签名/验证/链接)。它们在$HOME/.openclaw/billions下读写文件,并向项目的服务发出HTTPS请求(包括URL短链接和attestation relay)。该技能在链接流程中构建并传输签名的JWS证明——这是该功能的预期行为,但实际上会将签名令牌发布到attestation-relay端点,因此用户必须信任该端点。
安装机制
没有自定义下载/安装主机;代码随包提供,依赖项是带有package-lock.json的标准npm包。运行'npm install'将从公共npm注册表获取包(正常但存在通常的npm供应链风险)。未发现URL缩短或临时二进制下载。
凭证需求
清单声明没有必需的环境变量,但README和代码支持可选的BILLIONS_NETWORK_MASTER_KMS_KEY,当设置后,会启用kms.json中私钥的AES-256-GCM加密。如果未设置该环境变量,私钥将以原始hex形式持久化在$HOME/.openclaw/billions/kms.json中。该技能还建议将主密钥放入技能的环境配置中(这将使密钥对代理运行时可用)。默认情况下将私钥以明文形式存储在磁盘上是一个重要的安全考虑因素,但从清单中并不明显。
持久化与权限
该技能不是强制始终运行,也不会更改其他技能或全局代理设置。它仅在$HOME/.openclaw/billions下持久化自己的文件,这在其声明的范围内。自主调用默认启用(正常)但不与任何异常权限结合使用。
安全有层次,运行前请审查代码。

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 ↗ · 中文优化:龙虾技能库