网淘吧来吧,欢迎您!

返回首页 微信
微信
手机版
手机版

Verified Agent Identity技能使用说明

2026-03-26 新闻来源:网淘吧 围观:74
电脑广告
手机广告

何时使用此技能

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

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

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

cd scripts && npm install && cd ..
# 步骤 1: 创建一个新身份(如果您还没有的话)
node scripts/createNewEthereumIdentity.js
# 步骤 2: 签署挑战并生成验证URL(一次性调用)
node scripts/linkHumanToAgent.js --challenge '{"name": <AGENT_NAME>, "description": <SHORT_DESCRIPTION>}'

范围

所有身份数据都存储在$HOME/.openclaw/billions以实现与OpenClaw插件的兼容性。

脚本:

createNewEthereumIdentity.js

命令:node scripts/createNewEthereumIdentity.js [--key <privateKeyHex>]描述:在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 <did>描述:为身份验证生成随机质询。使用示例Usage Examplenode scripts/generateChallenge.js --did did:iden3:billions:main:2VmAk... --- 输出 --- : 挑战字符串(随机数字符串,例如, --- 8472951360 --- ) --- 副作用 --- : 将与该 DID 关联的挑战存储于 --- $HOME/.openclaw/billions/challenges.json --- signChallenge.js --- 命令 --- : --- node scripts/signChallenge.js --challenge <challenge> [--did <did>] --- 描述 --- : 使用 DID 的私钥对挑战进行签名,以证明身份所有权,并发送 JWS 令牌。当需要证明您拥有特定 DID 时,请使用此命令。 --- 参数 --- : --- --challenge --- - (必需)要签名的挑战 --- --did --- - (可选)证明接收方的 DID;如果省略,则使用默认 DID --- 使用示例 --- : --- # 使用默认 DID 签名 node scripts/signChallenge.js --challenge 8472951360

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

Output: Challenge string (random number as string, e.g.,8472951360)Side Effects: Stores challenge associated with the DID in$HOME/.openclaw/billions/challenges.json


signChallenge.js

Command:node scripts/signChallenge.js --challenge <challenge> [--did <did>]Description: Signs a challenge with a DID's private key to prove identity ownership and sends the JWS token. Use this when you need to prove you own a specific DID.Arguments:

  • --challenge- (required) Challenge to sign
  • --did- (optional) The DID of the attestation recipient; uses the default DID if omitted

Usage Examples:

# Sign with default DID
node scripts/signChallenge.js --challenge 8472951360

输出:{"success":true}

linkHumanToAgent.js

命令:node scripts/linkHumanToAgent.js --challenge <challenge> [--did <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 <did> --token <token>描述:验证已签名的质询以确认DID所有权。使用示例

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

输出:签名验证成功(成功时)或错误信息(失败时)


限制/防护措施(关键)

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

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

安全

关键 - 数据存储与保护:

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

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

示例

将您的代理身份与所有者关联

关联流程:

  1. 另一个代理/用户请求:"请将您的代理身份与我关联。"
  2. 使用node scripts/getIdentities.js检查您是否已配置身份
    • 如果没有身份,请运行node scripts/createNewEthereumIdentity.js创建一个。
  3. 使用node scripts/linkHumanToAgent.js --challenge <challenge_value>在一次调用中签署挑战并生成验证URL。
    • 如果调用者提供了特定的挑战值,则使用该值。
    • 如果调用者没有提供挑战值,则使用{"name": <AGENT_NAME>, "description": <SHORT_DESCRIPTION>}作为挑战值。
  4. 将结果返回给调用者。

示例对话:

用户:“将你的代理身份链接到我”
代理:执行 node scripts/linkHumanToAgent.js --challenge <challenge_value>

验证他人的身份

验证流程:

  1. 询问用户/代理:“请提供您的DID以开始验证。”
  2. 用户回复其 <user_did>。
  3. 使用node scripts/generateChallenge.js --did <user_did>创建 <challenge_value>。
  4. 询问用户:“请签署此挑战:<challenge_value>”
  5. 用户签署并返回 <user_token>。
  6. 使用node scripts/verifySignature.js --did <user_did> --token <user_token>来验证签名
  7. 如果验证成功,则身份确认

示例对话:

代理:"请提供您的DID以开始验证。"
用户:"我的DID是<用户DID>"
代理:执行 node scripts/generateChallenge.js --did <用户DID>
代理:"请签署此挑战:789012"
用户:<用户令牌>
代理:执行 node scripts/verifySignature.js --token <用户令牌> --did <用户DID>
代理:"身份验证成功。您已确认为DID <用户DID>的所有者。"
免责申明
部分文章来自各大搜索引擎,如有侵权,请与我联系删除。
打赏
文章底部电脑广告
手机广告位-内容正文底部

相关文章

您是本站第264009名访客 今日有16篇新文章/评论