研究者提出多智能体系统输出与委派链路双层存证方案
Attesting Outputs and Delegation Ancestry in Multi-Agent AI Systems
部署方侧两层证明比较三种谱系:子密钥攻破后仅共签DAG拒绝未授权父绑定。
- 多智能体跨独立部署方委托后,凭证能说明谁可以行动,却不必绑定后来放出的字节,也不能在子密钥被攻破后证明父方批准了动态创建的边。事后调查需要这两类证据。
- 可信部署方运行时对放出字节的哈希签名,不检测提示注入。谱系层比较签名链表、Merkle链变体与共签DAG:跨部署方边要求父方与子方对同一边清单签名,父方不在线或拒签则委托失败关闭。
- 未攻破密钥下,签名父承诺可拒绝中间节点拼接,独立节点签名不能。子密钥攻破后链表与Merkle接受任意父绑定,共签DAG拒绝。固定变异27,000次均未接受无效呈现。现场30个共签任务全部通过完整核验,受控的仅子密钥声称被拒绝。
- 作者称Merkle部分路径证明未评估;被攻破运行时、开放注册表、端点共谋、流式顺序与提示注入防护在模型外。实验覆盖固定变异矩阵、环回E12与三区AWS的1,000条有效共签路径;云端数字不含TLS/mTLS、KMS与模型服务时延。
- 基准
- 固定对手矩阵 B1–B5LangGraph 1.2.6 StateGraphE12 MCP/A2A/Ollama 现场工作流E10 进程分离E11 容器E11–AWS 三可用区
- 指标
- 无效呈现接受数Wilson 95% 上界谱系核验时延签发时延完整核验时延端到端时延
研究者提出一种面向多智能体系统的双层存证设计,用于在事故后回答两个问题:哪个部署方发布了被报告的字节,以及每条跨部署方边是否获得授权。该设计不依赖共享权威、公共日志或预先约定的工作流,由受信任的部署方运行时对每次发布输出的哈希签名,并以链路证据记录边的授权情况。在统一威胁模型下,作者比较了签名链表、Merkle 链变体和共同签名 DAG 三种方案:子密钥被攻破后,单签名设计允许未授权的父级绑定,而共同签名 DAG 因要求父级授权该边而拒绝该绑定。在 Apple M1 Pro 上,仅链路检查每跳耗时 24.3-499.2 微秒;在本地多服务工作流中,父级发现子级的 A2A Agent Card,子级调用 MCP 工具并发布本地 LLM 输出,30 个签名 DAG 任务全部通过完整验证,仅凭子密钥的受控声明被拒绝,平均端到端延迟 813.1ms,无证据时为 770.8ms。
深度解读
这篇论文试图解决什么问题?
事后要核对接管字节的部署方,以及每条跨部署方边是否经父方授权。
跨部署方动态委托事后,须核对这些字节由哪个部署方放出,以及每条跨部署方边是否经双方授权。
- 场景:作者称智能体经多跳委托跨越独立运营的部署方。出事之后要回答哪一个部署方放出了这些确切字节,父部署方是否授权了这一条边。这是事后证据问题,不是对智能体行为的断言。
- 不足:作者称凭证在签发时记录主体与权限,不必绑定后来的输出,也不必给出完整授权路径。G1:凭证不见证运行时后来放出的字节。G2:子密钥被攻破后,仅子方对新父引用的签名不能说明父方批准了该关系。
- 观察:作者认为两缺口要靠两层可独立核验的证据,而不是更强凭证。核验者可能没有共享授权服务、公开日志或预承诺工作流,只能根据呈现路径作决定。
- 做法:提出部署方侧两层证明,比较签名链表、Merkle 链变体与共签 DAG(SIGNED-DAG)。运行时对放出输出的哈希签名;谱系记录边授权。作者称原语是标准的,贡献在部署方侧绑定与该设定所需的证据。
- 威胁模型:
- 目标:O1 拒绝替换输出与重放(核验者有持久 nonce 状态);O2 拒绝畸形、截断或拼接谱系;O3 在单一子部署方密钥被攻破时,拒绝父方未授权的新跨部署方边。不阻止恶意指令,不判断输出是否安全,不执行应用策略。
- 对手:可控制工具响应与智能体行为,观察公钥与核验者源码,重放或修改传输中的证据,构造任意结构载荷。不能伪造未攻破密钥的签名、找到击败哈希绑定的碰撞或原像、攻破可信运行时,或自行登记部署方。
- 系统与信任:部署方托管智能体并控制签名密钥,调用另一智能体时发出委托记录。消费者核验根到叶的呈现路径。信任运行时如实签名、私钥、准入注册表与核验者;智能体、工具、传输与所供链文档可不被信任(Table II)。提示注入防护在范围外(Table III)。
有哪些相关研究?
作者把本文放在事后字节绑定与双边边授权,并与AIP、HDP、MemLineage对照。
相关工作按授权与行为证据、委托谱系、来源链,以及同期身份协议分组。
- 智能体授权与行为证据:Greshake 等(2023)讨论间接提示注入改变已通过授权检查之后的行为。Chan 等(2024)把行为核验标为缺失能力。作者称高探针 AUC 本身不必确立恶意内容检测。MCP 标准化工具与上下文交换,A2A 规定智能体间通信的协议级认证与授权。作者称部署方侧绑定只记录放出字节,既不判断语义安全,也不阻止其产生。
- 委托与审计原语:W3C DID 与 Verifiable Credentials 提供单跳原语。IETF 智能体审计架构在更广互操作框架中记录委托转移(Kuehlewind 与 Birkholz,文中为进行中的 Internet-Draft)。South(2025)处理向智能体认证委托权限。Llambí-Morillas 与 Fernández-Fernández(2026)形式化具体请求在执行上下文中满足策略的证据。作者称本文更窄:绑定放出字节,并指出子密钥攻破后跨部署方边需要哪些签名;证据可供给上述授权与审计层。
- 来源与链完整性:in-toto(Torres-Arias 等,2019)核验预先承诺的软件供应链布局。SPIFFE/SPIRE 从已登记信任域签发工作负载身份并支持更新传播。作者称本文是在独立运营的部署方之间按需创建委托,没有公开日志或预先声明的图。
- 同期协议与互补控制:AIP 使用只追加的能力令牌,以及可选的、由智能体签名的最终结果哈希;Table I 注明该可选哈希不计为部署方侧绑定。HDP 把密钥攻破排除在外。MemLineage 针对记忆完整性。Mandato 针对行动前的策略符合性。信息流控制处理行为被攻破。JWT 与 OAuth 表达已签名声明和委托权限;作者称它们本身不把后来的字节绑到凭证,也不建立完整谱系路径。
- 基线与比较对象:实验内比较 NO-CHAIN、HASH-ONLY、NAIVE-SIG,以及签名链表、Merkle 链变体、SIGNED-DAG。评测不是公开基准跑分,而是固定结构变异、LangGraph 1.2.6、进程/容器/三可用区 AWS,以及 MCP、A2A 与本地大模型现场工作流。Table I 在属性上对比 AIP、HDP、MemLineage:作者把部署方侧输出绑定、比较性链分析、父边共签、子密钥攻破分析与结构核验测试标为本文有而三者没有(HDP 的子密钥项标为 Excluded)。
- 定位:作者把目标定为事后证据,即放出字节,以及一条边的双边部署方授权。作者称区别在于部署方侧绑定,以及子密钥攻破后哪一种构造要求父方同意。
论文如何解决这个问题?
运行时签名放出字节;跨部署方边由父方与子方共签,单签构造不要求父方同意。
两层证据分开回答两个事后问题:Layer 1 由部署方运行时绑定放出字节,Layer 2 比较谱系构造,跨部署方边采用共签 DAG。
系统模型与结构攻击
- 角色:主体把任务委托给部署方 DA、DB、… 运营的智能体。部署方托管智能体、持有签名密钥,并在调用另一智能体时发出委托记录。记录含签发者、子实例、提议的父节点、声明深度、到期时间、nonce 与证据构造。原型没有单独的全局 chain_id,链是有序呈现的根到叶路径。
- 两类证据:输出证据把部署方凭证绑到其运行时放出的字节。谱系证据把每条委托记录绑到父节点;跨部署方边可要求两端都批准。O1–O3 只覆盖事后证据。
- 结构攻击:B1 孤儿插入,B2 中间节点删除并重连,B3 跨链移植,B4 已有子节点后修改祖先。B5 兄弟扇出在有效父节点下创建多个有效子节点,需要签名的子节点上限加核验者状态,不是无状态密码谓词(Table III)。截断靠签名深度,重放靠 nonce 与到期,输出替换靠签名哈希。
输出证明(Layer 1)
- 放置:部署方在运行时产出输出之后、交付或继续委托之前做绑定。智能体既不持有签名密钥,也不填写被签名字段。
- 记录:版本化记录含实例与系统标识、部署方名称、创建与到期时间、父引用、声明深度、链证明、SHA-256 的 output_hash、128 位 nonce、被签名的 binding_scope、生命周期元数据及可选策略字段。信封另带由公钥导出的 key_id。部署方用 Ed25519 对完整记录的确定性、递归按键排序 JSON 做主签名。
- 核验:在可信本地注册表解析部署方,核对 key_id 匹配且未撤销,核验主签名与有效期,并对消费者提供的精确字节重算哈希。拒绝同一呈现链中的重复 nonce;若提供持久 nonce 存储,也拒绝该核验者此前消费过的 nonce。
- 粒度:模式可签名 per_session、per_turn、per_tool_call、per_n_tokens,但原型不实现会话标识、段索引、工具调用标识或流式顺序核验器。作者称若可信运行时签下攻击者指示的输出,记录只如实证明该事实。
三种谱系构造(Layer 2)
- 判据:R1,密钥未攻破时把节点绑到父节点,使 B1–B4 可检测;R2,消费者无需公开日志即可核验完整路径;R3,另一部署方的子节点声称跨部署方父节点时必须有父方同意。作者称 R3 是密钥攻破设定下的区分点。
- 签名链表:prev_hash 为父记录规范 JSON 的 SHA-256,签发方签名含该字段的完整记录。作者称相关密钥仍保密时满足 R1 与 R2,每跳一次哈希与一次签名检查;不满足 R3,子方可指向任何公开可见的父记录。
- Merkle 链变体:用当前谱系前缀的 Merkle 根代替逐跳父承诺,叶为规范节点表示。作者称全路径核验只多一次一致性检查,不引入另一个授权主体;被攻破的子方可重算受影响的根并签名新节点,因此也不满足 R3。作者称纳入它是因为它常被建议用于来源证明。
- 共签 DAG:跨部署方边由父方 DA 与子方 DB 对同一份域分隔的规范边清单签名。子签名表示 DB 接受委托,父签名表示 DA 授权这一条边。同部署方边只需本地签名。父方创建边时必须在线;拒签或计数器签名超时则委托失败关闭。部署方可用链表表示同部署方跳,并把跨部署方请求排队。进程内测试架集中访问共签者;进程、容器与 AWS 实验另行行使远程签名者 RPC。
- 边绑定:τ = Canon(domain, SHA256(Canon(vA)), v̄B)。v̄_B 是把正在生成的签名列表置空后的子记录,以避免签名循环;τ 绑定父回执摘要与其余子字段,子方主签名再封存完成记录。域标签用于避免边签名被另一协议重新解释。
完整性、注册表与密码实例
- 深度与生命周期:每条记录含被签名的 ancestry_depth,条数与声明深度不一致则拒绝。nonce 防止同一核验者重用记录。共签边把构造标识、共签者集合与子方 nonce 放进边清单,没有单独的边 nonce。生命周期事件为 new、reload、branch、composite、fine_tune;作者称当前评估不声称完成生命周期语义审计。
- 注册表:本地授权公钥表类似 TLS 信任库,可本地撤销。作者称未实现生产密钥轮换、持久分布式撤销传播或跨核验者重放存储。作者称协议不保护攻击者可自行登记部署方的开放生态。
- 密码:Ed25519 与 SHA-256 是实现选择。分析使用选择消息下的强签名不可伪造性,以及哈希抗碰撞(需要时还有抗原像)。原型序列化在原型内确定,但不是完整的 RFC 8785/JCS。作者给出边授权博弈:对手持有一个子密钥,若能使核验者接受一条未由未攻破父方签名的跨部署方边则获胜。作者称在 Ed25519 的 SUF-CMA 与 SHA-256 抗碰撞下,SIGNED-DAG 的获胜概率可忽略;链表与 Merkle 在被攻破方为子端点时获胜概率为 1。
论文做了哪些实验?
子密钥攻破后仅共签DAG拒绝任意父绑定;27,000次无效呈现均被拒绝。
实验设置
- 平台:除另行说明外,为 MacBook Pro、Apple M1 Pro(6 个性能核、2 个能效核)、16 GB 统一内存、macOS 15.7.4;Python 3.11,cryptography ≥ 42,Ed25519,确定性本地 JSON(非完整 JCS)。
- 构造与矩阵:NO-CHAIN、HASH-ONLY、NAIVE-SIG、LINKED-LIST、MERKLE、SIGNED-DAG。当前修订对每个设计–攻击对做 1,000 次试验。意外的核验者异常中止实验,不记为拒绝。
- LangGraph:1.2.6 StateGraph,三节点 Planner → Researcher → Writer,Writer 在第二部署方;确定性输出,无大模型客户端;签名钩子为链表。
- 现场与云端:E12 为三个仅环回进程:父签名者、子 A2A JSON-RPC 智能体、MCP Streamable-HTTP 工具;子文本由 Ollama llama3.1:latest、temperature 为零生成。E11–AWS 为三个不同可用区的 Amazon Linux 2023 t3.small:父签名者、子签名者、仅公钥协调者。
- 指标:结构呈现被接受或拒绝;零接受格子报告 Wilson 95% 上界。时延含仅谱系检查、签发、完整核验与端到端。Table VII 注称受控的仅子密钥声称不是攻击成功率估计。
- 历史活动:Table IV 将大模型引导的结构活动标为 Historical、针对链表,当前边修订后未重跑。作者称缺少提示词、变体或修订元数据,只作探索性上下文。
主结果
子密钥攻破与共谋下的核验结果据 Table VI(链表与 Merkle 在该表合并报告):
被攻破方与目标 链表 / Merkle SIGNED-DAG 子方 DB,绑定任意父 接受 拒绝 父方 DA,子引用出现后改写父 拒绝 拒绝 同一部署方,改写整段后缀 接受 接受 两端点,伪造跨部署方边 接受 接受 - 作者称区分点是父方是否在边上签名。Figure 2 同样标出:三种设计都接受同部署方后缀改写;只有共签 DAG 拒绝任意跨部署方父绑定。Figure 1 在 σA 缺失时把仅子方签名标为 ACCEPT、SIGNED-DAG 标为 REJECT。
- 未攻破密钥时(Table V,✓ 表示攻击者可构造被接受的链):NO-CHAIN 与 HASH-ONLY 在 B1–B5 上均为 ✓。NAIVE-SIG 在 B2、B5 为 ✓,在 B1、B3、B4 为拒绝。链表、Merkle 与 SIGNED-DAG 拒绝 B1–B4;B5 标为在签名的 max_children 策略与核验者状态下拒绝。作者称独立节点签名检测不到中间拼接,签名父承诺是该情形的最低附加证据。
- 作者称 Table VI 只覆盖边的创建,不覆盖策略语义授权、撤销新鲜度,以及两端点共谋。注称子方对原父的签名承诺锚住原父,故父密钥被攻破后改写已有父引用会被拒绝。
固定变异符合性
- 测了什么:仅谱系为 3 种设计 × B1–B5 × 1,000;组合回执为 3 种设计 × B1–B4 × 1,000,并检查主签名、key_id、到期、输出哈希与 nonce。B5 只在仅谱系模式行使本地扇出检测器(Figure 3、Table IV)。
- 结果:27,000 次变异全部拒绝。每设计–攻击格 0/1,000,Wilson 95% 上界 0.38%;Figure 3 另按三种设计汇总为 0/3,000。组合回执的 B5 标为 N/A。
- 作者解读:作者称这不是经验安全界;在 Section III 假设下,一次成功编辑意味着谓词遗漏或不正确。Section III-E 称自适应与生命周期活动检验实现是否执行所述谓词,并不经验地验证 Ed25519 或 SHA-256;Section VI-C 称相应归档汇总不是修订后实现的验证。
时延与现场工作流
- 仅谱系:深度 5、1,000 次试验,均值链表 24.3 µs、Merkle 72.7 µs、SIGNED-DAG 499.2 µs。作者称不含主回执检查,不是完整核验成本;共签数字含修订后完整子边清单的核验。论文未报告上一边格式的过期序列化大小。
- LangGraph:100 次热身后 1,000 次执行,每条三节点链都通过组合核验。签名均值 0.171 ms/节点(p95 0.214 ms),或 0.512 ms/任务(p95 0.663 ms);回执–链核验均值 0.832 ms(p95 1.013 ms)。作者称这是本地协议开销,不是模型服务时延,且省略 SIGNED-DAG 的在线共签握手。
- E12 与 AWS:Table VII,每条件 10 次热身、30 个任务,条件顺序轮换,工具证据与提示词固定。无证据:30/30,端到端 770.8/846.0 ms,0 字节,仅子密钥声称不可审计。链表:30/30,826.2/941.1 ms,1,868 字节,接受该声称。SIGNED-DAG:30/30,813.1/927.7 ms,2,096 字节,拒绝该声称,且无任务中止。作者称共签均值比无证据高 42.3 ms(5.5%);其大模型生成均值 681.3 ms,子方签发 11.6 ms、完整核验 16.7 ms,证据比链表多 228 字节。链表端到端均值高于共签(826.2 ms 对 813.1 ms),作者未解释该次序。AWS 在 100 次热身、1,000 次试验中路径均通过且无中止;签发均值 3.651 ms(p95 4.384 ms),完整核验 5.015 ms(p95 6.642 ms)。持久重放、未登记父方与已撤销子密钥被拒绝,父方拒绝则签发中止。作者称这些数字排除 TLS/mTLS、KMS 签名、模型客户端与生产授权服务时延。
其他消融与分析
- E10(spawn/Pipe)与容器化 E11:各核验 1,000 条双签名者路径;正文未给出时延,称轨迹留在 artifact。
- 同部署方整段后缀改写与两端点共谋伪造边:Table VI 中链表/Merkle 与 SIGNED-DAG 均接受。
- 输出顺序与会话:Table III 标为 Not implemented,需要签名的序列字段。
- 历史大模型汇总:作者称不是当前安全证据(Table IV、Section VII)。
- 规范编码:Table III 将确定性本地序列化标为 Prototype scope,不是 JCS。
有什么可以进一步探索的点?
作者把部分路径证明、开放注册表、端点共谋、流式顺序和提示注入防护放在模型外。
作者指出的局限与后续方向
- 部分路径证明:Merkle 承诺可以支持部分路径证明,作者称未评估(Section VII)。
- 测量边界:LangGraph 使用确定性输出。E12 的环回服务是分开的部署方信任域,不是独立组织或 AWS 账户;未测量公网时延、TLS/mTLS、OAuth、KMS 或生产授权服务时延(Section VII)。
- 归档汇总:归档的大模型生成汇总不是当前安全证据(Section VII)。
- 模型之外:被攻破的运行时、开放注册表、跨核验者重放防护、生产密钥轮换协议、端点共谋、流式顺序语义、大模型质量与应用策略执行仍在模型之外(Section VII)。
- 不防提示注入:结论称该构造支持事后审计与归因,而不是提示注入防护(Section VIII)。
实验覆盖范围
- 当前确定性检查覆盖三种谱系设计的 B1–B5(仅谱系)与 B1–B4(组合回执),每格 1,000 次;未攻破密钥的期望结果另含 NO-CHAIN、HASH-ONLY、NAIVE-SIG(Table IV、Table V、Figure 3)。
- LangGraph 1.2.6 为 100 次热身后的 1,000 次三节点执行,签名钩子是链表,输出确定性且无大模型客户端,不含 SIGNED-DAG 在线共签(Section VI-D)。
- E12 使用 Ollama llama3.1:latest、temperature 为零,每条件 10 次热身、30 个任务;父方发现子方 Agent Card,子方调用 MCP 工具后再放出本地模型文本(Section VI-D.a、Table VII)。
- 进程分离 E10、容器 E11 与三可用区 AWS 各核验 1,000 条有效双签名者路径;AWS 时延排除 TLS/mTLS、KMS 与模型服务(Section VI-D、摘要)。
- 论文未报告历史大模型活动的提示词、变体与修订元数据,也未在正文给出 E10 与容器 E11 的时延。Section V-E 称当前评估不声称完成生命周期语义审计。输出顺序与会话核验在 Table III 标为未实现。
总结一下论文的主要内容
两层证明记录放出字节与边授权;子密钥攻破后只有共签DAG拒绝未授权父绑定。
部署方侧的两层证明,用来在多智能体跨部署方委托之后回答两个事后问题:谁放出了这些字节,这条跨部署方边有没有父方授权。
- 问题:凭证记录签发时的主体与权限,不绑定后来的运行时输出;子密钥被攻破后,只有子方签名的父引用不能说明父方同意。作者把这定为证据缺口 G1、G2,并写明构造不是提示注入防护。
- 方法:可信运行时用 Ed25519 签名放出字节的 SHA-256 与部署方元数据。谱系上,签名链表与 Merkle 链变体只由子部署方授权一条边;SIGNED-DAG 要求父方与子方同签域分隔的边清单,父方不在线或拒签则失败关闭。同部署方边只需本地签名。
- 安全结果:未攻破密钥时,签名父承诺可拒绝中间拼接,只签节点自身身份的 NAIVE-SIG 不能(Table V)。子方密钥被攻破后,链表与 Merkle 接受任意父绑定,SIGNED-DAG 拒绝(Table VI、Figure 2)。同部署方后缀改写与两端点共谋伪造边,三种设计都接受。
- 实现与开销:27,000 次固定变异均未被接受(每格 0/1,000,Wilson 95% 上界 0.38%)。深度 5 的仅谱系均值从链表 24.3 µs 到共签 DAG 499.2 µs。E12 中 30 个共签任务全部通过完整核验,端到端均值 813.1 ms,无证据路径为 770.8 ms;受控的仅子密钥声称被拒绝,链表条件则接受。三可用区 AWS 上 1,000 条有效共签路径均核验通过,完整核验均值 5.015 ms,该数字不含 TLS/mTLS、KMS 与模型服务。
- 作者结论:作者称单信任域可用链表;要抵抗子密钥攻破后的未授权跨部署方边,需要父方对完整边清单的共签。构造使输出与委托路径可审计,不阻止智能体被攻破,也不判断输出是否安全。