Skip to content

feat(spec): §8.13 Agent Declaration in Content Signatures#16

Merged
chrishooooo-netizen merged 3 commits intomainfrom
feature/agent-declaration-8-13
Apr 21, 2026
Merged

feat(spec): §8.13 Agent Declaration in Content Signatures#16
chrishooooo-netizen merged 3 commits intomainfrom
feature/agent-declaration-8-13

Conversation

@chrishooooo-netizen
Copy link
Copy Markdown
Contributor

@chrishooooo-netizen chrishooooo-netizen commented Apr 21, 2026

Summary

Adds a new normative section §8.13 Agent Declaration in Content Signatures to the TRAIL DID Method specification.

This section defines a cryptographic mechanism for binding AI-generated content artifacts to the agent DID that produced them and the organization accountable for that output. Verification requires no cooperation from the AI platform — the full chain is resolvable from the public did:trail registry.

What this adds

Subsection Purpose
§8.13.1 Motivation Problem statement: verifiers need to establish whether content is AI-produced, which agent produced it, and which organization is accountable
§8.13.2 Format AgentDeclaration — Data Integrity proof over JCS-canonicalized content manifest
§8.13.3 Verification Algorithm 7 steps: parse → hash check → DID resolution → proof verification → accountability chain → revocation
§8.13.4 Accountability Model Three patterns: self-hosted / managed platform (§7.5) / federated delegation (§3.4)
§8.13.5 EU AI Act Art. 12 Audit trail mapping: attribution, integrity, non-repudiation, revocation awareness, 6-month retention floor
§8.13.6 Security Considerations Crypto agility, replay, key compromise, content mutability

Design choices

  • Default cryptosuite: eddsa-jcs-2023 — consistent with §8.2
  • No platform cooperation required: verifier resolves the issuer chain through DIDs and VCs, not through the AI platform API
  • Data Integrity over JCS (RFC 8785): deterministic canonicalization; signatures survive copy/paste and re-publication
  • Detached form only: embedding in specific content formats (C2PA, PDF metadata, HTML) is out of scope and can follow in separate specs
  • Crypto agility gated by trail:supportedCryptosuites: downgrade attacks addressed explicitly in §8.13.6

Cross-references added

  • §3.4 — federation trust anchor (delegated accountability)
  • §4.3 — agent DID assertion capability
  • §7.5 — PlatformIdentityBinding VC as accountability root for managed platform deployments
  • §8.2 — supported cryptosuites
  • §8.6 — revocation check
  • §8.7 — federation revocation propagation
  • §8.8 — key rotation (post-rotation signatures MUST fail)

Open questions for review

  1. purpose enum: currently specified as "assertion" with free-form extensibility. Should we enumerate common values (assertion / generation / translation / summarization / moderation)? Left open intentionally — feedback welcome.
  2. contentType at hash time: derivative/re-encoded content requires a new declaration. Stated explicitly in §8.13.6. A ContentDerivation relationship could follow in v1.3.
  3. C2PA interop: §8.13 is independent of C2PA. An informative mapping annex (AgentDeclaration ↔ C2PA manifest assertions) could follow as a non-blocking companion document.

Not in scope for this PR

  • Embedding in specific content formats
  • JSON-LD context file (https://trailprotocol.org/ns/trail/v1) — will follow in a separate PR
  • Test vectors / conformance suite — planned under @trailprotocol/core v0.2.0

Review checklist

  • Motivation covers the actual problem (three accountability questions)?
  • Format choice (DataIntegrityProof + JCS) — any preference for JWS instead?
  • Verification algorithm complete (missing steps or edge cases)?
  • §8.13.4 managed platform pattern consistent with §7.5 expectations?
  • §8.13.5 EU AI Act framing — is 6 months the right retention floor?
  • §8.13.6 threat model — missed attack classes?

cc @AmeyParle

@chrishooooo-netizen chrishooooo-netizen changed the title feat(spec): §8.12 Agent Declaration in Content Signatures (DRAFT) feat(spec): §8.13 Agent Declaration in Content Signatures Apr 21, 2026
@chrishooooo-netizen chrishooooo-netizen marked this pull request as ready for review April 21, 2026 20:06
Normative section binding AI-generated content cryptographically to a
responsible identity. Offline-verifiable without AI platform cooperation.

Structure (mirrors §7.5 PlatformIdentityBinding pattern):
- 8.12.1 Motivation (three accountability questions)
- 8.12.2 AgentDeclaration format (Data Integrity proof over JCS-canonicalized manifest)
- 8.12.3 Verification Algorithm (7 steps, DID + VC resolution, revocation check)
- 8.12.4 Accountability Model (self-hosted / managed platform / federated)
- 8.12.5 EU AI Act Art. 12 Audit Trail (attribution, non-repudiation, 6-month retention)
- 8.12.6 Security Considerations (crypto agility, replay, key compromise, content mutability)

Default cryptosuite: eddsa-jcs-2023 (consistent with §8.2).
Cross-references: §4.3 agent DIDs, §7.5 PlatformIdentityBinding,
§8.6 revocation, §8.7 federation revocation propagation, §8.8 key rotation.

Numbering note: slot §8.12 reflects current main (§8.11 is latest).
If PR #13 (§3.4 + §8.7) lands first, this may reconcile to §8.13 during
integration — no content changes needed, title stays "Agent Declaration
in Content Signatures".

Closes part of v1.2.0 Superspreading critical path (TRAIL Challenge
Report 2026-04-21, Blocker 1).
§8.12 is now occupied by Protocol Roadmap (post PR #13 merge).
Agent Declaration moves to §8.13. All subsection refs and
cross-references updated. Changelog entry added.
Remove pitch-style opener, marketing adjectives, and legal overclaim.
- 'proliferates' → neutral problem statement
- 'solves this' → 'addresses this requirement'
- 'verifier-friendly' removed
- 'are a compliant mechanism' → 'designed to support compliance with'
@chrishooooo-netizen chrishooooo-netizen force-pushed the feature/agent-declaration-8-13 branch from 6ca7de5 to 44844d9 Compare April 21, 2026 20:27
@chrishooooo-netizen chrishooooo-netizen merged commit 8f3a581 into main Apr 21, 2026
3 checks passed
@chrishooooo-netizen chrishooooo-netizen deleted the feature/agent-declaration-8-13 branch April 21, 2026 20:27
chrishooooo-netizen pushed a commit that referenced this pull request Apr 22, 2026
…64 bits)

§6.3 (Hash and Key Rotation Semantics) contained [0:12], a leftover
from v1.1.0-draft before Change #16 (48-bit → 64-bit). The normative
definition in §4.5.2 already used [0:16] correctly. No behavioral
change for implementations.

Closes: stale-reference from v1.1.0-draft Change #16 (changelog §16)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant