Authorization Evidence Chains: Composing Heterogeneous Agent-Action Evidence (EP-AEC)
draft-schrock-ep-authorization-evidence-chain-05
This document is an Internet-Draft (I-D).
Anyone may submit an I-D to the IETF.
This I-D is not endorsed by the IETF and has no formal standing in the
IETF standards process.
| Document | Type | Active Internet-Draft (individual) | |
|---|---|---|---|
| Author | Iman Schrock | ||
| Last updated | 2026-08-02 | ||
| Replaces | draft-schrock-ep-action-evidence-graph | ||
| RFC stream | (None) | ||
| Intended RFC status | (None) | ||
| Formats | |||
| Additional resources |
GitHub Repository
Additional Web Page |
||
| Stream | Stream state | (No stream defined) | |
| Consensus boilerplate | Unknown | ||
| RFC Editor Note | (None) | ||
| IESG | IESG state | I-D Exists | |
| Telechat date | (None) | ||
| Responsible AD | (None) | ||
| Send notices to | (None) |
draft-schrock-ep-authorization-evidence-chain-05
Network Working Group I. Schrock
Internet-Draft EMILIA Protocol, Inc.
Intended status: Informational 3 August 2026
Expires: 4 February 2027
Authorization Evidence Chains: Composing Heterogeneous Agent-Action
Evidence (EP-AEC)
draft-schrock-ep-authorization-evidence-chain-05
Abstract
Consequential agent actions can produce heterogeneous identity,
delegation, policy, permit, approval, transparency, capability, and
execution artifacts. Each artifact can verify under its own
specification while still referring to a different action, filling a
different evidentiary role, or failing a relying party's freshness,
status, or inter-artifact binding requirement. This document defines
the Authorization Evidence Chain (EP-AEC): a transport-agnostic
composition object and a fail-closed evaluation algorithm that
preserves native verification, establishes exact material-action
matching, and evaluates a relying-party-pinned evidence requirement.
AEC produces SATISFIED or UNSATISFIED and a replayable evaluation
record. SATISFIED means only that the presented evidence filled the
relying party's named evidence requirement at the stated verification
time. It is not a universal authorization decision, a policy
language for the protected application, or proof of execution or
outcome. The executor makes the separate local AUTHORIZED decision
and controls consumption, invocation, and effect handling.
Qualification evidence can fill a named evidence role but cannot
authorize an action by itself. AEC introduces no new component
receipt type and does not replace any native verifier.
Status of This Memo
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."
Schrock Expires 4 February 2027 [Page 1]
Internet-Draft Authorization Evidence Chains August 2026
This Internet-Draft will expire on 4 February 2027.
Copyright Notice
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.
Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3
1.1. Scope and Non-Goals . . . . . . . . . . . . . . . . . . . 3
2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 4
3. The Authorization Evidence Chain Object . . . . . . . . . . . 4
4. The Relying-Party Evidence Requirement . . . . . . . . . . . 6
5. Relying-Party Acceptance Inputs . . . . . . . . . . . . . . . 7
6. Native Verification and Normalized Facts . . . . . . . . . . 8
7. Material-Action Matching . . . . . . . . . . . . . . . . . . 9
8. Requirement Expressions . . . . . . . . . . . . . . . . . . . 9
9. Verification Algorithm . . . . . . . . . . . . . . . . . . . 10
10. Evidence Evaluation Replay . . . . . . . . . . . . . . . . . 11
11. Human-Authorization Components . . . . . . . . . . . . . . . 12
12. Bounded-Capability Operation Components . . . . . . . . . . . 12
13. Position in the Effect-Boundary Lifecycle . . . . . . . . . . 13
14. Security Considerations . . . . . . . . . . . . . . . . . . . 13
15. Privacy Considerations . . . . . . . . . . . . . . . . . . . 15
16. Relationship to Other Work . . . . . . . . . . . . . . . . . 15
17. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 16
18. Changes in -05 . . . . . . . . . . . . . . . . . . . . . . . 16
19. Implementation Status . . . . . . . . . . . . . . . . . . . . 16
20. References . . . . . . . . . . . . . . . . . . . . . . . . . 16
20.1. Normative References . . . . . . . . . . . . . . . . . . 16
20.2. Informative References . . . . . . . . . . . . . . . . . 17
Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . . 18
Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 18
Schrock Expires 4 February 2027 [Page 2]
Internet-Draft Authorization Evidence Chains August 2026
1. Introduction
One consequential action can produce several independently useful
artifacts: a workload credential, a delegation record, a policy
permit, a named-human authorization receipt, a quorum, a bounded-
capability operation record, or a transparency receipt. These
artifacts answer different questions. A relying party may require
several of them for one action.
Native validity is not sufficient for composition. A valid permit
for action A and a valid approval for action B do not jointly
authorize either action. Likewise, two valid artifacts can still be
inadequate if the relying party required a fresher approval, a
checked revocation status, or a byte-backed relation showing that one
artifact explicitly references another.
EP-AEC provides the thin composition layer. It dispatches artifacts
to their native verifiers, maps only integrity-protected native
action commitments to the relying party's expected material action,
evaluates an evidence requirement owned by the relying party, and
records the exact inputs to that evidence decision. It does not
decide whether the protected application should act.
1.1. Scope and Non-Goals
This document defines:
* the EP-AEC-v1 composition object;
* the EP-AEC-REQUIREMENT-v1 relying-party evidence requirement;
* a verifier-result contract that keeps native verification separate
from material-action mapping;
* a fail-closed SATISFIED or UNSATISFIED evaluation; and
* the EP-AEC-REPLAY-v1 evaluation record and replay digest.
This document does not define a universal evidence taxonomy, a
general authorization policy language, a component receipt format, an
application allow or deny decision, a signed reliance-result format,
a transparency service, or an execution state machine. It does not
require a graph wire format or make presenter-asserted graph edges
authoritative.
Schrock Expires 4 February 2027 [Page 3]
Internet-Draft Authorization Evidence Chains August 2026
2. Terminology
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.
BCP 14 is indexed by the RFC Editor at [BCP14].
Native verifier A verifier selected by the relying party for one
artifact format and revision. It checks that format's syntax,
signatures, issuer, audience, validity, and format-specific
semantics under pinned trust inputs.
VERIFIED The native verifier accepted an artifact under the selected
native profile. This state alone says nothing about whether the
artifact denotes the expected material action.
MATCH A VERIFIED artifact's integrity-protected native action
commitment denotes the relying party's expected material action by
direct exact digest equality or by an exact, relying-party-pinned
CAID mapping profile.
SATISFIED Eligible evidence filled the relying party's evidence
requirement at the explicit verification time.
AUTHORIZED A separate local application decision permitting an
invocation. AEC does not produce this state.
Evidence digest The string "sha256:" followed by the lowercase
hexadecimal SHA-256 digest of an artifact's JCS [RFC8785]
serialization.
Normalized evidence fact A verifier-produced, bounded record of
native validity, material-action mapping, time and status checks,
and byte-backed bindings for one component. It is not supplied by
the presenter.
3. The Authorization Evidence Chain Object
Schrock Expires 4 February 2027 [Page 4]
Internet-Draft Authorization Evidence Chains August 2026
{
"@version": "EP-AEC-v1",
"action": { "...": "Action Object" },
"action_digest": "sha256:<hex>",
"action_caid": "caid:1:<action-type>:<suite>:<digest-b64url>",
"components": [
{
"type": "ep-quorum",
"label": "two-person human authorization",
"evidence_digest": "sha256:<hex>",
"evidence": { "...": "native artifact" }
},
{
"type": "policy-permit",
"evidence": { "...": "native artifact" }
}
],
"requirement": "ep-quorum AND policy-permit"
}
* @version (string, REQUIRED) MUST equal EP-AEC-v1.
* action (object, REQUIRED) is the closed Action Object to which the
evaluation is joined.
* action_digest (string, OPTIONAL) is descriptive. When present, it
MUST equal the verifier's recomputation over action.
* action_caid (string, OPTIONAL) is descriptive. It MUST NOT
establish its own mapping or trust. When the relying party
requires a CAID, the verifier recomputes or independently obtains
the expected CAID and compares it as specified in Section 7.
* components (array, REQUIRED and non-empty) contains type (string),
evidence (JSON value suitable for the native format), and optional
label and evidence_digest strings. A label is display-only. When
an evidence digest is present, the verifier MUST recompute and
compare it before native verification.
* requirement (string, OPTIONAL) is a presenter-supplied
description. It MUST NOT become the relying party's sufficiency
bar and MUST NOT produce SATISFIED.
The chain is a bundle, not an authority-bearing graph. Component
order is preserved for reporting, but order confers no semantics.
All credited relations between components come from integrity-
protected native bytes exposed by a trusted native verifier, never
from labels, ordering, or presenter-supplied edges.
Schrock Expires 4 February 2027 [Page 5]
Internet-Draft Authorization Evidence Chains August 2026
4. The Relying-Party Evidence Requirement
Before returning SATISFIED, a verifier MUST receive an EP-AEC-
REQUIREMENT-v1 object from relying-party-controlled configuration.
The chain document cannot supply or weaken it.
{
"@version": "EP-AEC-REQUIREMENT-v1",
"requirement_id": "treasury-wire-evidence@7",
"purpose": "pre-execution evidence check",
"expression": "ep-quorum AND policy-permit",
"freshness_sec": {
"ep-quorum": 300,
"policy-permit": 600
},
"status_required": ["ep-quorum"],
"role_constraints": [
{
"type": "distinct-subject-quorum",
"component_type": "ep-human-authorization",
"threshold": 2,
"subject_id_source": "native-verifier"
}
],
"required_bindings": [
{
"from_type": "policy-permit",
"relation": "permits",
"to_type": "ep-quorum"
}
]
}
* @version MUST equal EP-AEC-REQUIREMENT-v1.
* requirement_id is a relying-party identifier for the exact
evidence requirement revision. It carries no authority by itself.
* purpose is descriptive and MUST NOT alter expression evaluation.
* expression is REQUIRED and follows Section 8.
* freshness_sec is an OPTIONAL map from component type to a non-
negative maximum age in seconds.
* status_required is an OPTIONAL array of component types for which
a fresh authenticated status result is required.
Schrock Expires 4 February 2027 [Page 6]
Internet-Draft Authorization Evidence Chains August 2026
* role_constraints is an OPTIONAL array of closed evidence
constraints. This revision defines only distinct-subject-quorum.
Its component_type names an evidence role, threshold is an integer
greater than one, and subject_id_source MUST equal native-
verifier. A verifier counts distinct subjects only from
integrity-protected native subject identifiers returned by
eligible native verifiers. Presenter labels, signer-key
encodings, and unverified subject claims MUST NOT be counted.
* required_bindings is an OPTIONAL array of from_type, relation, and
to_type triples. Each triple requires at least one eligible
source component whose native verified bytes bind, under that
relation, the evidence digest of an eligible target component of
the named type.
The verifier MUST compute the requirement profile digest over the JCS
serialization of the complete requirement object. The requirement
object controls evidence sufficiency only. Application rules about
amounts, destinations, operator permissions, legal authority, risk
acceptance, or whether to execute remain in the separate local
authorization policy.
Initiator exclusion, executor exclusion, durable one-time
consumption, resource ceilings, and whether to execute are boundary
constraints rather than evidence-sufficiency constraints. They are
defined and enforced by the Action Evidence Boundary [EP-AEB]. AEC
MUST NOT report them as satisfied merely because an evidence
component asserts them.
5. Relying-Party Acceptance Inputs
Internal agreement among presenter-supplied artifacts cannot satisfy
a relying party. The verifier MUST receive these values from trusted
configuration or from the protected boundary that is about to act:
* the EP-AEC-REQUIREMENT-v1 object;
* the expected Action Object or its independently computed canonical
action digest;
* an expected CAID and mapping profiles when cross-format action
mapping is used;
* an explicit verification time;
* the native verifier revisions, trust anchors, audiences, freshness
inputs, and status sources selected for each component type; and
Schrock Expires 4 February 2027 [Page 7]
Internet-Draft Authorization Evidence Chains August 2026
* documented resource limits for parsing, nesting, component count,
expression size, and verifier execution.
These values MUST NOT be taken from the presented chain or from an
untrusted caller. If any required input is absent, malformed,
ambiguous, or outside its configured validity, the result is
UNSATISFIED.
6. Native Verification and Normalized Facts
AEC does not reinterpret a native signature or token. For each
component, a relying-party-selected native verifier first returns a
bounded internal result containing:
* native validity and a machine-readable failure reason;
* the integrity-protected native action commitment, if any;
* the protected issuance and expiration instants needed by the
selected freshness check;
* the protected issuer, audience, and format revision relevant to
the selected native profile;
* an authenticated status result and status-snapshot digest when
status checking is required; and
* zero or more relation and target-evidence-digest bindings
extracted from integrity-protected native fields.
A component reaches VERIFIED only when its native verifier succeeds.
AEC MUST NOT accept a presenter's verified Boolean, normalized fact,
mapping result, key, trust anchor, status assertion, or relation as a
substitute for native verification.
A deployment in which a protected boundary performs native
verification before calling the AEC evaluator MAY pass the verifier
results internally instead of repeating the cryptographic work. Such
results MUST be integrity-bound inside the same trust boundary to the
exact evidence digest, native verifier profile digest, trust
snapshot, and verification time. Serialized results received from
the presenter are evidence artifacts of their own and require a
native verifier; they are not trusted internal results.
Schrock Expires 4 February 2027 [Page 8]
Internet-Draft Authorization Evidence Chains August 2026
7. Material-Action Matching
Native verification and material-action matching are distinct and
ordered. Mapping MUST NOT inspect unverified claims as authoritative
input.
1. The boundary computes the expected action digest from the frozen
action it is actually preparing to perform.
2. The native verifier verifies the component and exposes only its
integrity-protected native action commitment.
3. If that commitment uses the same action representation and digest
algorithm, exact digest equality establishes MATCH.
4. Otherwise, a relying-party-pinned Action-Mapping Profile from
[CAID] projects the verified native payload to the expected CAID
action type. Only the CAID verdict EQUIVALENT_UNDER_PROFILE
establishes MATCH.
NOT_EQUIVALENT, INDETERMINATE, an unknown mapping revision, a lossy
projection, a presenter-selected profile, or a mismatch between the
projected CAID and the expected CAID is not MATCH and MUST make that
component ineligible. CAID carries content identity, not trust or
authorization semantics.
8. Requirement Expressions
The expression grammar uses ABNF and its core rules as defined by
[RFC5234]:
expr = term *(WS operator WS term)
term = ident / "(" WS expr WS ")"
operator = "AND" / "OR" / "&&" / "||"
ident = 1*(ALPHA / DIGIT / "." / ":" / "-" / "_")
WS = *(SP / HTAB / CR / LF)
An identifier matches a component type with at least one eligible
component. An unknown identifier evaluates to false.
Implementations MUST use a bounded parser and MUST NOT use a general-
purpose evaluator. AND and OR have equal binding strength and are
evaluated strictly from left to right. Parentheses are the only
precedence mechanism.
This expression deliberately answers only which evidence roles are
present. It has no variables for action parameters, principals,
entitlements, business risk, or effect state. Those belong to native
artifact verification, CAID mapping, or local authorization.
Schrock Expires 4 February 2027 [Page 9]
Internet-Draft Authorization Evidence Chains August 2026
9. Verification Algorithm
Given chain C and the acceptance inputs in Section 5, a verifier MUST
proceed fail-closed:
1. Strictly parse C as I-JSON [RFC7493] and enforce all configured
resource limits. Reject duplicate member names, non-integer
numbers, malformed Unicode, cycles in an in-memory object, and
unsupported versions.
2. Compute the canonical action digest over C.action. Compare it
with the executor-owned expected action digest. If
C.action_digest is present, compare it too. Any mismatch yields
UNSATISFIED.
3. Validate and digest the relying-party requirement. If the only
available requirement came from C, yield UNSATISFIED.
4. For each component in array order:
a. Compute its evidence digest. If a presented evidence digest
exists and differs, mark the component ineligible.
b. Invoke the selected native verifier or consume a trusted
internal verifier result as constrained by Section 6.
Exceptions and unknown verifier types make the component
ineligible.
c. Only after native VERIFIED, establish material-action MATCH
under Section 7. A different or indeterminate action makes
the component ineligible.
d. If the requirement sets a freshness bound for the component
type, require protected issuance time, verification time
within the native validity window, and age not exceeding the
bound. Future-issued, expired, missing, or malformed times
make the component ineligible.
e. If status is required for the component type, require an
authenticated, sufficiently fresh status snapshot under the
selected native profile. Revoked, unknown, stale, or
unauthenticated status makes the component ineligible.
f. Record a normalized fact including component index, type,
evidence digest, native verifier profile digest, native
validity, mapping verdict, freshness and status results, and
only the byte-backed bindings returned by the native
verifier.
Schrock Expires 4 February 2027 [Page 10]
Internet-Draft Authorization Evidence Chains August 2026
5. Construct the satisfied type set from eligible components only
and evaluate the relying-party expression. Evaluate every
role_constraints entry over eligible normalized facts only. A
failed or indeterminate role constraint yields UNSATISFIED.
6. For every required binding, require an eligible source and target
pair with matching types and a source native fact whose named
relation binds the target's exact evidence digest. A label,
component order, equal action digest, or presenter's relation
claim does not satisfy a required binding.
7. Return SATISFIED only if the expression is true, every required
binding exists, and every mandatory acceptance check succeeded.
Otherwise return UNSATISFIED.
8. Produce the replay record in Section 10. Any unexpected error at
any step yields UNSATISFIED and a bounded reason; it MUST NOT
yield a partial success.
The result MUST carry satisfied as a Boolean and SHOULD carry bounded
per-component reason codes. An implementation may retain a legacy
allow alias, but that alias MUST equal satisfied and MUST NOT be
interpreted as local AUTHORIZED.
10. Evidence Evaluation Replay
An evaluator MUST be able to emit an EP-AEC-REPLAY-v1 record. The
replay record is an evaluation output, not a presenter input:
{
"@version": "EP-AEC-REPLAY-v1",
"aec_digest": "sha256:<hex>",
"expected_action_digest": "sha256:<hex>",
"expected_caid": "caid:1:<action-type>:<suite>:<digest-b64url>",
"requirement_profile_digest": "sha256:<hex>",
"verification_time": "2026-07-27T17:00:00Z",
"facts": [ { "...": "normalized evidence fact" } ],
"satisfied": true,
"reasons": []
}
The aec_digest is the evidence digest of the complete EP-AEC-v1
object. Facts remain in component array order. Object members
inside each fact use JCS ordering. The replay digest is the evidence
digest of the complete EP-AEC-REPLAY-v1 record.
Schrock Expires 4 February 2027 [Page 11]
Internet-Draft Authorization Evidence Chains August 2026
Given the same AEC object, expected action inputs, requirement
profile, explicit verification time, normalized native facts, and
algorithm revision, implementations MUST compute the same replay
digest and SATISFIED result. Native verification can depend on trust
snapshots or status services; therefore the replay record MUST bind
the selected verifier-profile and status-snapshot digests needed to
identify those inputs. A replay record without the underlying
evidence and identified trust snapshots can identify a decision but
cannot independently prove that every recorded native fact was true.
The replay digest is not a signature, authorization, transparency
receipt, or current-status proof. Another format MAY sign or log it.
This document intentionally defines no signed reliance-result
envelope and no legal meaning for a SATISFIED result.
11. Human-Authorization Components
AEC does not infer that a generic operator signature, credential,
policy decision, or attested workload represents a named-human
approval ceremony. A relying party that needs an EMILIA human
authorization or quorum requires ep-receipt or ep-quorum explicitly.
The ep-receipt built-in MUST accept only a Trust Receipt under a
relying-party profile that pins the approver directory, accepted key
class, WebAuthn RP ID and signed-origin allowlist where required,
policy hash, log key, maximum evidence age, verification time, and
fresh registry snapshot as specified by [EP-RECEIPTS]. A bare
operator envelope is not an ep-receipt human leg.
The ep-quorum built-in MUST compare the presented quorum policy with
the relying-party-pinned policy and enforce the selected approver,
role, distinctness, origin, ordering, and freshness rules of
[EP-QUORUM]. A safety-critical profile requiring human separation
MUST require at least two distinct humans. A valid quorum under
presenter-selected keys or a weaker presenter-selected policy is
ineligible.
Credential validity and human operation remain distinct. A valid
credential identifies a key holder under its native profile; it does
not establish that a human operated an agent for this action,
reviewed the material fields, or held legal authority.
12. Bounded-Capability Operation Components
A static bounded-capability receipt authorizes capability issuance
and MUST NOT be treated as bound to every later exercise merely
because the proposed action falls within its scope.
Schrock Expires 4 February 2027 [Page 12]
Internet-Draft Authorization Evidence Chains August 2026
A bounded-capability-operation component is eligible only when its
native verified operation record binds the exact action and the
native verifier validates the referenced capability, issuance
authorization, scope result, and operation record. AEC does not
query or reserve current budget. A capability component MUST NOT
satisfy ep-receipt, ep-quorum, or another human role.
13. Position in the Effect-Boundary Lifecycle
AEC occupies one deliberately narrow transition in the effect-
boundary lifecycle described by [EP-AEB]:
native VERIFIED
-> material-action MATCH
-> AEC SATISFIED
-> local AUTHORIZED
-> atomic CONSUMED or RESERVED
-> INVOKED
-> EXECUTED, FAILED, or INDETERMINATE
AEC can orchestrate native verification and mapping itself or consume
trusted internal results from the same protected boundary. In both
arrangements, VERIFIED precedes MATCH, and both precede SATISFIED.
AEC MUST NOT collapse SATISFIED into AUTHORIZED, consume an
authorization, invoke an effect, classify an outcome, or reconcile an
indeterminate effect.
One-time consumption is stateful and remains at the effect boundary.
An offline SATISFIED result cannot prove that another executor has
not already acted. A consequential executor uses shared atomic state
keyed by an executor-derived action instance and preserves an
uncertain operation instead of blindly replaying it.
14. Security Considerations
*Presenter-selected sufficiency.* A presenter can construct a weak
requirement that its own evidence satisfies. The EP-AEC-
REQUIREMENT-v1 object MUST come from relying-party configuration.
C.requirement is descriptive only.
*Presenter-selected action.* Agreement among components proves only
internal agreement. The expected action digest and CAID must be
computed or selected by the protected boundary from the action it is
actually preparing to perform.
Schrock Expires 4 February 2027 [Page 13]
Internet-Draft Authorization Evidence Chains August 2026
*Cross-binding.* An attacker can splice individually valid artifacts
for different actions. Native verification before mapping and exact
MATCH for each eligible component are required. A label, shared
principal, shared session, or similar-looking parameter is not a
match.
*Unbacked relations.* A presenter can claim that one artifact
permits, delegates to, records, or supersedes another. AEC credits a
relation only when the trusted native verifier extracts the target
evidence digest and relation from integrity-protected native bytes.
An unbacked relation never satisfies a required binding.
*Verifier and key-role confusion.* Native verifiers, revisions, trust
anchors, mapping profiles, and human directories are relying-party
pins. They MUST NOT be accepted in the same transaction as
presenter-controlled evidence. A key trusted for one component role
does not automatically satisfy another role.
*Freshness and status.* Message freshness, artifact age, credential
validity, credential revocation, authority revocation, and policy
revision are separate checks. A current credential does not make old
per-action evidence fresh. A replay record captures the checked
instant and snapshots; it does not establish current status later.
*Replay overclaiming.* Deterministic replay shows that the same
normalized inputs produce the same evidence result. It is not a
refinement proof, a guarantee that a native verifier was correctly
implemented, or proof that the recorded external status snapshot was
honest.
*Resource exhaustion.* Implementations MUST bound JSON depth, node
count, component count, string bytes, expression tokens and depth,
binding count, native verifier work, and diagnostic output. Any
bound exceeded is UNSATISFIED.
*Host-language and transport boundaries.* Strict JSON parsing must
reject duplicate member names before ordinary object construction can
hide them. AEC inherits the confidentiality and integrity properties
of its transport. The evidence and frozen action passed to later
stages must not be mutable after evaluation.
*Signature overclaiming.* A valid signature establishes only the
signer and statement semantics of the selected native profile. It
does not inherently prove a natural person's identity, human
operation, comprehension, legal authority, safety, execution, or
outcome.
Schrock Expires 4 February 2027 [Page 14]
Internet-Draft Authorization Evidence Chains August 2026
15. Privacy Considerations
An AEC bundle can reveal identities, organizational roles,
destinations, resources, policy choices, and timing. Presenters and
relying parties SHOULD disclose and retain only evidence needed by
the selected requirement. A plain digest of low-entropy personal
data is not anonymization.
The replay record SHOULD contain normalized facts and content
digests, not unnecessary raw evidence. Even those facts can reveal
relationships and decision timing. Access, retention, and
correlation controls remain deployment responsibilities.
16. Relationship to Other Work
CAID [CAID] owns typed material-action identity and exact, relying-
party-pinned cross-format mapping. AEC uses CAID only after native
verification and does not add trust semantics to a CAID.
Authorization Receipts [EP-RECEIPTS] and Quorum [EP-QUORUM] define
two native human-authorization components. AEC composes them without
generalizing all evidence into those formats.
The earlier Action Evidence Graph draft (draft-schrock-ep-action-
evidence-graph-00) described content-addressed graph references,
relying-party evidence policy replay, a five-verdict classification,
policy packs, and a signed reliance result. This revision
incorporates the useful composition substance into AEC: relying-
party-owned evidence requirements, content-digested components, byte-
backed relations, normalized facts, and a replay digest. It
intentionally does not adopt the EP-AEG-v1 graph envelope, five-
verdict taxonomy, policy packs, or signed reliance-result format.
Revision -04 superseded draft-schrock-ep-action-evidence-graph-00 for
this evidence-composition and replay scope. This revision preserves
that consolidation.
Agent Qualification Statements [EP-QUALIFICATION] can be verified as
native components and can fill a relying-party-named qualification
role. Their observation and policy-satisfaction claims remain
bounded by their native profile; qualification MUST NOT be converted
into AUTHORIZED without the separate boundary decision and controls
described by AEB.
Schrock Expires 4 February 2027 [Page 15]
Internet-Draft Authorization Evidence Chains August 2026
17. IANA Considerations
This document has no IANA actions. It creates no universal
component, relation, verifier, action-mapping, requirement, reason-
code, or policy registry.
18. Changes in -05
* Added a closed distinct-subject-quorum role constraint that counts
only native-verifier-derived subject identities.
* Made the boundary between evidence sufficiency and AEB authority
constraints explicit: initiator exclusion, executor exclusion,
one-time consumption, and execution remain outside AEC.
* Clarified that qualification statements can fill a named evidence
role but never authorize an action by themselves.
* Updated implementation status and successor references without
changing the EP-AEC-v1 component envelope.
19. Implementation Status
The Apache-2.0 reference implementation includes native-verifier
dispatch, exact action binding, bounded requirement evaluation,
freshness and authenticated current-status checks, distinct-human
quorum, deterministic evaluation records, and fail-closed
configuration pins. Same-team ports and shared vectors demonstrate
implementation consistency; they are not independent implementations
or proof that a deployment has complete mediation.
The reference evaluator currently expresses its relying-party
requirement as a bounded role expression and obtains distinct-human
evidence through the native ep-quorum verifier. The new
role_constraints member and verifier-derived subject-counting
algorithm specified in this revision are not yet implemented in that
evaluator. Implementations MUST NOT claim conformance to that part
of this revision until they enforce the closed object and its refusal
behavior.
20. References
20.1. Normative References
[BCP14] Internet Engineering Task Force, "Key Words for Use in
RFCs to Indicate Requirement Levels", BCP 14, 2017,
<https://www.rfc-editor.org/info/bcp14>.
Schrock Expires 4 February 2027 [Page 16]
Internet-Draft Authorization Evidence Chains August 2026
[CAID] Schrock, I., "The Canonical Action Identifier (CAID)",
Work in Progress, Internet-Draft, draft-schrock-canonical-
action-identifier-01, July 2026,
<https://datatracker.ietf.org/doc/draft-schrock-canonical-
action-identifier/>.
[EP-QUORUM]
Schrock, I., "Multi-Party Quorum Authorization for High-
Risk Agent Actions (EP-QUORUM)", Work in Progress,
Internet-Draft, draft-schrock-ep-quorum-03, July 2026,
<https://datatracker.ietf.org/doc/draft-schrock-ep-
quorum/>.
[EP-RECEIPTS]
Schrock, I., "Authorization Receipts for High-Risk Agent
Actions", Work in Progress, Internet-Draft, draft-schrock-
ep-authorization-receipts-08, July 2026,
<https://datatracker.ietf.org/doc/draft-schrock-ep-
authorization-receipts/>.
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119,
DOI 10.17487/RFC2119, March 1997,
<https://www.rfc-editor.org/info/rfc2119>.
[RFC5234] Crocker, D., Ed. and P. Overell, "Augmented BNF for Syntax
Specifications: ABNF", STD 68, RFC 5234,
DOI 10.17487/RFC5234, January 2008,
<https://www.rfc-editor.org/info/rfc5234>.
[RFC7493] Bray, T., Ed., "The I-JSON Message Format", RFC 7493,
DOI 10.17487/RFC7493, March 2015,
<https://www.rfc-editor.org/info/rfc7493>.
[RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC
2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174,
May 2017, <https://www.rfc-editor.org/info/rfc8174>.
[RFC8785] Rundgren, A., Jordan, B., and S. Erdtman, "JSON
Canonicalization Scheme (JCS)", RFC 8785,
DOI 10.17487/RFC8785, June 2020,
<https://www.rfc-editor.org/info/rfc8785>.
20.2. Informative References
Schrock Expires 4 February 2027 [Page 17]
Internet-Draft Authorization Evidence Chains August 2026
[EP-AEB] Schrock, I., "The Action Evidence Boundary for
Consequential Agent Effects", Work in Progress, Internet-
Draft, draft-schrock-action-evidence-boundary-03, July
2026, <https://datatracker.ietf.org/doc/draft-schrock-
action-evidence-boundary/>.
[EP-QUALIFICATION]
Schrock, I., "Agent Qualification Statements", Work in
Progress, Internet-Draft, draft-schrock-agent-
qualification-statements-00, July 2026,
<https://datatracker.ietf.org/doc/draft-schrock-agent-
qualification-statements/>.
Acknowledgments
Review of adjacent work sharpened the separation among native
validity, cross-format action mapping, evidence satisfaction, local
authorization, credential status, human operation, and effect truth.
Acknowledgment does not imply endorsement.
Author's Address
Iman Schrock
EMILIA Protocol, Inc.
United States of America
Email: team@emiliaprotocol.ai
Schrock Expires 4 February 2027 [Page 18]