核心用法
8004-agent Skill 是专为 ERC-8004 "Trustless Agents" 标准设计的链上身份管理工具,实现 AI 代理的完整生命周期管理:钱包创建 → NFT 身份注册 → SIWA(Sign In With Agent)认证。
核心流程三步走:
1. 钱包与密钥隔离:代理通过 createWallet() 创建以太坊地址,私钥由独立运行的 keyring proxy server 托管,采用 AES-encrypted V3 JSON Keystore 或内存存储。代理进程仅能通过 HMAC-SHA256 认证接口请求签名,私钥永不进入代理内存。
2. 链上注册(SIGN UP):构建符合 ERC-8004 规范的 JSON 元数据文件,上传至 IPFS 或 Base64 Data URI 后,调用 Identity Registry 合约铸造 ERC-721 NFT。每个代理获得唯一的 agentId 和可解析的 agentURI,公开身份状态持久化至 MEMORY.md。
3. SIWA 认证(SIGN IN):实现类 SIWE/EIP-4361 的挑战-响应协议。代理签署结构化消息证明 NFT 所有权,服务器验证签名后查询链上 ownerOf(agentId) 确认身份,可附加声誉分数、服务类型等验证条件。
安全架构亮点:
- 进程级密钥隔离(agent vs keyring proxy)
- HMAC-SHA256 传输认证 + 30 秒时间窗口防重放
- 完整审计日志(请求 IP、时间戳、成败状态)
- 即使代理进程完全被攻陷(提示注入、任意代码执行),攻击者只能请求签名,无法提取私钥
显著优点
- 标准化互操作性:基于 ERC-8004 统一协议,代理身份可跨平台验证
- 三层注册表设计:身份(NFT)、声誉(客户端反馈)、验证(zkML/TEE 第三方证明)分离,灵活可扩展
- 生产级部署支持:提供 Railway 一键部署、Docker 自托管、本地开发三种 keyring proxy 部署方案
- 多语言 SDK 支持:官方
@buildersgarden/siwaNode.js SDK 封装 HMAC 认证,同时提供 Python/纯 HTTP 手动实现参考 - EIP-7702 支持:通过
signAuthorization()实现账户抽象授权签名
潜在局限
- 基础设施依赖:必须独立部署并运维 keyring proxy 服务,增加架构复杂度
- Gas 成本前置:注册前需人工/外部方式为主地址充值 ETH(测试网依赖水龙头)
- 生态早期阶段:ERC-8004 标准及 SIWA 协议仍在演进,合约地址、字段规范可能变更
- 非 EVM 链限制:当前仅支持 EVM 兼容链(Base、Base Sepolia 等),无跨链身份原生方案
- 代理服务器单点风险:keyring proxy 若被物理入侵或配置泄露(
KEYRING_PROXY_SECRET),攻击者可伪造签名请求(虽仍无法导出私钥)
适合人群
- 需要为 AI 代理建立可验证链上身份的开发者与项目方
- 构建多代理协作网络、需标准化身份互认的协议团队
- 对密钥安全有极高要求的企业级代理部署(金融、医疗等敏感场景)
- 探索 AI + Web3 融合应用(去中心化计算市场、代理即服务 MCP 等)的创新团队
常规风险
| 风险类型 | 说明 | 缓解建议 |
|---------|------|---------|
| 密钥泄露(代理端) | 提示注入诱导代理暴露 `KEYRING_PROXY_SECRET` | 严格限制环境变量读取权限,使用机密管理服务 |
| 密钥泄露(代理端) | 代理服务器物理入侵或配置错误 | 最小权限部署,网络隔离,定期轮换 HMAC secret |
| 资金损失 | 代理地址私钥泄露(若使用 `AGENT_PRIVATE_KEY` 模式) | 优先使用 keystore 模式,测试网充分验证后再主网 |
| 身份伪造 | 服务器端未严格验证 `ownerOf` 或签名重放 | 严格遵循 SIWA 规范,验证 nonce、时间窗口、链上所有权 |
| 元数据篡改 | IPFS pinning 服务单点故障或内容替换 | 使用多 pinning 服务,或采用 Base64 Data URI 自包含方案 |
| 协议升级 | 标准合约地址、ABI 变更导致兼容性问题 | 关注官方文档更新,锁定 SDK 版本,预留升级机制 |