This document specifies a tamper-evident audit chain for the reasoning
and actions of a Non-Human Entity (NHE). Each audited event --- a reasoning
step obtained at the boundary to a model provider, or a tool invocation
obtained at the execution boundary --- is recorded as an entry whose bound
fields are hash-linked to its predecessor, so that any alteration, omission,
or reordering is detectable by an independent verifier. The chain binds
metadata (model, provider, subject identity, and reasoning scale) into the
entry hash, and supports a prove-without-exposing mode in which a verifier
confirms that an event occurred, with the attested metadata, without the
event's content being disclosed. Content storage is optional and its
retention is configurable independently of the chain, so content may be
redacted without destroying the chain's integrity. The entry data model and
canonical serialization are specified here; the wire and proof-export
encodings are deferred to the next revision.¶
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 12 February 2027.¶
A persistent autonomous agent takes consequential actions and reasons its
way to them. After the fact, an authorized party needs a record of what the
agent reasoned and did, whose integrity does not depend on trusting the agent
that produced it. A plain log does not provide that: the producer can rewrite
it. This document specifies a tamper-evident audit chain that does, and that
does so without forcing disclosure of the reasoning content itself.¶
Two properties distinguish this from a generic hash-chained log
(structurally, the audit chain is a close relative of transparency logs such
as Certificate Transparency [RFC9162]). First, it is
cross-layer: it captures reasoning at the boundary to a
model provider and tool invocations at the execution boundary, normalized
into one continuity-preserving chain. Second, it is
content-optional with proof-without-exposing: the entry
binds the reasoning's identity, provenance, and scale so a verifier can
confirm "this subject produced reasoning of this provenance and magnitude,
leading to this action" without the reasoning text ever crossing to the
verifier.¶
The content_mode field records, per entry, whether the reasoning or action
content is stored in full, represented only by its content_hash, or not
captured at all. Content retention is configurable independently of chain
retention. Because the chain binds only the content_hash and the metadata,
content may be deleted or redacted without breaking the chain:
the entry continues to prove that an event with the attested provenance,
scale, and identity occurred at its position, even after its content is gone.
This separation is what lets an operator satisfy data-minimization or erasure
obligations while preserving a verifiable audit.¶
Where content is stored, it SHOULD be protected with an authenticated
encryption scheme (for example AES-256-GCM) that binds the entry hash as
additional authenticated data, so that ciphertext cannot be transplanted
between entries. Implementations MUST preserve nonce uniqueness: under a
long-lived per-subject key with random 96-bit nonces, the key MUST be rotated
before the per-key record count approaches the birthday bound
([RFC5116] and NIST SP 800-38D), or a deterministic per-record
nonce MUST be used.¶
A holder of the proof-access scope, without the content-access scope, can
obtain a proof that a given entry exists in the chain at a given index with
the attested metadata (subject, provider, model, scale, capture and content
modes) and is correctly linked to its neighbors --- without receiving the
entry's content. This is the property that makes inspectability deployable:
an auditor confirms "the correct model was used, reasoning of the expected
magnitude occurred, and it led to this action" while the reasoning text
itself remains confidential. The proof-access scope and the content-access
scope MUST be separately enforceable; granting proof access MUST NOT imply
content access.¶
An implementation MAY compute, over a trailing window of a subject's
entries, a reasoning-complexity measure (token_count, or byte_count when
tokens are absent) and an action-complexity measure (a defined function of an
action's argument count, size, and sensitivity), and flag an entry whose
standardized residual between the two exceeds a configurable multiple of the
windowed standard deviation. A large divergence --- a consequential action
preceded by little reasoning, or vice versa --- is a signal worth surfacing.
This is an analysis over the chain, not a property of it, and is out of scope
for interoperation beyond the fields the chain already binds.¶
The chain provides tamper-evidence, not authorship: an unkeyed hash chain
proves internal linkage and that no entry was altered after the fact relative
to its neighbors, but a party able to rebuild the whole chain can produce a
consistent alternative. Authorship and non-repudiation require signing the
chain head (or entries) under the subject's identity key
[I-D.ruvalcaba-nhe-identity] and/or periodic external anchoring
(for example publishing chain heads to a transparency log
[RFC9162]); deployments needing to prove the log was not
wholesale rewritten MUST do one of these. The genesis anchor to subject
identity prevents cross-subject transplant and MUST be verified.¶
Content, where stored, is the sensitive part; its confidentiality rests on
the AEAD layer and on strict separation of the content-access and proof-access
scopes (Section 6). A verifier MUST NOT be able to escalate from
proof access to content access. Redaction of content MUST leave the bound
content_hash and metadata intact so that verification still succeeds over the
remaining entries; an implementation that deletes bound fields rather than
only unbound content breaks verifiability and is non-conformant. Single-writer
serialization (Section 4.3) is security-relevant: concurrent
appends without it can fork the chain. Finally, a failure to record MUST be
treated as a security event, not an operational nuisance --- the local
identity-anchored chain exists so that gaps are detectable rather than
deniable.¶