你知道钱是谁花的,但不知道是谁让代理花的——这就是多人管一个代理账户最难追责的地方。追责不是看谁按了按钮,而是看谁的授权让那笔交易发生。
概念拆解:代理账户的"决策链"长什么样
普通多签钱包的追责逻辑很简单:谁签的名,谁负责任。但代理账户里,花钱的是代理,决定让它怎么花的可能是任何一个人——写提示词的、配策略的、甚至一个爬回来的网页。
把"签名"当成唯一证据,你根本找不到责任人。正确的追责方式是,把每笔自动付款拆成三段来看:
谁允许代理这么花? —— 策略配置(额度、白名单、时间窗口)
谁触发了这个动作? —— 输入数据或指令
谁执行了签名? —— 代理本身的私钥或会话密钥
追责追的是第一段和第三段之间有没有被篡改的痕迹,而不是只看签名。
对比选择:三种追责方案的取舍
| 方案 | 核心机制 | 适合谁 | 追责颗粒度 |
|---|---|---|---|
| 哈希链审计日志 | 每条操作记录+上一条哈希,篡改即断裂 | 需要防抵赖的团队 | 工具级,含策略决策理由 |
| PEAC可验证证据 | 将授权和结算事件签名成可第三方验证的凭证 | 需要外部审计的机构 | 授权级,含principal/delegate |
| 政策引擎+审批流 | 超阈值需多人批准,每步留痕 | 有审批流程的企业 | 人为批准级,含决策人 |
怎么做:落地可追责的框架
第一步:开启哈希链审计日志
[做什么] 让每笔操作记录不可篡改,不依赖人工截图或Excel。
[怎么做] 用支持哈希链审计日志的工具(如 Stellar Agent Wallet)。每笔工具调用、策略变更、付款授权都会记录一条JSONL,包含时间戳、工具名、策略决策(允许/拒绝)、前一条记录的哈希。
日志格式类似:
{
"ts": "2026-08-13T10:35:00Z",
"tool": "x402_payment_authorized",
"policy_decision": "allow",
"prev_hash": "0x7a3f...",
"hash": "0x9c2e..."
}[完成标准] 运行 audit verify 命令,返回 chain intact,无断裂或HMAC不匹配警告。
第二步:记录"谁授权了这笔钱的用途"
[做什么] 把每笔付款和"谁允许代理这样花"绑定,而不是只看谁签了名。
[怎么做]
用
@t402/agent-policy这类政策引擎,在授权流程中注入principal(授权人)和delegate(代理)标识策略变更本身也要记录:谁在什么时候改了什么规则
[完成标准] 每一笔付款的审计记录里,都能追溯到对应的 principal,而不仅仅是 delegate。
第三步:对高额付款加"人肉确认"环节
[做什么] 超过阈值的付款,系统不直接签,等真人审批。
[怎么做] 用 @t402/agent-policy 的审批流,在策略里设 requiredApprovers。超阈值时生成待审批记录,发通知到指定邮箱。
policy: {
spendingLimits: {
perTransaction: { value: '100000000', decimals: 6, symbol: 'USDT' },
daily: { value: '500000000', decimals: 6, symbol: 'USDT' }
},
approvalThresholds: {
perTransaction: { value: '50000000', decimals: 6, symbol: 'USDT' },
requiredApprovers: ["该邮件地址已受到反垃圾邮件插件保护。要显示它需要在浏览器中启用 JavaScript。 ", "该邮件地址已受到反垃圾邮件插件保护。要显示它需要在浏览器中启用 JavaScript。 "]
}
}[完成标准] 超过阈值的付款,日志里出现 approval.created 事件,直到收到真人批准才继续执行。
常见失败原因
1. 日志只记了"交易哈希",没记"策略决策理由"。 区块浏览器只能告诉你钱去了哪,不能告诉你为什么代理会发起这笔交易。缺少 policy_decision 和 reason 字段的日志对追责几乎没有价值。
2. 多人共用同一个代理会话。 如果三个人共用同一个 delegate 身份来操作代理,所有操作在审计日志里都显示来自同一个签名者,彻底分不清谁是谁。
3. 策略变更没有审计痕迹。 如果有人悄悄把日限额从100 U改成10000 U,然后代理花了一大笔钱,你查付款记录只看到"额度充足",查不到额度是谁改的。
高危提醒:监管层面已经明确,即使付款是代理发起的,账户持有人对该支付行为负有最终责任。 多签和审计日志不是为了帮你"免责",而是为了帮你在出问题时能快速定位问题出在哪个环节、谁改了什么、谁该负责。没有可验证的证据链,所有责任最后都会落到账户持有人头上。
核验收尾
跑一次完整的追责测试:
让某个团队成员通过代理发起一笔付款
等代理执行完成后,导出审计日志
从日志中定位这笔付款,确认能找到:
谁发起的指令(
principal)哪个代理执行的(
delegate)策略决策结果(
policy_decision)前一条记录的哈希,能验证链条完整性
核验渠道: 运行 audit verify,链条通过。日志里能回答"谁让代理花这笔钱的"和"代理为什么能这么花"两个问题。如果答不上来,回去补策略决策记录或principal标识。



