| Internet-Draft | Cross-Protocol Semantic Equivalence & Me | November 2026 |
| Durga | Expires 6 May 2027 | [Page] |
Enterprise agent ecosystems routinely bridge tool invocations and task delegations across heterogeneous protocols, including Model Context Protocol (MCP), Agent-to-Agent (A2A), and OpenAPI/REST. During protocol translation, safety invariants, schema constraints, and mutability flags are frequently stripped—enabling cross-protocol capability downgrade attacks—while commercial settlement gateways erroneously bill on HTTP 200 transport responses rather than verified state-commit durability. This document specifies a cryptographic Cross-Protocol Semantic Equivalence Proof (CPSEP) and an 8-state Commit-Bound Metering Receipt (CBMR) protocol.¶
This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79.¶
Internet-Drafts are working documents of the Internet Engineering Task Force (IETF). Note that other groups may also distribute working documents as Internet-Drafts. The list of current Internet-Drafts is at https://datatracker.ietf.org/drafts/current/.¶
Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress."¶
This Internet-Draft will expire on 6 May 2027.¶
Copyright (c) 2026 IETF Trust and the persons identified as the document authors. All rights reserved.¶
This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Revised BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Revised BSD License.¶
When an A2A task is translated by a proxy into an MCP tool call and subsequently into a REST request, no cryptographic proof exists that the translated request preserved the tighter permission bounds, rate limits, and JSON Schema invariants of the originating envelope. Furthermore, inter-organization agent exchanges lack a non-repudiable, commit-bound metering receipt tied to Write-Ahead Log (WAL) finality, leading to billing disputes on aborted or rolled-back agent invocations.¶
This specification complements the foundational execution-trace verification architecture defined in draft-durga-agenttrust-trace-verification-00 by introducing deterministic, fail-closed wire semantics specifically addressing Cross-Protocol Semantic Equivalence & Metering.¶
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in BCP 14 ([RFC2119] [RFC8174]) when, and only when, they appear in all capitals, as shown here.¶
Protocol translation proxies and settlement gateways MUST emit and verify a JCS-canonicalized Semantic Metering Envelope carried in the Agent-Semantic-Metering HTTP header or JSON-RPC _meta block:¶
{
"cpsep_version": "1.0",
"exchange_tx_id": "urn:uuid:550e8400-e29b-41d4-a716-446655440000",
"protocol_bridge_path": ["A2A_1.0", "MCP_2025_11", "OPENAPI_3_1"],
"source_ast_merkle_root": "sha256:ef2d127de37b942baad06145e54b0c619a1f22327b2ebbcfbec78f5564afe39d",
"target_ast_merkle_root": "sha256:e7f6c011776e8db7cd330b54174fd76f7d0216b612387a5ffcfb81e6f0919683",
"downgrade_bitmask": 0,
"wal_commit_state": "COMMITTED_VERIFIED",
"prev_receipt_hash": "sha256:7902699be42c8a8e46fbbb4501726517e86b22c56a189f7625a6da49081b2451",
"signature": {
"alg": "Ed25519",
"kid": "sha256:b600306cfa76723fdec395e53a9b3d9fdb78b1e2d7a23c32fcbcd2dc6d0c4092",
"sig": "RpG18aHMw9iEfGEoM76MQSEqr2dOKh-tnLfgVKmFmEHgI5yJ4VUlHFHXUmZwooBPrhkpdan6R-n1ELDaST7vBw"
}
}
¶
Conforming verifiers and relying-party gateways MUST enforce the following deterministic invariants before releasing any downstream side effect:¶
When bridging requests across Model Context Protocol (MCP), Agent-to-Agent (A2A), and OpenAPI/REST gateways, parser differentials between TypeScript, Python, and Rust runtimes create exploitable semantic gaps. Conforming CPSEP proxies and CBMR settlement verifiers MUST enforce five pre-canonicalization parser invariants:¶
downgrade_bitmask and all metered token/unit counters MUST be exact JSON integers within [0, 2^53 - 1]. Boolean values (true/false coerced to 1/0 in Python), negative values, and non-finite IEEE-754 floats (NaN, Infinity, -Infinity, or 1e1000 exponent overflow) MUST cause immediate fail-closed rejection.¶
sha256: digests (source_ast_merkle_root, target_ast_merkle_root, prev_receipt_hash, kid) MUST match ^sha256:[0-9a-f]{64}$, and strings containing unpaired UTF-16 surrogates (U+D800..U+DFFF) MUST be rejected prior to RFC 8785 JCS serialization.¶
d, p, q, k).¶
The cross-protocol semantic equivalence and commit-bound metering mechanisms specified in this document are backed by open-source reference implementations and reproducible benchmark datasets:¶
agentrust-io/cmcp, agentrust-io/ca2a, agentrust-io/agentrust-telemetry, and GenAI-Security-Project/agent-control-standard ([AGENTIC-GOV-BENCHMARKS]).¶
xerj-org/xerj (engine/crates/xerj-common/src/hub_evidence.rs, [XERJ-HUB-EVIDENCE]).¶
All pre-image objects MUST be canonicalized using RFC 8785 JSON Canonicalization Scheme (JCS) prior to signature generation or verification under RFC 8032 Ed25519. Any clock skew exceeding 60 seconds, digest mismatch, or missing cryptographic binding MUST cause the verifier to fail closed and emit an auditable security rejection receipt. For the normative test vector in Section 3, the Ed25519 test key seed is 2a2a...2a (32 bytes of 0x2a), yielding raw 32-byte public key 197f6b23e16c8532c6abc838facd5ea789be0c76b2920334039bfa8b3d368d61 (kid = sha256:b600306cfa76723fdec395e53a9b3d9fdb78b1e2d7a23c32fcbcd2dc6d0c4092), and the full RFC 8785 JCS-canonicalized envelope (710 bytes) hashes to SHA-256 c3c30e610159c85b7ea4c29c7e70ea278373e646fe618b596447279b1c74e611. This specification cross-references the companion Internet-Drafts ([I-D.durga-agenttrust-trace-verification], [I-D.durga-wimse-ctx-isolation], [I-D.durga-pquip-pqc-agentic-delegation], [I-D.durga-agent-tx-compensation-lease]), external Verdict Record evidence binding ([I-D.wright-verdict-record]), Remote Attestation ([RFC9334]), Merkle Tree domain separation ([RFC9162]), and the 100-scenario OWASP ASI01-ASI10 benchmark ([OWASP-ASI-BENCHMARK-DOI]).¶
This document requests IANA registration of the media type application/agent-metering-receipt+json and the registry IETF Agent Metering Commit States (RESERVED, VALIDATED, EXECUTING, COMMITTED_VERIFIED, ABORTED_PRE_COMMIT, TIMED_OUT, COMPENSATED_ROLLED_BACK, SETTLED), alongside the following header fields:¶