<?xml version="1.0" encoding="UTF-8"?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude"
     category="info"
     docName="draft-das-agentic-adaptive-authorization-00"
     ipr="trust200902"
     submissionType="IETF"
     xml:lang="en"
     tocInclude="true"
     tocDepth="3"
     sortRefs="true"
     symRefs="true"
     version="3">
  <front>
    <title abbrev="Adaptive Authorization for Agentic AI">Adaptive Authorization for Agentic AI: Graduated and Escalated Execution Control for Critical Infrastructure</title>
    <seriesInfo name="Internet-Draft" value="draft-das-agentic-adaptive-authorization-00"/>
    <author fullname="Sangam Das" initials="S." surname="Das">
      <address>
        <postal>
          <city>Balasore</city>
          <region>Odisha</region>
          <country>India</country>
        </postal>
        <email>info@sangamdas.com</email>
      </address>
    </author>
    <date year="2026" month="September" day="23"/>
    <area>Security</area>
    <workgroup>Network Working Group</workgroup>
    <keyword>AI agent security</keyword>
    <keyword>agentic AI</keyword>
    <keyword>adaptive authorization</keyword>
    <keyword>runtime authorization</keyword>
    <keyword>continuous authorization</keyword>
    <keyword>critical infrastructure</keyword>
    <keyword>execution control</keyword>
    <keyword>execution finality</keyword>
    <abstract>
<t>AI agents are beginning to move money, release confidential data, change cloud privileges, and command industrial and other critical-infrastructure equipment. Existing controls answer whether an actor or request may proceed. These include authentication, OAuth scopes, conditional access, risk engines, and attestation. None of them, alone, guarantees three things about the consequence that finally occurs: that it is the exact act that was evaluated, that it is still permitted under current state, and that it cannot be replayed, substituted, or routed around the check. Risk engines that return ESCALATE widen this gap. The escalation is a label, and nothing forces the stricter conditions it implies to reach the point where the effect actually happens.</t>
<t>This document defines Graduated and Escalated Conditional Execution Finality. Every AI-generated operation is held as a non-effective Candidate Act. It is classified into a graduated release class rather than a binary allow/deny: ordinary, reduced, escalated, canary, sandbox, review, quarantine, or deny. For an elevated-risk act, the system first derives a narrower consequence boundary. It then binds the required controls into an act-bound, sink-bound Execution Handle; examples include a lower value, one named recipient, protected approval, short validity, fresh attestation, and single use. The Finality Sink at the last preventable boundary re-verifies those controls against current protected state, atomically with effectuation.</t>
<t>The contribution is threefold. First, escalation changes executable authority, not merely a decision record. Second, escalation is monotonic: it cannot be laundered, fragmented, downgraded, or resubmitted away on its path to the sink. Third, the Finality Sink is shown to be necessary but not sufficient, so finality is an end-to-end property rather than a gateway. The document specifies nineteen testable enforcement points, from the base execution-dependency mechanism to proxy, hardware, escrow, rollback, inheritance, and path-closure requirements. It also provides a comparison with conventional mechanisms, a security model with explicit assumptions and invariants, a latency model, escalation-specific attacks, and the problems it leaves open.</t>
    </abstract>
  </front>
  <middle>
<section anchor="intro" numbered="true"><name>Introduction</name>
<t>Modern autonomous systems increasingly go beyond generating recommendations. An AI agent may initiate a payment, SEND a confidential document, modify cloud infrastructure, update a database, deploy software, reconfigure a network, alter an industrial controller, transmit a communication, invoke another agent, or cause physical actuation.</t>
<t>The security problem therefore changes. It is no longer sufficient to ask "Is this agent authenticated?" It is also not sufficient to ask "Does this agent currently appear trustworthy?" or even "Was this request authorized?"</t>
<t>The additional question is:</t>
<blockquote><t><strong>Is the exact consequence that is now about to become effective still the consequence that was permitted, under the current protected state, at the intended execution boundary?</strong></t></blockquote>
<t>The broader execution-finality architecture <xref target="I-D.das-execution-finality-deployment"/> distinguishes approval of an agent or workflow from approval of the particular consequence. An authenticated and behaviorally normal system may still produce a Candidate Act that is stale, unsupported, unsafe, jurisdictionally improper, or otherwise unsuitable for effectuation.</t>
<t>This distinction becomes particularly important for systems that already perform continuous trust evaluation. A dynamic trust system may produce the following outcomes, based on identity, authorization scope, device attestation, behavioral confidence, provenance, or other signals:</t>
<artwork type="ascii-art"><![CDATA[
ALLOW
RESTRICT
ESCALATE
DENY
]]></artwork>
<t>Such a system may be valuable. However, an <tt>ESCALATE</tt> outcome does not by itself establish Escalated Conditional Finality. A trust engine generally determines whether an agent or request deserves additional scrutiny. Execution finality determines whether the <strong>exact resulting consequence</strong> can become real.</t>
<section anchor="conventional" numbered="true"><name>How This Differs from Conventional Solutions</name>
<t>Each conventional mechanism answers a real question, but none of them, on its own, binds the exact consequence to current authority at the point where the effect occurs.</t>
<table><thead><tr><th>Mechanism</th><th>What it establishes</th><th>What it leaves open</th></tr></thead><tbody><tr><td>Authentication, MFA, step-up</td><td>who the actor is, freshly</td><td>which act; whether the act changed before commit</td></tr><tr><td>Conditional access, Zero Trust session policy</td><td>whether a session or request may continue</td><td>per-act consequence; binding to the actual effect</td></tr><tr><td>OAuth scopes, Rich Authorization Requests <xref target="RFC9396"/></td><td>the class or description of a permitted action</td><td>commit-time currentness, single use, path completeness</td></tr><tr><td>Policy decision and enforcement points</td><td>a decision for a presented request</td><td>that the enforced effect equals the decided request</td></tr><tr><td>Risk scoring, adaptive authorization</td><td>an ESCALATE or RESTRICT label</td><td>encoding the implied conditions into executable authority</td></tr><tr><td>Remote attestation <xref target="RFC9334"/></td><td>the platform state of a component</td><td>the act that component processes</td></tr><tr><td>Payment transaction signing with dynamic linking</td><td>amount and payee bound to one consent</td><td>other sink types; graduated classes; revocation generations</td></tr><tr><td>Maker-checker, four-eyes approval</td><td>a second human agreed</td><td>binding of approval to exact act digest, sink, and freshness</td></tr><tr><td>Two-phase commit, sagas</td><td>atomic commit or compensation</td><td>whether the committed act was authorized; authority consumption</td></tr><tr><td>Rate limits, quotas</td><td>volume ceilings</td><td>exact-act binding for each individual effect</td></tr></tbody></table>
<t>The closest existing analogue is dynamic linking in payment strong customer authentication, which binds amount and payee to an authentication code. This document generalizes that idea in four directions:</t>
<ul><li>from payments to any consequence-bearing sink;</li><li>from one consent step to graduated release classes;</li><li>from a static binding to one re-verified against current policy and revocation generations;</li><li>from a single channel to authority that is consumed once and enforced on every consequence path.</li></ul>
<t>The contribution is therefore not a new trust signal. It is the composition that carries a risk decision, as enforceable and current authority, into the component that can still prevent the effect.</t>
</section>
<section anchor="requirements" numbered="true"><name>Requirements Language</name>
<t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>", "<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they appear in all capitals, as shown here.</t>
</section>
</section>
<section anchor="terminology-equivalence" numbered="true"><name>Industry-Standard Terminology and Functional Equivalence</name>
<t>This document uses the terms Candidate Act, Non-Effective State, Escalated Conditional Finality, Execution Handle, and Finality Sink to describe specific architectural functions. These terms are not intended to require new terminology where an implementation already provides functionally equivalent mechanisms.</t>
<t>Established security, cloud, distributed-systems, authorization, control-system, and safety fields already name mechanisms that overlap with these functions or can implement them:</t>
<ul><li>runtime authorization and continuous authorization;</li><li>adaptive authorization, risk-based authorization, conditional access, and step-up authorization;</li><li>policy decision points, policy enforcement points, and reference monitors;</li><li>bounded capabilities and transaction-specific or transactional authorization;</li><li>command gates, commit gates, safety interlocks, and actuation interlocks;</li><li>secure execution boundaries and privileged-action controls;</li><li>workload identity and trusted execution;</li><li>fail-safe enforcement.</li></ul>
<t>The architectural distinction in this document is therefore functional rather than terminological.</t>
<t>A <strong>Candidate Act</strong> is an operation that has been generated but has not yet been permitted to create the protected external consequence. It corresponds to a fully parameterized proposed transaction, pending command, staged operation, tool invocation, privileged action, data release, payment instruction, or actuation request.</t>
<t>A <strong>Non-Effective State</strong> is a state in which an operation may be evaluated, simulated, reviewed, narrowed, redacted, delayed, escalated, or rejected without yet producing the protected consequence. It corresponds to a staged, prepared, pending, escrowed, pre-commit, sandboxed, or otherwise non-effectuating state.</t>
<t>A <strong>Finality Sink</strong> is any component that retains the technical ability to prevent the protected consequence. It corresponds functionally to a non-bypassable policy enforcement point, reference monitor, transaction commit gate, command gate, egress enforcement point, safety interlock, actuation interlock, or secure execution boundary.</t>
<t>An <strong>Execution Handle</strong> binds execution authority to a defined act, scope, destination, freshness condition, and effectuation boundary. It corresponds functionally to a bounded capability, transaction-specific authorization object, one-time execution permit, sender-constrained or non-bearer authority object, protected command envelope, or equivalent mechanism.</t>
<t><strong>Escalated Conditional Finality</strong> corresponds to an execution-time form of adaptive or risk-based authorization in which an elevated-risk Candidate Act does not receive ordinary execution authority. Instead, the act remains non-effective while one or more stricter controls are applied. These may include reduced scope, shorter validity, protected human approval, multi-party approval, fresh attestation, redaction, limited financial value, recipient restriction, sandbox-first execution, canary execution, reversible execution, delayed release, enhanced monitoring, or other consequence-specific restrictions.</t>
<t>The important distinction is that an escalation result is not merely a label returned by a trust or policy engine. The additional conditions are carried into the authority governing effectuation and remain enforceable at the Finality Sink.</t>
<t>For example, a conventional adaptive-authorization system may determine:</t>
<artwork type="ascii-art"><![CDATA[
identity valid
behavior elevated-risk
device attested
risk threshold exceeded
        |
        v
     ESCALATE
]]></artwork>
<t>In the architecture described here, escalation continues into the execution-control path:</t>
<artwork type="ascii-art"><![CDATA[
Candidate Act
     |
     v
elevated-risk classification
     |
     v
Candidate Act remains non-effective
     |
     v
derive narrower permitted consequence
     |
     v
apply additional authorization controls
     |
     v
bind controls into execution authority
     |
     v
Finality Sink verifies current conditions
     |
     +------ valid ------> bounded effectuation
     |
     +------ invalid ----> no effectuation
]]></artwork>
<t>Accordingly, this document does not define another general-purpose trust score, identity system, authentication protocol, or policy language. Identity, workload identity, authorization, behavioral trust, attestation, Zero Trust controls, and risk engines can provide inputs to the finality decision. The additional property addressed here is control of the transition from an authorized or conditionally authorized operation to the exact externally effective consequence.</t>
<t>A conventional mechanism is functionally equivalent only to the extent that it provides the same required properties. Depending on the selected assurance profile, these can include:</t>
<ul><li>maintenance of the proposed operation in a non-effective state until required conditions are satisfied;</li><li>deterministic representation of all consequence-relevant fields;</li><li>binding of authority to the exact Candidate Act;</li><li>binding to the intended resource, recipient, destination, actuator, or Finality Sink;</li><li>current-state verification of policy, revocation, generation, freshness, and other required protected state;</li><li>replay-resistant or single-use authority where required;</li><li>preservation of escalation restrictions through downstream execution;</li><li>complete mediation of all paths capable of producing the protected consequence;</li><li>coupling of verification, authority consumption, and effectuation so that a time-of-check-to-time-of-use substitution cannot silently occur; and</li><li>safe failure and recovery behavior.</li></ul>
<t>This document uses established terminology throughout so that the architecture is recognizable to implementers in AI agent security and agentic AI; Zero Trust, continuous authorization, and workload identity; cloud and API security; payment and transaction security; critical infrastructure and industrial control; and autonomous and safety-critical execution systems.</t>
<t>The document does not claim that existing mechanisms using these terms automatically provide execution finality. Rather, it identifies the additional composition, placement, binding, current-state, and effectuation properties required for functional equivalence.</t>
</section>
<section anchor="scope" numbered="true"><name>Scope</name>
<t>This architecture is primarily intended for <strong>high-criticality systems and high-consequence operations</strong>. Examples include:</t>
<ul><li>financial transfers;</li><li>confidential data egress;</li><li>privileged cloud administration;</li><li>critical telecommunications changes;</li><li>industrial commands and infrastructure control;</li><li>safety-critical autonomous systems;</li><li>high-impact database mutations;</li><li>model deployment and similar operations.</li></ul>
<t>The architecture does not require every CPU instruction, memory access, model token, ordinary API read, or low-risk internal computation to pass through maximum-assurance finality verification. Assurance <bcp14>SHOULD</bcp14> be proportionate to consequence.</t>
<t>For high-criticality operations, a bounded increase in latency can be an acceptable engineering trade-off where it materially reduces the possibility of catastrophic or irreversible consequences.</t>
<blockquote><t><strong>For high-criticality systems, bounded verification latency may be acceptable; catastrophic unauthorized consequence is not.</strong></t></blockquote>
</section>
<section anchor="invariant" numbered="true"><name>Architectural Invariant</name>
<blockquote><t><strong>A Candidate Act remains non-effective until the conditions governing its authorized consequence are satisfied and the applicable Finality Sink verifies that the exact operation presented for effectuation remains within those conditions.</strong></t></blockquote>
<t>The broader architecture describes the same separation: AI output is converted into a Candidate Act and remains non-effective until finality predicates are satisfied and sink-verifiable authority is produced.</t>
<artwork type="ascii-art"><![CDATA[
AI / AGENT
    |
    | proposes operation
    v
CANDIDATE ACT
    |
    | still non-effective
    v
PROTECTED ENFORCEMENT DOMAIN
    |
    | evidence, provenance, authorization,
    | behavioral state, consequence analysis,
    | current policy, risk classification
    v
FINALITY CLASSIFICATION
    |
    +---- ordinary ----------------------+
    |                                    |
    +---- reduced scope -----------------+
    |                                    |
    +---- escalated conditional ---------+
    |                                    |
    +---- sandbox / canary --------------+
    |                                    |
    +---- quarantine / deny              |
                                         |
                                         v
                              EXECUTION AUTHORITY
                              / EXECUTION HANDLE
                                         |
                                         v
============== EFFECTUATION BOUNDARY ==============
                                         |
                                         v
                                  FINALITY SINK
                                         |
                       reconstruct actual consequence
                       verify current protected state
                       verify exact-act binding
                       verify escalation conditions
                       verify freshness/revocation
                       verify replay/consumption
                                         |
                          +--------------+-------------+
                          |                            |
                        ALLOW                        DENY
                          |                            |
                          v                            v
                  EFFECTIVE CONSEQUENCE         NO EFFECT
]]></artwork>
</section>
<section anchor="terminology" numbered="true"><name>Terminology</name>
<section anchor="def-candidate-act" numbered="true"><name>Candidate Act</name>
<t>A <strong>Candidate Act</strong> is the fully parameterized operation proposed for effectuation but not yet permitted to create the protected external consequence. It may represent a payment, SEND operation, database mutation, API invocation, cloud-control operation, software deployment, model update, network command, physical actuation, or equivalent effect-capable operation.</t>
<t>Candidate Acts are generated but not yet externally effective. A Candidate Act may carry output, recipient, tool, Finality Sink, purpose, jurisdiction, risk class, model identifier, workflow identifier, and similar context.</t>
</section>
<section anchor="def-non-effective" numbered="true"><name>Non-Effective State</name>
<t>A <strong>Non-Effective State</strong> is a state in which an operation may exist, be staged, queued, simulated, reviewed, redacted, sandboxed, escalated, or prepared without yet producing the protected consequence.</t>
<t>Non-effective does not mean nonexistent. The operation may be fully formed. The defining property is that it still cannot produce the protected effect.</t>
</section>
<section anchor="def-ped" numbered="true"><name>Protected Enforcement Domain</name>
<t>The <strong>Protected Enforcement Domain (PED)</strong> performs or coordinates protected validation before effectuation. Depending on the profile, this may include policy evaluation, provenance validation, behavioral evidence, consequence simulation, scope derivation, risk classification, escalation processing, receipt generation, and Execution Handle issuance.</t>
</section>
<section anchor="def-rcae" numbered="true"><name>Result-Consequence Acceptance Envelope</name>
<t>The <strong>Result-Consequence Acceptance Envelope (RCAE)</strong> describes the permitted consequence boundary. It may constrain the following properties:</t>
<ul><li>recipient, amount, resource, and purpose;</li><li>jurisdiction and data classification;</li><li>operation type, permitted tool, and permitted Finality Sink;</li><li>time window, risk class, and reversibility;</li><li>policy generation and revocation generation.</li></ul>
<t>The RCAE thereby converts permission into a technically bounded consequence envelope.</t>
</section>
<section anchor="def-easo" numbered="true"><name>Execution Authorization Scope Object</name>
<t>The <strong>Execution Authorization Scope Object (EASO)</strong> translates the permitted consequence boundary into an execution-enforceable scope. The RCAE describes what consequence is permissible; the EASO binds that permissible consequence into enforceable execution parameters.</t>
</section>
<section anchor="def-handle" numbered="true"><name>Execution Handle</name>
<t>An <strong>Execution Handle</strong> is an act-bound, sink-bound, scope-bound authority object used by the Finality Sink during effectuation <xref target="I-D.das-execution-handle"/>.</t>
<t>Depending on the deployment profile, the Handle may merely prove narrowly scoped execution authority. It may also participate in reconstruction, activation, combination, unsealing, or release of completion material. In its advanced form, the Handle carries narrowly bounded authority rather than a general-purpose execution credential.</t>
</section>
<section anchor="def-sink" numbered="true"><name>Finality Sink</name>
<t>The <strong>Finality Sink</strong> is the component controlling the point where the Candidate Act can become the protected consequence. It may be implemented as any component capable of withholding the final consequence, for example:</t>
<ul><li>a payment connector;</li><li>a database commit controller or storage controller;</li><li>an egress gateway or secure proxy;</li><li>a network command gate;</li><li>a cloud-control enforcement component;</li><li>an industrial actuator controller;</li><li>a firmware boundary;</li><li>an HSM, TEE, SmartNIC, or DPU.</li></ul>
</section>
<section anchor="def-ecf" numbered="true"><name>Escalated Conditional Finality</name>
<t><strong>Escalated Conditional Finality</strong> applies when an act is not suitable for ordinary release but may still become effective under stricter controls. The critical property is:</t>
<blockquote><t><strong>The Candidate Act remains non-effective while the stricter controls are assembled.</strong></t></blockquote>
<t>Controls applicable in this state include protected approval, multi-party approval, fresh attestation, shortened validity, reduced value, redaction, stronger authorization scope, monitoring, sandboxing, canary execution, and rollback capability.</t>
</section>
</section>
<section anchor="trust-not-finality" numbered="true"><name>Dynamic Trust Evaluation Is Not Execution Finality</name>
<t>A dynamic trust API might consider:</t>
<artwork type="ascii-art"><![CDATA[
identity confidence
authorization scope
behavioral consistency
device attestation
risk telemetry
]]></artwork>
<t>and produce <tt>ALLOW</tt>, <tt>RESTRICT</tt>, <tt>ESCALATE</tt>, or <tt>DENY</tt>.</t>
<t>This architecture does not reject such mechanisms. They can provide important inputs. However:</t>
<blockquote><t><strong>Trust evaluates the requester or request context. Finality controls the consequence.</strong></t></blockquote>
<t>Consider:</t>
<artwork type="ascii-art"><![CDATA[
Agent: agent-47
Identity: verified
Authority: write:refunds
Device: attested
Behavior: normal
Trust score: 94
Decision: ALLOW
]]></artwork>
<t>The final operation may nevertheless drift:</t>
<artwork type="ascii-art"><![CDATA[
Authorized Candidate Act

refund:
  amount = 100
  recipient = Customer-A

Actual operation at commit

refund:
  amount = 1000
  recipient = Account-B
]]></artwork>
<t>The agent's identity has not changed. The trust score may not have changed. The authorization endpoint may not have changed. But the consequence has changed. The Finality Sink therefore asks something different:</t>
<blockquote><t><strong>What is actually about to happen?</strong></t></blockquote>
</section>
<section anchor="graduated" numbered="true"><name>Graduated Finality</name>
<t>Binary ALLOW/DENY can be unnecessarily coarse for autonomous critical systems.</t>
<t>The architecture recognizes a structured spectrum of outcomes: ordinary release, reduced-scope release, redaction, delayed release, reversible release, canary release, sandbox-first execution, escrow, protected review, quarantine, and denial.</t>
<t>This matters because some Candidate Acts are not safe enough for ordinary execution, yet not dangerous enough to require permanent denial. For example:</t>
<artwork type="ascii-art"><![CDATA[
Requested:
Transfer INR 5,000,000

Policy:
Automatic AI transfers permitted only to INR 500,000

Possible outcomes:

DENY entire request

or

ESCALATED CONDITIONAL FINALITY:
    reduce amount
    obtain protected approval
    require fresh sink attestation
    shorten expiry
    enable enhanced receipt
]]></artwork>
<t>Graduated finality therefore changes the question from "Allow or deny?" to:</t>
<blockquote><t><strong>Under what bounded technical conditions may this consequence become effective?</strong></t></blockquote>
</section>
<section anchor="escalated-workflow" numbered="true"><name>Escalated Conditional Finality Workflow</name>
<t>An escalated-but-allowable act follows a stronger execution path. The Candidate Act <bcp14>MUST</bcp14> remain non-effective throughout escalation.</t>
<artwork type="ascii-art"><![CDATA[
AI output
   |
   v
Candidate Act
   |
   v
baseline validation
   |
   v
ordinary release threshold not satisfied
   |
   v
but act remains within potentially permissible region
   |
   v
ESCALATED classification
   |
   v
derive narrower RCAE
   |
   v
select mandatory escalation controls
   |
   v
construct stricter EASO
   |
   v
collect required evidence / approvals
   |
   v
generate residual-risk evidence
   |
   v
mint escalated Execution Handle
   |
   v
Finality Sink independently verifies
   |
   v
current-state congruence?
   |
   +-- YES --> bounded effectuation
   |
   +-- NO  --> Candidate Act remains non-effective
]]></artwork>
<t>The escalated path is therefore not equivalent to attaching the label <tt>ESCALATE</tt> to an authorization decision. It changes the authority that is eventually capable of reaching the effectuation boundary.</t>
</section>
<section anchor="escalation-controls" numbered="true"><name>Escalation Controls</name>
<t>Depending on consequence class, an escalated profile may require stronger controls. These may include:</t>
<ul><li>protected human approval or quorum approval;</li><li>narrower financial value;</li><li>recipient restriction or jurisdiction restriction;</li><li>data-field redaction;</li><li>shortened expiry;</li><li>fresh sink attestation;</li><li>sandbox, canary, or reversible execution;</li><li>temporal escrow;</li><li>additional provenance checks, stricter consequence simulation, or additional evidence;</li><li>post-effectuation monitoring or rollback authority.</li></ul>
<t>The critical requirement is:</t>
<blockquote><t><strong>The selected escalation controls <bcp14>MUST</bcp14> be represented in the authority that reaches the Finality Sink.</strong></t></blockquote>
<t>They cannot exist only as notes in an upstream policy engine. For example:</t>
<artwork type="ascii-art"><![CDATA[
Escalation requires:

maximum amount = INR 100,000
recipient = Account-A
expiry = 30 seconds
human approval = required
fresh sink attestation = required
jurisdiction = IN
replay count = 1
]]></artwork>
<t>The Finality Sink <bcp14>MUST NOT</bcp14> accept the following, even if the originating agent remains fully trusted:</t>
<artwork type="ascii-art"><![CDATA[
amount = INR 110,000
recipient = Account-B
expiry = 10 minutes
human approval = absent
]]></artwork>
</section>
<section anchor="current-state" numbered="true"><name>Current-State Execution Congruence</name>
<t>One of the most important execution-finality properties is that earlier approval is not sufficient. State can change between validation and effectuation.</t>
<t>Examples of mutable state include policy, revocation, recipient status, jurisdiction, model approval, data classification, human approval, risk classification, and Finality Sink trust.</t>
<artwork type="ascii-art"><![CDATA[
validated at T1
        !=
automatically executable at T2
]]></artwork>
<t>The Finality Sink <bcp14>SHOULD</bcp14> verify current-state congruence:</t>
<artwork type="ascii-art"><![CDATA[
Candidate Act hash
RCAE
EASO
Execution Handle
policy generation
revocation generation
nonce
receipt
sink identity
sink attestation
        |
        v
must simultaneously correspond
        |
        v
at effectuation time
]]></artwork>
<t>If any mandatory component has changed, the result is <tt>NO EFFECT</tt>.</t>
</section>
<section anchor="sink-not-sufficient" numbered="true"><name>Why the Finality Sink Alone Is Not Sufficient</name>
<t>The Finality Sink is the decisive enforcement component in an execution-finality architecture, because it controls, or is positioned at, the last boundary where the protected consequence can still be prevented. However, the existence of a Finality Sink by itself does not establish execution finality.</t>
<t>A sink cannot determine that an operation is legitimate merely because it is located close to the point of execution. For meaningful finality, the sink must receive or reconstruct enough protected information to answer several distinct questions:</t>
<ol><li>What exact act was proposed?</li><li>What exact consequence was authorized?</li><li>Under what scope was that consequence permitted?</li><li>What evidence supported that authorization?</li><li>Is the authorization still current?</li><li>Has the authority been revoked, consumed, replayed, or superseded?</li><li>Is this the intended recipient, resource, destination, jurisdiction, amount, tool, or actuator?</li><li>Were additional escalation conditions required?</li><li>Is the operation reaching the same trusted sink for which authority was issued?</li><li>Can the verified decision be coupled to effectuation without a substitution or TOCTOU gap?</li></ol>
<t>The Finality Sink therefore performs the <strong>last enforcement decision</strong>, but the information required for that decision is produced and protected by the wider finality architecture.</t>
<section anchor="sink-no-candidate" numbered="true"><name>A Sink Without a Candidate Act Has Nothing Stable to Compare</name>
<t>Consider a Finality Sink receiving the command:</t>
<artwork type="ascii-art"><![CDATA[
TRANSFER 10,000
TO Account-B
]]></artwork>
<t>The sink can evaluate that command against general policy. But without a previously formed and bound Candidate Act, the sink cannot necessarily determine that the operation originally authorized was:</t>
<artwork type="ascii-art"><![CDATA[
TRANSFER 10,000
TO Account-A
]]></artwork>
<t>and was subsequently changed.</t>
<t>The Candidate Act provides the stable representation of the proposed consequence. The architecture treats AI-generated output as a Candidate Act and keeps it non-effective before finality validation. The Finality Sink then verifies authority associated with that specific Candidate Act rather than merely evaluating an unbound operation arriving at an endpoint.</t>
<artwork type="ascii-art"><![CDATA[
Candidate Act
     =
what was proposed and bound

Actual Sink-Side Act
     =
what is actually about to happen

Finality Sink
     =
component that verifies that the two remain congruent
]]></artwork>
<t>Without this separation, the same component may effectively define both what was intended and what will occur, reducing the strength of exact-act comparison.</t>
</section>
<section anchor="sink-no-non-effective" numbered="true"><name>A Sink Without Non-Effective State May Verify Too Late</name>
<t>A Finality Sink can only prevent an unauthorized consequence if the Candidate Act remains technically non-effective until verification completes.</t>
<t>Suppose the operation can already transmit bytes, commit a database mutation, release money, change network state, actuate hardware, or expose confidential information before the sink finishes verification. In that case, the enforcement point is not actually controlling final effectuation.</t>
<t>The non-effective state provides a temporal and architectural separation:</t>
<artwork type="ascii-art"><![CDATA[
COMPUTATION
     |
     v
PROPOSED ACT
     |
     v
FINALITY DECISION
     |
     v
CONSEQUENCE
]]></artwork>
<t>A Candidate Act may be staged, buffered, reviewed, simulated, redacted, delayed, sandboxed, escalated, or quarantined while remaining non-effective. The Finality Sink alone cannot create this guarantee if upstream or parallel paths can already cause the consequence.</t>
</section>
<section anchor="sink-no-authority" numbered="true"><name>A Sink Without Bound Authority Cannot Know What Was Permitted</name>
<t>Suppose a sink receives a valid identity credential stating:</t>
<artwork type="ascii-art"><![CDATA[
Agent-47
Scope: write:refunds
]]></artwork>
<t>That tells the sink that Agent-47 may belong to a class of actors allowed to issue refund requests. It does not necessarily establish the exact amount, beneficiary, source account, purpose, jurisdiction, permitted time, sink, or consequence.</t>
<t>Execution finality therefore requires an act-specific or consequence-specific authority object. This may be implemented as a scoped non-bearer capability, EASO, Execution Handle, protected command envelope, or equivalent bounded authorization.</t>
<t>Such authority is bound to parameters including the Candidate Act, sink, purpose, recipient, jurisdiction, data class, time window, policy epoch, revocation epoch, permitted consequence, nonce, and validation evidence.</t>
<t>The Finality Sink verifies that bounded authority. The sink does not create its meaning after the fact.</t>
</section>
<section anchor="sink-no-state" numbered="true"><name>A Sink Without Protected Current State Cannot Detect Temporal Drift</name>
<t>Authorization can be correct at time T1 and incorrect at time T2. Between validation and execution, policy may change, revocation may occur, recipient status may change, sink trust may change, approval may expire, jurisdiction may change, and resource state may change.</t>
<t>Finality therefore requires current-state verification. Historical validation is insufficient; current-state congruence is required at effectuation time across the Candidate Act, policy epoch, revocation epoch, nonce, receipt, sink state, and related protected parameters (<xref target="current-state"/>).</t>
<t>A Finality Sink operating only on the presented request, without authoritative protected state, cannot reliably determine this.</t>
</section>
<section anchor="sink-no-replay" numbered="true"><name>A Sink Without Replay State Cannot Enforce Single-Use Authority</name>
<t>An otherwise valid Execution Handle can become dangerous if it can be used repeatedly:</t>
<artwork type="ascii-art"><![CDATA[
Authorized:
Transfer INR 10,000 once

Replay:
Transfer INR 10,000
Transfer INR 10,000
Transfer INR 10,000
]]></artwork>
<t>Every individual request might contain perfectly valid cryptographic material. The problem is not authenticity; it is <strong>consumption state</strong>. The Finality Sink therefore needs protected knowledge of nonce use, counter state, execution identifier, allowed-use count, generation, and prior consumption.</t>
<t>A stateless sink cannot establish strong single-use finality merely by validating signatures.</t>
</section>
<section anchor="sink-no-representation" numbered="true"><name>A Sink Without Exact-Act Representation Can Be Defeated by Semantic Differences</name>
<t>Cryptographic verification protects bytes. Execution finality must protect <strong>meaning</strong>.</t>
<t>Suppose the authority system signs one representation while the downstream executor interprets another. This can happen because of Unicode normalization, duplicate JSON members, aliases, redirects, default values, path normalization, amount formatting, timezone interpretation, recipient canonicalization, or hidden transformations. The sink may then successfully verify a signature while still authorizing a different semantic consequence.</t>
<t>The architecture therefore requires deterministic representation of consequence-relevant fields (<xref target="canonicalization"/>). The sink <bcp14>MUST</bcp14> reconstruct the operation using the parameters that will actually be consumed by the protected resource.</t>
</section>
<section anchor="sink-no-completeness" numbered="true"><name>A Sink Without Consequence-Path Completeness Can Simply Be Bypassed</name>
<artwork type="ascii-art"><![CDATA[
                   +-- Finality Sink -- Database
AI Agent ----------+
                   +------------------- Database
                         bypass
]]></artwork>
<t>The first path may be perfectly secure. The architecture still fails.</t>
<t>Any route capable of producing the same protected consequence <bcp14>MUST</bcp14> traverse the Finality Sink, be disabled, or implement equivalent finality enforcement. Such routes include privileged administrative interfaces and maintenance APIs; retry workers, batch jobs, and queues; direct database access; emergency interfaces and recovery tools; alternate network egress; and debugging paths.</t>
<t>Placement of one Finality Sink does not establish finality unless consequence-path completeness is also established (<xref target="sink-bypass"/>; see also <xref target="I-D.das-consequence-path-completeness"/>).</t>
</section>
<section anchor="sink-no-escalation" numbered="true"><name>A Sink Cannot Independently Decide Escalation Semantics</name>
<t>Escalated Conditional Finality illustrates particularly clearly why the Finality Sink cannot stand alone. Suppose an elevated-risk Candidate Act requires:</t>
<artwork type="ascii-art"><![CDATA[
amount reduced to INR 100,000
specific recipient only
fresh human approval
fresh sink attestation
30-second expiration
single use
mandatory monitoring
]]></artwork>
<t>The sink must verify these conditions. But those conditions first have to be:</t>
<ol><li>identified;</li><li>derived from policy and consequence analysis;</li><li>converted into a narrower RCAE;</li><li>represented in an EASO or equivalent execution scope;</li><li>bound into the Execution Handle;</li><li>protected against removal or expansion.</li></ol>
<t>The Finality Sink's responsibility is then to refuse effectuation unless the escalated authority matches those requirements. Escalated finality is a technical finality mode in which stricter RCAE/EASO scope and additional controls remain bound to the authority reaching the Finality Sink.</t>
<blockquote><t><strong>The Finality Sink enforces escalation; it does not by itself supply the entire escalation architecture.</strong></t></blockquote>
</section>
<section anchor="sink-no-atomicity" numbered="true"><name>A Sink Without Atomicity Can Reintroduce TOCTOU</name>
<t>Even if every verification succeeds, the architecture can still fail if there is an exploitable gap between the check passing and the effect being committed:</t>
<artwork type="ascii-art"><![CDATA[
verify beneficiary A
        |
        v
verification succeeds
        |
        v
downstream state changes
        |
        v
commit beneficiary B
]]></artwork>
<t>Execution finality therefore requires the allow decision, the replay-sensitive authority consumption, and the effectuation to be coupled atomically or in an equivalently crash-consistent way (<xref target="atomicity"/>).</t>
<t>The Finality Sink <bcp14>MUST NOT</bcp14> merely return <tt>ALLOW</tt> to another untrusted component and assume that the component performs the same act. The sink must control, or cryptographically bind, the transition that follows.</t>
</section>
<section anchor="sink-policy-engine" numbered="true"><name>A Finality Sink Without Protected Upstream Evidence Becomes Another Policy Engine</name>
<t>A system might place a policy service immediately before execution and call it the Finality Sink:</t>
<artwork type="ascii-art"><![CDATA[
request
   |
   v
risk score
   |
   v
ALLOW
   |
   v
executor
]]></artwork>
<t>That is not automatically execution finality. Ordinary policy engines differ from sink-bound finality because a policy decision may be ignored, become stale, be bypassed, or be separated from the actual effectuation interface.</t>
<t>The distinction therefore does not depend on the name assigned to the component. A component is functionally a Finality Sink only if it actually controls the consequence and satisfies the required finality properties.</t>
</section>
</section>
<section anchor="system-property" numbered="true"><name>Finality Is a System Property, Not a Box</name>
<t>The architecture should not be represented as:</t>
<artwork type="ascii-art"><![CDATA[
AI
 |
 v
FINALITY SINK
 |
 v
EFFECT
]]></artwork>
<t>That diagram is too simple. It risks creating the impression that execution finality is merely another gateway. The fuller architecture is:</t>
<artwork type="ascii-art"><![CDATA[
AI / AGENT
     |
     v
CANDIDATE ACT
     |
     v
NON-EFFECTIVE STATE
     |
     v
PROTECTED VALIDATION
     |
     v
PROVENANCE / POLICY / TRUST / CONSEQUENCE ANALYSIS
     |
     v
RCAE
     |
     v
ORDINARY OR ESCALATED FINALITY DECISION
     |
     v
EASO / BOUNDED EXECUTION AUTHORITY
     |
     v
EXECUTION HANDLE
     |
     v
===============================
LAST PREVENTABLE CONSEQUENCE BOUNDARY
===============================
     |
     v
FINALITY SINK
  - reconstruct actual act
  - exact-act comparison
  - current-state verification
  - revocation/generation check
  - nonce/replay check
  - sink/destination binding
  - escalation-condition verification
  - atomic consumption and effectuation
     |
     +------------------+
     |                  |
   ALLOW              DENY
     |                  |
     v                  v
   EFFECT           NO EFFECT
]]></artwork>
<t>Each part closes a different failure mode:</t>
<ul><li>The Candidate Act gives the system something stable to bind.</li><li>The Non-Effective State prevents premature consequence.</li><li>The RCAE defines the permitted consequence.</li><li>The EASO converts that boundary into execution scope.</li><li>The Execution Handle carries or enables narrowly bounded authority.</li><li>Protected state determines whether that authority remains valid.</li><li>The Finality Sink independently verifies the act that is actually about to occur.</li><li>Atomic effectuation prevents the verified act from changing after the check.</li><li>Complete mediation prevents another route from bypassing the architecture.</li></ul>
<t>The Finality Sink is therefore <strong>necessary but not independently sufficient</strong>.</t>
<section anchor="consolidated-equivalence" numbered="true"><name>Functional Equivalence of Consolidated Implementations</name>
<t>This distinction should not be interpreted as requiring every implementation to contain physically separate components.</t>
<t>A sophisticated transaction processor, secure gateway, HSM, database commit controller, or hardware execution boundary might implement several or all of these functions internally. For example, a single protected component could:</t>
<artwork type="ascii-art"><![CDATA[
construct/reconstruct Candidate Act
maintain non-effective state
hold protected policy state
verify revocation
maintain replay state
derive consequence scope
verify bounded authority
commit atomically
]]></artwork>
<t>Such a component may be functionally equivalent to the broader architecture. In that case, however, the component is no longer performing only the function of a simple final policy check. It is internally implementing the execution-finality architecture.</t>
<t>The correct criterion is therefore not the number of boxes in a deployment diagram. The criterion is whether all required architectural properties exist.</t>
<blockquote><t><strong>One physical component may implement the whole finality pipeline, but one final allow/deny check alone does not.</strong></t></blockquote>
</section>
<section anchor="why-distinction" numbered="true"><name>Why This Distinction Matters</name>
<t>Without this distinction, execution finality could be mischaracterized as an API gateway, a policy enforcement point, a trust-score engine, OAuth at the final endpoint, a hardware interlock, a transaction validator, or an authorization middleware component.</t>
<t>Any of those components may participate in execution finality. Some deployments may even become functionally equivalent if they implement all required properties.</t>
<t>But merely moving an existing authorization check closer to execution does not establish:</t>
<ul><li>exact-act binding;</li><li>Candidate Act continuity;</li><li>non-effective state;</li><li>current-state congruence;</li><li>single-use consumption;</li><li>escalation preservation;</li><li>consequence-path completeness;</li><li>atomic effectuation;</li><li>crash-safe outcome resolution.</li></ul>
<t>Execution finality is therefore an <strong>end-to-end consequence-control property</strong>. The Finality Sink is where that property is finally enforced. It is not, by itself, the entire property.</t>
</section>
</section>
<section anchor="enforcement-points" numbered="true"><name>Enforcement Points</name>
<t>This section specifies nineteen enforcement points. Each enforcement point states what a specific component must verify, hold, bind, or refuse for the architecture in this document to hold at that location. The first enforcement point (EP-1) is the base mechanism. The others refine it for particular deployment situations or rule out implementations that look similar but do not provide the same property.</t>
<t>The enforcement points are informative in this -00 revision. They are written in requirement form so that implementers and reviewers can test conformance against each one separately. Where an enforcement point says an implementation "does not satisfy" it, that statement identifies a common near-equivalent that fails to provide the property.</t>
<t>In this section, "policy epoch" and "revocation epoch" have the same meaning as policy generation and revocation generation elsewhere in this document.</t>
<section anchor="ep-terms" numbered="true"><name>Terms Used in This Section</name>
<ul><li>Hash-Linked Candidate Act Descriptor (HL-CAD): a digest-linked representation of a Candidate Act and the validation evidence produced for it.</li><li>Scoped execution authority: a scoped non-bearer finality capability, an Execution Handle, or both, released for one Candidate Act.</li><li>Locked execution primitive: an operation at the Finality Sink that cannot complete the Candidate Act without completion material.</li><li>Completion material: the value that unlocks the locked execution primitive. Examples are a command signature, database commit token, payment authorization share, data-export key, network-control authorization code, storage-write token, actuator enable value, or model-update unlock value.</li><li>Validation receipt: a record, committed in protected state, of the evidence on which authority was released.</li><li>First usable release boundary: the earliest point in an execution path at which the Candidate Act, or any act-equivalent representation, becomes capable of producing an external consequence.</li></ul>
</section>
<section anchor="ep-1" numbered="true"><name>EP-1: Cryptographic Execution Dependency</name>
<t>Location: the Protected Enforcement Domain and the Finality Sink together.</t>
<ol><li>The Protected Enforcement Domain receives a Candidate Act generated by an AI agent and holds it in a non-effective state in which it cannot produce any external consequence.</li><li>The Protected Enforcement Domain generates an HL-CAD. The HL-CAD binds the Candidate Act to one or more of the following: an algorithmic-logic fingerprint result, a runtime behavioral descriptor, an output provenance record, a factual-support verification result, a predicted consequence representation, the policy epoch, the revocation epoch, and a nonce.</li><li>The Protected Enforcement Domain determines that the Candidate Act lies within a permitted consequence envelope defined by a scoped non-bearer finality capability or an EASO.</li><li>The Protected Enforcement Domain commits a validation receipt bound to the HL-CAD, the permitted consequence envelope, both epochs, the nonce, and the Finality Sink identity. This happens before, or atomically with, release of scoped execution authority.</li><li>Scoped execution authority is released only after that receipt exists in protected state. The authority is bound to the Candidate Act, the Finality Sink identity, both epochs, and the nonce.</li><li>The Finality Sink holds a locked execution primitive that cannot complete the Candidate Act without completion material derived from the scoped execution authority.</li><li>The Finality Sink releases completion material only after verifying that the authority corresponds cryptographically to the Candidate Act, its own identity, both current epochs, and the nonce. The Candidate Act then becomes effective only within the permitted consequence envelope.</li></ol>
</section>
<section anchor="ep-2" numbered="true"><name>EP-2: Threshold-Shared Execution Material</name>
<t>Location: the Finality Sink and two or more distinct protected components.</t>
<ul><li>The execution material needed to complete the Candidate Act is divided into cryptographic shares held by distinct protected components.</li><li>Each share is independently bound to the Candidate Act digest, both epochs, the nonce, and the Finality Sink identity.</li><li>The Finality Sink combines the material only after receiving a threshold number of valid shares within a bounded time window. Each share must match the scope, carry current epochs, and use a fresh nonce.</li><li>No single protected component, AI agent, or ordinary software process ever holds complete execution authority.</li></ul>
</section>
<section anchor="ep-3" numbered="true"><name>EP-3: Commitment-Release Temporal Escrow</name>
<t>Location: the Protected Enforcement Domain and the Finality Sink, for high-latency or delayed effectuation (<xref target="high-latency"/>).</t>
<ul><li>A Commitment Token binds the Candidate Act to the Finality Sink identity, the EASO, both epochs, the nonce, and the validation receipt. It stages the act in a non-effective escrow state and cannot cause effectuation without a matching Release Token.</li><li>Any staged-status indicator sent upstream is explicitly non-final. It does not constitute effectuation and does not satisfy any downstream execution dependency.</li><li>After a defined confirmation window, a current-state re-verification takes place. It covers at least the policy epoch, the revocation epoch, Finality Sink attestation, and the absence of revocation.</li><li>A Release Token bound to the Commitment Token is generated only if every re-verification succeeds. If any check fails first, the Commitment Token is destroyed and no Release Token is generated.</li></ul>
</section>
<section anchor="ep-4" numbered="true"><name>EP-4: Paired Forward and Rollback Authority</name>
<t>Location: the Protected Enforcement Domain and a protected escrow outside the agent execution path.</t>
<ul><li>Atomically with the Commitment Token (EP-3), a paired authority set is generated. The forward authority permits limited effectuation within the permitted scope. The rollback authority permits bounded reversal of that effectuation.</li><li>Both authorities are bound to the same Candidate Act digest, EASO digest, receipt identifier, Finality Sink identity, nonce, and epochs.</li><li>The rollback authority is held in protected escrow, outside the ordinary agent execution path.</li><li>A post-effectuation monitoring window evaluates conditions such as source revocation, policy update, revocation-epoch advancement, sink-trust degradation, canary failure, and contradiction evidence (<xref target="monitoring"/>).</li><li>If a monitored failure occurs within the window, the rollback authority is released to the Finality Sink for bounded reversal. Otherwise, it is destroyed or archived when the window expires.</li></ul>
</section>
<section anchor="ep-5" numbered="true"><name>EP-5: Ephemeral Finality Sink</name>
<t>Location: a temporary execution environment acting as the Finality Sink.</t>
<ul><li>The Finality Sink is provisioned as a single-use environment bound to exactly one validated Candidate Act.</li><li>It holds only the minimum credentials, permissions, policy state, recipient scope, data scope, tool scope, time window, and execution primitive that the act requires.</li><li>After completion, refusal, rollback, timeout, or expiry, it destroys itself. It deletes temporary credentials, clears nonce state, invalidates session keys, and erases transient execution material.</li><li>A copied authority object therefore cannot be replayed anywhere, because the original sink identity, nonce, and attested execution context no longer exist.</li></ul>
</section>
<section anchor="ep-6" numbered="true"><name>EP-6: Proxy Enforcement for Legacy Interfaces</name>
<t>Location: a protected proxy placed immediately before an existing effectuation interface (<xref target="proxy"/>).</t>
<ul><li>The proxy intercepts Candidate Acts, tool calls, transaction requests, database mutations, data-export requests, or command messages directed at the interface.</li><li>It verifies at least the following: the Candidate Act digest, the scoped execution authority, the nonce, expiry, both epochs, EASO scope, Finality Sink identity, and the validation receipt reference.</li><li>On success, it translates the verified act into a conventional request that the existing interface accepts. On failure, it forwards nothing.</li><li>The existing interface therefore receives only enforced requests, without needing to parse HL-CAD, EASO, or Execution Handle formats.</li></ul>
</section>
<section anchor="ep-7" numbered="true"><name>EP-7: Modular Escalation Enforcement</name>
<t>Location: the Protected Enforcement Domain and its escalation modules, for escalated-but-allowable acts (<xref target="escalated-workflow"/>).</t>
<ul><li>A Candidate Act is classified as escalated-but-allowable when it presents elevated risk that does not require denial and can be reduced to a permitted scope by additional controls.</li><li>The act is routed to independent protected escalation modules. Each module produces a machine-verifiable result bound to the Candidate Act digest, the HL-CAD digest, both epochs, the nonce, the module identity, and the Finality Sink identity.</li><li>The EASO names which module results are mandatory.</li><li>Escalated authority is released only when every mandatory result is present, valid, non-stale, non-revoked, epoch-current, and bound to the same act and current state.</li><li>The selected controls are bound into the escalated authority. The Finality Sink rejects the escalated Execution Handle if any mandatory result is absent, stale, revoked, or epoch-mismatched.</li></ul>
</section>
<section anchor="ep-8" numbered="true"><name>EP-8: Receipt as a Release Predicate</name>
<t>Location: the Protected Enforcement Domain's receipt store and the Finality Sink.</t>
<ul><li>Receipt state is committed to a protected receipt store before authority is generated. Suitable stores include an append-only log, a hash chain, a Merkle-committed structure, a hardware-protected log, a signed receipt object, an HSM-backed counter, or secure-enclave state.</li><li>The Finality Sink treats the receipt identifier, receipt digest, or state proof as a required verification input.</li><li>The Finality Sink refuses effectuation if the receipt does not correspond to the Candidate Act, the authority, the nonce, both epochs, and its own identity.</li><li>The receipt is therefore part of the release path, not a record appended afterwards (<xref target="receipts"/>).</li></ul>
</section>
<section anchor="ep-9" numbered="true"><name>EP-9: Assurance Profile with Anti-Downgrade Binding</name>
<t>Location: the Protected Enforcement Domain, which selects the profile, and the Finality Sink, which applies it (<xref target="latency-proportional"/>).</t>
<ul><li>The Protected Enforcement Domain selects one of at least three assurance profiles.</li><li>Low assurance: digest matching, nonce, scope, and epoch checks.</li><li>Medium assurance: the low checks plus a receipt reference, a protected approval reference, the consequence-envelope digest, and sink attestation.</li><li>High assurance: the medium checks plus one or more of Execution Handle verification, state-proof verification, hardware identity binding, locked-primitive completion, rollback escrow, or multi-sink threshold verification.</li><li>Selection depends on one or more of: risk class, consequence type, data classification, jurisdiction, financial value, reversibility, escalation score, and current sink trust state.</li><li>The selected profile is bound into the released authority. The Finality Sink cannot silently apply a lower verification level than the one bound there.</li></ul>
</section>
<section anchor="ep-10" numbered="true"><name>EP-10: Adversarial Perturbation Gate</name>
<t>Location: an escalation module within EP-7.</t>
<ul><li>As a mandatory escalation result, the module runs a bounded set of parameterized perturbations against the Candidate Act's consequence model. These are small variations in recipient, amount, jurisdiction, or data class.</li><li>If any perturbation within the tested radius crosses into a prohibited consequence class, the EASO is tightened to exclude that neighborhood, or the act is reclassified for denial.</li><li>The receipt records the perturbation-set identity, the tested radius, and the distance to the nearest prohibited neighbor.</li><li>Escalated authority is released only when no tested perturbation reaches a prohibited class. The released authority is thus bounded away from prohibited consequence space by an attested margin.</li></ul>
</section>
<section anchor="ep-11" numbered="true"><name>EP-11: Consequence-Class Inheritance Ceiling</name>
<t>Location: every Protected Enforcement Domain in an agent chain (<xref target="escalation-laundering"/>, <xref target="multi-agent"/>).</t>
<ul><li>A Consequence-Class Inheritance Tag is bound into the released authority. It carries the maximum consequence class authorized at the originating decision.</li><li>When a downstream agent produces a Candidate Act derived from the output of the effectuated act, the tag is supplied to the enforcement domain that evaluates the downstream act.</li><li>The downstream act's permitted class never exceeds the inherited ceiling, whatever broader envelope the downstream agent would otherwise have. Authority for any downstream act predicted to exceed the ceiling is refused.</li><li>The ceiling narrows monotonically across hops (invariant I5).</li></ul>
</section>
<section anchor="ep-12" numbered="true"><name>EP-12: Protected Hardware Finality Sink</name>
<t>Location: the Finality Sink, or a module adjacent to it, implemented in protected hardware.</t>
<ul><li>Suitable hardware includes an HSM, secure enclave, TEE, secure element, SmartNIC, DPU, firmware-protected controller, database or storage commit controller, network processor, payment-security module, or protected microcontroller.</li><li>The hardware verifies compact finality artifacts: the Candidate Act digest, the scoped authority, the Execution Handle, the receipt digest, the nonce, both epochs, the EASO digest, and the sink identity.</li><li>The hardware releases completion material only on successful verification.</li><li>Ordinary application software cannot extract the completion material, or cause effectuation, without valid authority verified by the hardware.</li></ul>
</section>
<section anchor="ep-13" numbered="true"><name>EP-13: Isolation of the Enforcement Domain from the Agent</name>
<t>Location: the boundary between the AI agent and the Protected Enforcement Domain.</t>
<ul><li>The Protected Enforcement Domain runs in an isolated boundary, separate from the agent's process, memory, container, virtual machine, and software trust boundary.</li><li>Through any instruction, system call, memory access, IPC, shared memory, or network request available to it, the agent cannot read, modify, suppress, bypass, forge, or replay any of the following: validation logic, receipt state, nonce state, counters, epochs, capability material, Handle material, or the release mechanism.</li><li>An enforcement domain that runs in the same process, memory space, container, serverless invocation, or software trust boundary as the agent does not satisfy this enforcement point.</li><li>Isolation is evidenced by hardware, enclave, TEE, HSM, or microcontroller attestation bound into the Execution Handle. The Finality Sink refuses to assemble completion material if the attested enforcement-domain identity differs from the identity bound at minting.</li></ul>
</section>
<section anchor="ep-14" numbered="true"><name>EP-14: Structural Incompleteness versus Software Tokens</name>
<t>Location: the Finality Sink's locked execution primitive (EP-1, EP-12).</t>
<ul><li>Completion material is derived, held, or released only inside a protected boundary. It cannot be extracted by software instruction, operating-system call, hypervisor operation, cloud management interface, key-management API, or any privileged process, whatever that process's privilege level.</li><li>Does not satisfy: a primitive whose completion material sits in a key-management service, secrets store, cloud-managed key, software-accessible memory, or any location reachable by a sufficiently privileged process. Such material can be assembled without satisfying the finality predicates.</li><li>Assembly succeeds only as a direct result of authority from a protected finality transaction with matching act digest, epochs, nonce, and sink identity. It fails for a copied software token, a replayed encrypted payload, a cloud-managed decryption artifact, or any other artifact.</li></ul>
</section>
<section anchor="ep-15" numbered="true"><name>EP-15: Receipt-Bound Release versus Post-Effectuation Logging</name>
<t>Location: the receipt store and authority release mechanism (EP-8).</t>
<ul><li>Any required record is committed in protected state before, or within the same hardware-enforced atomic operation as, authority release. Such records include a validation receipt, residual-risk receipt, state proof, escalation record, rollback record, sink-verification record, or effectuation record.</li><li>Neither receipt commitment nor authority release can be completed, reversed, suppressed, or extracted independently of the other by any software process.</li><li>Does not satisfy: a receipt written in an ordinary database transaction, message queue, software log, cloud audit service, observability pipeline, or compliance record. Each of these can be aborted, rolled back, suppressed, or written after release.</li><li>Does not satisfy: a system that releases authority first and then logs the release. This remains an audit artifact, however tamper-evident the log is.</li><li>Satisfied only when the Finality Sink can confirm, at presentation time, that a receipt with the bound identifier exists in protected state and matches the presented authority. The match covers the act digest, EASO digest, RCAE digest, nonce, epochs, and sink identity. Authority without a committed receipt fails, and so does a receipt whose parameters diverged after minting.</li></ul>
</section>
<section anchor="ep-16" numbered="true"><name>EP-16: Candidate-Act Authority versus Ordinary Permission Checks</name>
<t>Location: the Finality Sink (<xref target="trust-not-finality"/>, <xref target="conventional"/>).</t>
<t>The scoped execution authority differs from access-control decisions, bearer tokens, OAuth-style grants, API-key checks, RBAC or ABAC decisions, policy-engine approvals, guardrail or moderation results, trust or risk scores, and workflow approvals. It is distinguished by four requirements:</t>
<ul><li>It is bound, through the HL-CAD, to the specific AI-generated output that was evaluated. It is invalid for any other output, even one from the same model, workflow, or authorized agent.</li><li>It is bound to the specific sink and attested sink hardware, and to the epochs and nonce current at the finality transaction. It is invalid at any other sink, under earlier epochs, or after nonce expiry.</li><li>It is generated only after machine-verifiable predicates are satisfied. These include logic-state validation, consequence simulation within the envelope, and receipt commitment.</li><li>It is verified by the Finality Sink as a condition of completion-material assembly.</li></ul>
<t>Does not satisfy: a system that verifies only that the requester may invoke an interface. Such a system answers whether the requester may act, not whether this specific Candidate Act may become this specific consequence at this sink under current state.</t>
</section>
<section anchor="ep-17" numbered="true"><name>EP-17: First Usable Release Boundary</name>
<t>Location: wherever the first usable release boundary actually lies (<xref target="sink-no-completeness"/>, <xref target="sink-bypass"/>).</t>
<ul><li>The boundary is identified by a component's functional capability to convert the Candidate Act into an external consequence. Its name, label, vendor classification, or technology is irrelevant.</li><li>The requirements of EP-1 apply at that boundary, whatever form it takes. It may be a proxy, API gateway, service-mesh sidecar, broker interceptor, database proxy, workflow controller, tool dispatcher, payment adapter, storage gateway, network-control proxy, orchestrator, plugin manager, agent runtime, serverless function, or container sidecar.</li><li>A component cannot opt out by describing itself as pass-through, transparent, routing, load balancing, protocol translation, or middleware, if it can produce the consequence through any path available to it.</li><li>Upstream components that only validate, score, classify, moderate, log, monitor, or route do not satisfy this enforcement point. Several partial upstream checks in sequence also do not satisfy it, because an act-equivalent representation may reach the effectuation interface by a path that skips some of them. The authority must be verified at the first usable release boundary itself.</li></ul>
</section>
<section anchor="ep-18" numbered="true"><name>EP-18: Fragmented, Transformed, and Delegated Act Equivalence</name>
<t>Location: the Protected Enforcement Domain and the Finality Sink (<xref target="fragmentation"/>, <xref target="multi-agent"/>).</t>
<ul><li>Any representation of an AI-generated output that can produce the same or substantially similar consequence is treated as a Candidate Act. This includes fragmented, delegated, serialized, batched, scheduled, compressed, encrypted, translated, summarized, paraphrased, or split forms, wherever and whenever the transformation occurs.</li><li>Splitting an act into smaller acts that each fall below a threshold does not remove it from scope. The Protected Enforcement Domain evaluates the cumulative consequence of related acts. Acts are related if they share HL-CAD references, recipients, purposes, sinks, policy contexts, or temporal proximity.</li><li>Delegating execution to another agent, tool, plugin, workflow, scheduled job, or service does not remove it from scope. The Inheritance Tag (EP-11) propagates to the delegated act.</li><li>Changing format, encoding, protocol, transport, or data structure between the Protected Enforcement Domain and the Finality Sink does not remove it from scope. Scope follows the consequence-producing capability at the sink.</li></ul>
</section>
<section anchor="ep-19" numbered="true"><name>EP-19: Emergency, Maintenance, and Fallback Path Closure</name>
<t>Location: every path able to reach a Finality Sink or produce the consequence (<xref target="fail-closed"/>, <xref target="break-glass"/>).</t>
<ul><li>EP-1 applies on every such path. This includes emergency, maintenance, break-glass, fallback, disaster-recovery, degraded-mode, retry, debugging, management-plane, administrative-override, and privileged-access paths.</li><li>Does not satisfy: enforcing finality on ordinary paths while any such path can produce the consequence without verified authority.</li><li>A degraded, emergency, or maintenance mode that permits consequences satisfies this enforcement point only if it is governed by its own protected finality workflow. That workflow must produce mode-specific authority bound to the act, the mode, the sink, both current epochs, and a fresh nonce, verified by the sink.</li><li>Fail-open behavior does not satisfy this enforcement point. Fail-open means allowing effectuation because evidence, authority, Handle, receipt, epoch currency, nonce freshness, sink attestation, or completion material is absent, unavailable, stale, invalid, or mismatched. The correct responses are non-effectuation, reduced-scope effectuation under a fail-limited mode, or protected review.</li></ul>
</section>
<section anchor="ep-summary" numbered="true"><name>Enforcement-Point Summary</name>
<table><thead><tr><th>EP</th><th>Enforcement point</th><th>Primary location</th><th>Related section</th></tr></thead><tbody><tr><td>EP-1</td><td>Cryptographic execution dependency</td><td>PED and Finality Sink</td><td>Architectural Invariant</td></tr><tr><td>EP-2</td><td>Threshold-shared execution material</td><td>Sink and share holders</td><td>Security Model</td></tr><tr><td>EP-3</td><td>Commitment-release temporal escrow</td><td>PED and sink</td><td>High-Latency Effectuation</td></tr><tr><td>EP-4</td><td>Paired forward and rollback authority</td><td>PED and protected escrow</td><td>Operational Monitoring</td></tr><tr><td>EP-5</td><td>Ephemeral Finality Sink</td><td>Single-use sink</td><td>Replay</td></tr><tr><td>EP-6</td><td>Proxy enforcement for legacy interfaces</td><td>Sink-adjacent proxy</td><td>Legacy-System Deployment</td></tr><tr><td>EP-7</td><td>Modular escalation enforcement</td><td>PED escalation modules</td><td>Escalation Workflow</td></tr><tr><td>EP-8</td><td>Receipt as release predicate</td><td>Receipt store and sink</td><td>Receipts and Evidence</td></tr><tr><td>EP-9</td><td>Assurance profile anti-downgrade</td><td>PED and sink</td><td>Latency Proportional</td></tr><tr><td>EP-10</td><td>Adversarial perturbation gate</td><td>Escalation module</td><td>Escalation Controls</td></tr><tr><td>EP-11</td><td>Inheritance ceiling</td><td>PEDs in agent chain</td><td>Escalation Laundering</td></tr><tr><td>EP-12</td><td>Protected hardware sink</td><td>Hardware sink</td><td>Finality Sink Compromise</td></tr><tr><td>EP-13</td><td>Enforcement-domain isolation</td><td>Agent/PED boundary</td><td>Security Model</td></tr><tr><td>EP-14</td><td>Structural incompleteness</td><td>Locked primitive</td><td>Finality Sink</td></tr><tr><td>EP-15</td><td>Receipt-bound release, not logging</td><td>Receipt and release</td><td>Atomicity</td></tr><tr><td>EP-16</td><td>Act authority, not permission check</td><td>Finality Sink</td><td>Conventional Solutions</td></tr><tr><td>EP-17</td><td>First usable release boundary</td><td>Actual release point</td><td>Finality-Sink Bypass</td></tr><tr><td>EP-18</td><td>Fragmented and delegated equivalence</td><td>PED and sink</td><td>Escalation-Specific Attacks</td></tr><tr><td>EP-19</td><td>Emergency and fallback path closure</td><td>All consequence paths</td><td>Fail-Closed Behavior</td></tr></tbody></table>
</section>
</section>
<section anchor="threat-model" numbered="true"><name>Threat Model</name>
<t>The architecture assumes that the AI agent, upstream application, workflow, network path, queue, intermediary service, or other non-protected component may be mistaken, compromised, malicious, stale, or inconsistent.</t>
<t>The Finality Sink and protected finality state are security-critical components. The threat model therefore does not assume that a valid identity implies a valid consequence.</t>
<section anchor="assets" numbered="true"><name>Protected Assets</name>
<t>The primary protected asset is the integrity of the final consequence. Associated assets include:</t>
<ul><li>Candidate Act integrity;</li><li>protected authorization state and revocation state;</li><li>policy generations;</li><li>nonce and replay state;</li><li>Finality Sink identity and sink attestation state;</li><li>protected approval evidence;</li><li>receipt state and completion material;</li><li>private keys and MAC keys.</li></ul>
</section>
<section anchor="adversaries" numbered="true"><name>Potential Adversaries</name>
<t>Relevant adversaries include:</t>
<ul><li>a compromised AI agent;</li><li>malicious tool code or a malicious plugin;</li><li>compromised application middleware;</li><li>an attacker possessing stolen credentials;</li><li>a compromised queue worker;</li><li>a privileged insider;</li><li>a network attacker;</li><li>a compromised downstream service;</li><li>an attacker controlling stale backups;</li><li>an attacker attempting to bypass the Finality Sink;</li><li>an attacker attempting denial of service against verification.</li></ul>
</section>
<section anchor="objective" numbered="true"><name>Security Objective</name>
<blockquote><t><strong>No attacker should be able to convert possession, upstream approval, stale authority, alternate routing, representation ambiguity, or software compromise into an unauthorized protected consequence without satisfying the required finality conditions at an equivalent effectuation boundary.</strong></t></blockquote>
</section>
</section>
<section anchor="security-model" numbered="true"><name>Security Model</name>
<t>This section states the assumptions under which the properties in <xref target="security-properties"/> are claimed, and what the model deliberately excludes.</t>
<section anchor="assumptions" numbered="true"><name>Trust Assumptions</name>
<ul><li>A1 (Protected state): generations, consume records, approval records, and aggregate counters in protected state have integrity and are monotonic; they cannot be rolled back (<xref target="snapshot-rollback"/>).</li><li>A2 (Sink): the Finality Sink correctly implements verification. It, or a functionally equivalent enforcement point, is the only component able to produce the protected consequence.</li><li>A3 (Cryptography): digests are collision resistant, and signatures or MACs are existentially unforgeable.</li><li>A4 (Paths): consequence-path completeness holds for the protected consequence class.</li><li>A5 (Time): the clock skew between issuer and sink is bounded by a stated value d.</li><li>A6 (Policy): the escalation policy selects appropriate controls for each class. This architecture enforces A6; it does not verify it.</li></ul>
</section>
<section anchor="adversary-capabilities" numbered="true"><name>Adversary Capabilities</name>
<t>The adversary may do the following:</t>
<ul><li>control the agent, tool code, and untrusted middleware;</li><li>read, modify, drop, delay, reorder, and replay network messages;</li><li>submit arbitrary Candidate Acts and observe decisions;</li><li>obtain valid Execution Handles issued to other principals.</li></ul>
<t>The adversary cannot forge Protected Enforcement Domain keys, roll back protected monotonic state, or modify the sink's trusted computing base. Sink compromise is treated separately (<xref target="sink-compromise"/>).</t>
</section>
<section anchor="invariants" numbered="true"><name>Invariants</name>
<t>A conforming deployment maintains the following invariants:</t>
<ul><li>I1 (Non-effectiveness): no protected effect occurs for act a unless the sink recorded ALLOW for a.</li><li>I2 (Exact act): ALLOW under Handle h requires that the digest of the sink-reconstructed act equals the act digest bound in h.</li><li>I3 (Currentness): ALLOW requires that the policy and revocation generations bound in h equal those in protected state, read inside the atomic commit section.</li><li>I4 (Consumption): the number of effects produced under h never exceeds the permitted-use count of h.</li><li>I5 (Escalation monotonicity): derived or delegated authority is never less strict than its parent. Its scope is a subset of the parent's scope, and its class is at least as strict.</li><li>I6 (Fail-safe classification): if classification is unavailable, times out, or is indeterminate, the act receives an escalated or deny class, never the ordinary class.</li><li>I7 (Aggregate bound): the total effect produced over a window W for a given principal, recipient, or purpose never exceeds the ceiling defined for that class.</li></ul>
</section>
<section anchor="bound" numbered="true"><name>Informal Bound</name>
<t>Under A1-A5, the probability that an unauthorized protected effect occurs on a covered path is bounded by the sum of four terms:</t>
<artwork type="ascii-art"><![CDATA[
Pr[unauthorized effect] <= e_hash + e_sig + e_store + e_path
]]></artwork>
<ul><li>e_hash: collision probability of the act digest.</li><li>e_sig: forgery probability of the authority object.</li><li>e_store: probability of a protected-state integrity failure.</li><li>e_path: probability that an uncovered consequence path exists.</li></ul>
<t>This bound is consistent with the one given for Execution Handles in <xref target="I-D.das-execution-handle"/>. It is informal and is not a proof.</t>
</section>
<section anchor="outside-model" numbered="true"><name>Outside the Model</name>
<t>The model does not cover the correctness of the escalation policy (A6), compromise of the Finality Sink or hardware trust roots, side channels, or availability guarantees. These are discussed in <xref target="sink-compromise"/>, <xref target="fail-closed"/>, and <xref target="open-problems"/>.</t>
</section>
</section>
<section anchor="principal-threats" numbered="true"><name>Principal Threats</name>
<table><thead><tr><th>Threat</th><th>Example</th><th>Required architectural response</th></tr></thead><tbody><tr><td>Parameter substitution</td><td>beneficiary changed after approval</td><td>exact-act binding</td></tr><tr><td>Destination substitution</td><td>approved SEND redirected elsewhere</td><td>destination binding</td></tr><tr><td>Replay</td><td>valid Execution Handle reused</td><td>nonce and single-use consumption</td></tr><tr><td>Stale authority</td><td>policy revoked after approval</td><td>generation/epoch revalidation</td></tr><tr><td>TOCTOU</td><td>state changes after validation</td><td>check-and-commit coupling</td></tr><tr><td>Escalation laundering</td><td>restricted authority becomes ordinary downstream</td><td>escalation inheritance</td></tr><tr><td>Alternate-path bypass</td><td>direct database/API route avoids Finality Sink</td><td>consequence-path completeness</td></tr><tr><td>Sink substitution</td><td>Handle moved to another executor</td><td>sink identity binding</td></tr><tr><td>Snapshot rollback</td><td>old replay/revocation state restored</td><td>monotonic/rollback-resistant state</td></tr><tr><td>Canonicalization ambiguity</td><td>signer and executor interpret fields differently</td><td>deterministic representation</td></tr><tr><td>Approval replay</td><td>old human approval reused</td><td>act-specific protected approval</td></tr><tr><td>Counter regression</td><td>restored counter makes stale Handle valid</td><td>monotonic protected counters</td></tr><tr><td>Capability theft</td><td>attacker copies authority object</td><td>non-bearer/sink-bound authority</td></tr><tr><td>Verification exhaustion</td><td>flood expensive crypto path</td><td>admission control and rate limits</td></tr><tr><td>Sink compromise</td><td>Finality Sink modified</td><td>TCB minimization, attestation, isolation</td></tr><tr><td>Crash ambiguity</td><td>unknown whether external act completed</td><td>durable state and reconciliation</td></tr><tr><td>Threshold fragmentation</td><td>large act split into sub-threshold acts</td><td>aggregate ceilings</td></tr><tr><td>Classification fail-open</td><td>risk-engine timeout treated as ordinary</td><td>fail to stricter class</td></tr><tr><td>Resubmission until favorable</td><td>retry until classifier says ordinary</td><td>sticky per-intent classification</td></tr><tr><td>Reviewer exhaustion</td><td>flood of escalations to human approvers</td><td>escalation budgets, no batch approval</td></tr></tbody></table>
</section>
<section anchor="exact-act" numbered="true"><name>Exact-Act Substitution</name>
<t>An attacker may alter one or more consequence-relevant fields after authorization. Examples include amount, recipient, account, object, resource, destination, tool, operation, content, jurisdiction, purpose, visibility, permission, and actuator target.</t>
<t>The binding representation <bcp14>MUST</bcp14> therefore cover every field capable of materially affecting consequence.</t>
<t>A Finality Sink <bcp14>SHOULD</bcp14> reconstruct the actual operation using the values that will actually reach the protected resource. It <bcp14>MUST NOT</bcp14> rely solely on an upstream serialized representation if the downstream execution semantics can differ.</t>
</section>
<section anchor="canonicalization" numbered="true"><name>Canonicalization Ambiguity</name>
<t>Canonicalization is a security boundary. Suppose:</t>
<artwork type="ascii-art"><![CDATA[
Verifier interprets:
"user": "admin "

Executor interprets:
"user": "admin"
]]></artwork>
<t>Two implementations may also disagree about Unicode normalization, duplicate JSON keys, number encodings, case folding, URL normalization, path aliases, redirects, default values, CBOR map ordering, unknown fields, or time zones.</t>
<t>A signature can be cryptographically valid while the signer and executor interpret different semantic acts. An interoperable finality profile therefore needs to define:</t>
<artwork type="ascii-art"><![CDATA[
deterministic representation
mandatory covered fields
duplicate-field behavior
unknown-field behavior
normalization rules
numeric representation
time representation
semantic version
]]></artwork>
<t>Ambiguous representations <bcp14>SHOULD</bcp14> fail closed.</t>
</section>
<section anchor="replay" numbered="true"><name>Replay and Single-Use Authority</name>
<t>A legitimate Execution Handle may itself become an attack artifact if it can be replayed. High-impact authority <bcp14>SHOULD</bcp14> therefore be bounded using some combination of a nonce, unique execution identifier, expiration, sink identity, generation, counter, permitted-use count, and Candidate Act digest.</t>
<t>For single-use operations, authority consumption <bcp14>MUST</bcp14> be concurrency safe. Two simultaneous presentations of the same authority <bcp14>MUST NOT</bcp14> result in two consequences.</t>
</section>
<section anchor="revocation-fencing" numbered="true"><name>Revocation and Generation Fencing</name>
<t>Revocation must remain effective at the execution boundary <xref target="I-D.das-finality-bound-revocation"/>. Suppose a system revokes authority centrally but permits a Finality Sink to keep operating from indefinitely stale cached state. That system does not provide strong current-state execution finality.</t>
<t>A practical mechanism is generation fencing:</t>
<artwork type="ascii-art"><![CDATA[
Execution Handle:
    policy_generation = 44
    revocation_generation = 91

Current protected state:
    policy_generation = 45
    revocation_generation = 92

Result:
    DENY
]]></artwork>
<t>This avoids relying solely on the expiration time of an old token.</t>
</section>
<section anchor="snapshot-rollback" numbered="true"><name>Snapshot Rollback</name>
<t>Protected storage can itself become stale. Suppose a valid Handle was consumed and the system recorded <tt>consumed = TRUE</tt>. An attacker then restores an older snapshot containing <tt>consumed = FALSE</tt>. The authority has effectively been resurrected.</t>
<t>The architecture therefore needs to consider rollback-resistant mechanisms such as monotonic counters, generation fencing, hardware-backed monotonic state, externally anchored state, append-only protected journals, rollback detection, and replicated generation authorities.</t>
<t>Backup restoration <bcp14>MUST NOT</bcp14> silently restore authorization validity.</t>
</section>
<section anchor="escalation-laundering" numbered="true"><name>Escalation Laundering</name>
<t>Escalated authority must not become broader as it passes through an agent chain:</t>
<artwork type="ascii-art"><![CDATA[
Agent A:
allowed only to SEND redacted document
        |
        v
Agent B receives result
        |
        v
Agent B attempts:
SEND full document
]]></artwork>
<t>The original restricted authority <bcp14>MUST NOT</bcp14> be interpreted as generic approval. This document uses consequence-class inheritance in downstream chains, so that escalation can narrow downstream authority but never silently expand it.</t>
<t>A later component may impose stricter controls, smaller scope, more approval, or a lower consequence class, but <bcp14>MUST NOT</bcp14> silently increase the permitted consequence.</t>
</section>
<section anchor="escalation-attacks" numbered="true"><name>Escalation-Specific Attacks</name>
<t>Graduated release creates attacks that do not exist in a binary allow/deny system, because the attacker's goal becomes landing in a less strict class.</t>
<section anchor="fragmentation" numbered="true"><name>Threshold Fragmentation</name>
<t>An attacker may split one escalated act into several ordinary ones. For example, INR 5,000,000 can become eleven transfers of INR 490,000, each below the ordinary threshold.</t>
<t>Classification <bcp14>SHOULD</bcp14> therefore consider aggregate exposure, not only the single act. Aggregate ceilings per principal, recipient, purpose, and time window (invariant I7) <bcp14>SHOULD</bcp14> be kept in protected state and checked inside the atomic commit section. Decomposition across multiple principals or purposes remains open (<xref target="open-problems"/>).</t>
</section>
<section anchor="fail-open" numbered="true"><name>Classification Downgrade and Fail-Open</name>
<t>A classic failure is to treat a risk-engine timeout or error as ordinary release. Classification <bcp14>MUST</bcp14> fail to a stricter class (invariant I6).</t>
<t>An attacker may also relabel classification inputs, such as purpose, recipient category, or data class, to reach a lower class. Every input that influenced the classification <bcp14>SHOULD</bcp14> be part of the Candidate Act digest, so that a relabel invalidates the authority.</t>
</section>
<section anchor="resubmission" numbered="true"><name>Resubmission Until Favorable</name>
<t>Where the classifier is non-deterministic (for example, model-based), an attacker may resubmit an escalated or denied act until it is classified as ordinary.</t>
<t>Decisions <bcp14>SHOULD</bcp14> therefore be sticky per intent identifier for a defined window. A later submission of the same or an equivalent intent <bcp14>MUST NOT</bcp14> receive a less strict class than an earlier one in that window.</t>
</section>
<section anchor="parallel-authority" numbered="true"><name>Parallel Authority for the Same Act</name>
<t>An attacker may obtain an escalated Handle and, through another path or with slightly altered parameters, an ordinary Handle for the same intent.</t>
<t>At most one live authority <bcp14>SHOULD</bcp14> exist per intent identifier. Issuing escalated authority supersedes any ordinary authority for the same intent.</t>
</section>
<section anchor="probing" numbered="true"><name>Classifier Probing</name>
<t>Observable decisions let an attacker map classification thresholds. External error responses <bcp14>SHOULD</bcp14> be coarse, and probing <bcp14>SHOULD</bcp14> be rate limited. Derived ceilings <bcp14>SHOULD NOT</bcp14> be disclosed to the requester beyond what execution requires.</t>
</section>
<section anchor="approval-fatigue" numbered="true"><name>Approval Fatigue and Reviewer Exhaustion</name>
<t>Flooding a system with escalations can exhaust human reviewers. This can lead either to rubber-stamp approval or to denial of service for legitimate escalations.</t>
<t>Profiles <bcp14>SHOULD</bcp14> define per-principal escalation budgets. Approval interfaces <bcp14>SHOULD</bcp14> present the sink-reconstructed act rather than an agent-supplied preview. High-consequence classes <bcp14>SHOULD NOT</bcp14> permit batch approval.</t>
</section>
<section anchor="break-glass" numbered="true"><name>Emergency-Override Abuse</name>
<t>Break-glass authority is itself an escalation path. It <bcp14>SHOULD</bcp14> be bounded in scope, time, and use count, require dual control, always produce a receipt, and trigger mandatory post-event review (<xref target="fail-closed"/>).</t>
</section>
</section>
<section anchor="approval-bypass" numbered="true"><name>Human-Approval Bypass</name>
<t>Ordinary human approval can be vulnerable to stale approval, approval of the wrong object, clickjacking or UI substitution, replayed workflow events, synthetic button presses, and approval of a preview different from the final effect.</t>
<t>Where protected approval is required, it <bcp14>SHOULD</bcp14> be bound to the relevant Candidate Act and consequence:</t>
<artwork type="ascii-art"><![CDATA[
approved act digest
approved recipient
approved amount
approver identity/role
approval timestamp
policy generation
revocation generation
Finality Sink
expiry
]]></artwork>
<t>Approval of <tt>INR 10,000 -&gt; A</tt> <bcp14>MUST NOT</bcp14> authorize <tt>INR 100,000 -&gt; B</tt>.</t>
</section>
<section anchor="sink-bypass" numbered="true"><name>Finality-Sink Bypass</name>
<t>Complete mediation is essential. Suppose the protected path is:</t>
<artwork type="ascii-art"><![CDATA[
AI
 |
 v
Finality Sink
 |
 v
Database
]]></artwork>
<t>but the AI can also reach the database through a direct connection. Then the claimed finality property does not hold.</t>
<t>Every path capable of generating an act-equivalent protected consequence <bcp14>MUST</bcp14> be disabled, pass through the Finality Sink, or enforce functionally equivalent verification. This includes administrative APIs and maintenance interfaces; batch jobs, retry workers, and queues; direct storage access; fallback paths and debug interfaces; alternate network egress; and recovery tools.</t>
<t>Alternate paths capable of completing the same consequence are treated as equivalent effectuation boundaries requiring the same protection <xref target="I-D.das-consequence-path-completeness"/>.</t>
</section>
<section anchor="sink-compromise" numbered="true"><name>Finality Sink Compromise</name>
<t>The Finality Sink is a high-value security target. Compromise could permit an attacker to forge successful verification, ignore revocation, accept replay, substitute a destination, issue misleading receipts, expose completion material, or bypass escalation controls.</t>
<t>Deployments <bcp14>SHOULD</bcp14> minimize the trusted computing base surrounding the sink. Possible hardening mechanisms include:</t>
<ul><li>hardware isolation and TEE execution;</li><li>HSM-assisted key handling;</li><li>secure boot and measured boot;</li><li>remote attestation;</li><li>protected state;</li><li>separate administrative authority;</li><li>tamper-evident logs;</li><li>version rollback protection;</li><li>limited management interfaces.</li></ul>
<t>Attestation does not itself establish execution finality. It may provide evidence that the component expected to enforce finality is in an approved state.</t>
</section>
<section anchor="verification-exhaustion" numbered="true"><name>Verification Exhaustion and Denial of Service</name>
<t>Finality verification can require expensive operations. An attacker might intentionally submit invalid Candidate Acts requiring signature verification, attestation processing, state lookups, simulation, receipt validation, or cryptographic reconstruction.</t>
<t>If all work is performed before admission controls, the Finality Sink itself can become a denial-of-service target. Implementations <bcp14>SHOULD</bcp14> therefore place inexpensive defenses before expensive verification, such as rate limiting, admission control, per-principal quotas, request-shape validation, cheap syntax rejection, proof-of-work where appropriate, resource budgets, queue isolation, priority classes, and circuit breaking.</t>
<t>However:</t>
<blockquote><t><strong>Early filtering <bcp14>MUST NOT</bcp14> replace the final protected verification.</strong></t></blockquote>
</section>
<section anchor="crash" numbered="true"><name>Crash Consistency and Ambiguous Outcomes</name>
<t>An external consequence may not be naturally transactional. A payment instruction, SEND operation, network command, or physical actuation may cross a boundary after which rollback is impossible.</t>
<t>The architecture needs to distinguish outcomes such as:</t>
<artwork type="ascii-art"><![CDATA[
NOT COMMITTED
COMMITTED
DENIED
INDETERMINATE
]]></artwork>
<t>An indeterminate high-impact consequence <bcp14>MUST NOT</bcp14> automatically be retried where retry could duplicate the effect. Durable receipts and transaction identifiers can assist recovery.</t>
</section>
<section anchor="atomicity" numbered="true"><name>Atomicity</name>
<t>The strongest local form of execution finality couples current-state validation, authority consumption, and effectuation into an atomic or equivalent crash-consistent transition.</t>
<t>Where true atomicity is impossible, the deployment needs an explicit state machine with unambiguous recovery semantics:</t>
<artwork type="ascii-art"><![CDATA[
PREPARED
   |
   v
AUTHORITY RESERVED
   |
   v
COMMIT REQUESTED
   |
   v
COMMITTED
]]></artwork>
<t>Receipt generation, nonce/counter updates, policy/revocation checking, and Execution Handle release may likewise participate in a protected atomic finality transaction.</t>
</section>
<section anchor="high-latency" numbered="true"><name>High-Latency Effectuation</name>
<t>Some Finality Sinks inherently operate with substantial delay. Examples include cross-border settlement, remote infrastructure, satellite systems, industrial scheduling, batch processing, and multi-party approval.</t>
<t>In these cases, authorization at T1 <bcp14>SHOULD NOT</bcp14> automatically cause effectuation at T2. A commitment/release model can be used:</t>
<artwork type="ascii-art"><![CDATA[
ESCALATION VALIDATION
        |
        v
COMMITMENT TOKEN
        |
        v
Candidate Act reserved but NON-EFFECTIVE
        |
        v
waiting interval
        |
        v
current-state revalidation
        |
        v
RELEASE TOKEN
        |
        v
Finality Sink
        |
        v
EFFECT
]]></artwork>
<t>The commitment object reserves state. It does not itself authorize the external consequence.</t>
</section>
<section anchor="latency" numbered="true"><name>Latency Considerations</name>
<t>Execution-finality architecture adds work. The correct engineering comparison, however, is not "execution finality versus zero latency". It is:</t>
<blockquote><t><strong>Bounded verification cost versus the cost of an unauthorized high-consequence effect.</strong></t></blockquote>
<t>The architecture uses a latency-aware decomposition into cold, nearline/warm, and hot finality paths. Heavy simulation and validation do not all need to occur at sink-side effectuation time.</t>
<section anchor="cold-path" numbered="true"><name>Cold Preparation Path</name>
<t>Operations that are reusable or time-tolerant <bcp14>SHOULD</bcp14> occur outside the per-act execution path:</t>
<artwork type="ascii-art"><![CDATA[
model/workflow approval
policy compilation
source registration
sink registration
RCAE templates
EASO templates
cryptographic provisioning
attestation baselines
escalation profile compilation
]]></artwork>
</section>
<section anchor="warm-path" numbered="true"><name>Warm / Nearline Path</name>
<t>Once a Candidate Act exists, act-specific work can begin before final effectuation:</t>
<artwork type="ascii-art"><![CDATA[
Candidate Act formation
provenance construction
behavioral evidence evaluation
factual verification
consequence simulation
RCAE selection
escalation classification
protected approval
receipt preparation
Execution Handle preparation
]]></artwork>
</section>
<section anchor="hot-path" numbered="true"><name>Hot Finality Path</name>
<t>The Finality Sink <bcp14>SHOULD</bcp14> perform only the checks that must be current at effectuation time:</t>
<artwork type="ascii-art"><![CDATA[
Candidate Act digest
Execution Handle authenticity
sink identity
expiration
nonce
revocation generation
policy generation
current attestation
replay state
scope
recipient/destination
atomic authority consumption
]]></artwork>
<t>The architecture therefore does not require running full AI reasoning, full consequence simulation, or complete provenance analysis inside the critical sink path.</t>
</section>
<section anchor="latency-budget" numbered="true"><name>Latency Budget Model</name>
<t>The per-act latency can be decomposed as:</t>
<artwork type="ascii-art"><![CDATA[
T_act = T_warm + T_approval + T_hot
]]></artwork>
<ul><li>Cold-path cost is amortized across many acts.</li><li>T_hot is approximately constant. It consists of one digest over the Candidate Act, one signature or MAC verification, a small number of protected-state reads, and one compare-and-swap consumption.</li><li>For ordinary acts, T_approval is zero.</li><li>For escalated acts, T_approval is normally dominated by human or multi-party approval, measured in seconds to minutes, not by cryptography.</li></ul>
<t>Escalation latency is therefore primarily an organizational cost. Profiles <bcp14>SHOULD</bcp14> state which consequence classes permit a human in the loop and what approval latency is acceptable.</t>
</section>
<section anchor="staleness" numbered="true"><name>Freshness, Staleness Windows, and Clocks</name>
<t>A sink may cache generation state with a maximum staleness D. After a revocation, the window of exposure is then bounded by approximately <tt>D + d + T_hot</tt>, where d is the clock-skew bound (A5).</t>
<t>High-consequence profiles <bcp14>SHOULD</bcp14> set D to zero by reading generations inside the atomic commit section. Lower-consequence profiles <bcp14>MUST</bcp14> declare D. Where possible, generations and counters <bcp14>SHOULD</bcp14> be preferred over wall-clock comparison.</t>
</section>
<section anchor="approval-windows" numbered="true"><name>Approval Windows</name>
<t>An escalated Handle's validity must exceed the expected approval latency, or acts expire unexecuted. Long validity, however, widens exposure.</t>
<t>A two-phase approach resolves this tension. A commitment reserves state during approval (<xref target="high-latency"/>), and a short-lived release token is minted only after approval. Because approval is bound to the act digest, a late approval of a changed act fails.</t>
</section>
<section anchor="retry-hazards" numbered="true"><name>Timeouts and Retry Hazards</name>
<t>Client timeouts are often shorter than escalation paths. A timeout <bcp14>MUST NOT</bcp14> cause a new Candidate Act with fresh authority to be created for the same intent, since this can produce a duplicate effect.</t>
<t>An intent identifier or idempotency key <bcp14>SHOULD</bcp14> be bound into the Candidate Act, and the sink <bcp14>SHOULD</bcp14> refuse a second consumption for the same intent. Indeterminate outcomes follow <xref target="crash"/>.</t>
</section>
<section anchor="speculative" numbered="true"><name>Speculative Preparation</name>
<t>The warm path may pre-compute Handles before they are needed. Pre-minted Handles <bcp14>MUST NOT</bcp14> survive a generation change, and currentness is always re-checked at commit.</t>
</section>
<section anchor="perf-isolation" numbered="true"><name>Performance Isolation</name>
<t>Escalated traffic <bcp14>SHOULD</bcp14> be queued separately from ordinary traffic. This prevents a burst of escalations from delaying the ordinary hot path, and ordinary load from starving escalations. It also limits the effect of verification exhaustion (<xref target="verification-exhaustion"/>).</t>
</section>
</section>
<section anchor="latency-proportional" numbered="true"><name>Latency Proportional to Consequence</name>
<t>Profiles may define different assurance classes:</t>
<artwork type="ascii-art"><![CDATA[
LOW CONSEQUENCE
  cached policy + local verification

MEDIUM CONSEQUENCE
  fresh state + exact-act binding + replay protection

HIGH CONSEQUENCE
  fresh attestation + stronger provenance
  + escalation + protected approval

CATASTROPHIC CONSEQUENCE
  hardware-rooted enforcement
  + multi-party authority
  + non-completability
]]></artwork>
<t>Optimization <bcp14>MUST NOT</bcp14> remove protections required by the selected consequence profile.</t>
<t>A high-frequency low-risk operation should not automatically inherit the latency profile of a power-grid actuation command. Conversely, a safety-critical command should not be weakened merely to achieve ordinary web-request latency.</t>
</section>
<section anchor="legacy" numbered="true"><name>Legacy-System Deployment</name>
<t>Immediate replacement of existing enterprise, financial, telecommunications, cloud, industrial, and operating-system infrastructure would be unrealistic. Execution finality therefore needs to support incremental deployment.</t>
<section anchor="proxy" numbered="true"><name>Sink-Adjacent Proxy</name>
<t>A legacy system may continue receiving conventional requests through a protected proxy:</t>
<artwork type="ascii-art"><![CDATA[
AI / legacy application
        |
        v
Candidate Act
        |
        v
protected finality proxy
        |
        v
verify finality authority
        |
        v
construct conventional legacy request
        |
        v
legacy API / database / payment system
]]></artwork>
<t>If the proxy is genuinely the last boundary where the consequence can still be prevented, the proxy may function as the Finality Sink. If downstream bypass paths remain, it cannot provide a complete finality guarantee.</t>
</section>
<section anchor="choke-points" numbered="true"><name>Existing Choke Points</name>
<t>Initial enforcement can potentially be integrated into existing API gateways, service meshes, payment connectors, database commit paths, storage controllers, egress gateways, cloud control planes, hypervisors, HSMs, TEEs, network controllers, industrial gateways, and telecom control points.</t>
</section>
<section anchor="migration" numbered="true"><name>Progressive Migration</name>
<artwork type="ascii-art"><![CDATA[
STAGE 1
sink-adjacent gateway/proxy
       |
       v
STAGE 2
native service or transaction integration
       |
       v
STAGE 3
hardware / firmware / commit-path enforcement
]]></artwork>
<t>The architecture can therefore support stronger assurance over time without requiring immediate stack replacement.</t>
</section>
</section>
<section anchor="native" numbered="true"><name>Native Versus Non-Native Finality</name>
<t>A native system may directly understand Candidate Acts, RCAEs, EASOs, Execution Handles, and Finality Receipts. A non-native system may understand none of them.</t>
<t>The architecture therefore distinguishes <strong>semantic finality</strong> from a particular wire format. A proxy can translate validated finality state into the conventional interface required by a legacy sink.</t>
<t>Functional equivalence depends on whether the protected consequence remains completely mediated, not on whether the downstream platform uses execution-finality terminology.</t>
</section>
<section anchor="rel-authn" numbered="true"><name>Relationship to Authentication and Authorization</name>
<t>Each layer answers a different question:</t>
<ul><li>Authentication answers: Who are you?</li><li>Authorization answers: What class of action are you permitted to request?</li><li>Dynamic trust may answer: Given current evidence, how much confidence should be placed in this actor or request?</li><li>Execution finality answers: May this exact consequence become effective now?</li></ul>
<t>These systems therefore complement rather than necessarily replace one another.</t>
</section>
<section anchor="rel-oauth" numbered="true"><name>Relationship to OAuth</name>
<t>OAuth <xref target="RFC6749"/> and fine-grained authorization, including Rich Authorization Requests <xref target="RFC9396"/>, can provide important authority inputs.</t>
<t>A resource server could be functionally equivalent to the Finality Sink for a defined operation if it reconstructs the exact consequence, checks all consequence-relevant fields, verifies current state, enforces replay resistance, atomically consumes authority, and controls every consequence path.</t>
<t>The distinction is functional rather than terminological. Merely checking a valid token at a final API endpoint is not enough if later components can change, replay, redirect, or duplicate the effect.</t>
</section>
<section anchor="rel-attestation" numbered="true"><name>Relationship to Attestation</name>
<t>Attestation <xref target="RFC9334"/> can establish evidence about software, firmware, platform identity, configuration, or security state. It can help answer whether a Finality Sink is running an approved implementation.</t>
<t>It does not by itself answer whether this exact Candidate Act was checked against current authority and atomically coupled to this particular consequence.</t>
<t>Attestation is therefore an input to finality, not a replacement for it.</t>
</section>
<section anchor="rel-drafts" numbered="true"><name>Relationship to Other Execution-Finality Drafts</name>
<t>This document is part of a broader family of execution-finality work, but it addresses a distinct architectural problem.</t>
<t>The broader drafts define what a Candidate Act is, where the effectuation boundary exists, how bounded execution authority is represented, how revocation and state continuity reach the final boundary, how alternate consequence paths are closed, and how execution-finality architecture can be deployed in existing systems.</t>
<t>This document addresses a narrower question:</t>
<blockquote><t><strong>What should happen when a Candidate Act is too risky for ordinary release, but remains technically permissible if stronger, narrower, and machine-verifiable execution conditions are imposed?</strong></t></blockquote>
<t>Its primary contribution is therefore <strong>Graduated and Escalated Conditional Finality</strong>. It defines a state machine in which an elevated-risk Candidate Act remains non-effective while the system:</t>
<ol><li>derives a stricter consequence boundary;</li><li>selects additional controls;</li><li>binds those controls into execution authority;</li><li>requires the Finality Sink to verify the resulting escalated conditions before effectuation.</li></ol>
<section anchor="diff-candidate-act" numbered="true"><name>Difference from Candidate-Act Finality</name>
<t>The Candidate-Act Finality draft <xref target="I-D.das-protocols-candidate-act-finality"/> focuses principally on the Candidate Act abstraction: converting a computationally generated operation into a structured, non-effective proposed act before it is allowed to produce an external consequence.</t>
<t>The present document assumes that a Candidate Act already exists. Its concern begins at the next question: which finality path should that Candidate Act receive?</t>
<artwork type="ascii-art"><![CDATA[
Candidate-Act Finality draft:
AI output
   |
   v
Candidate Act
   |
   v
Non-Effective State


This document:
Candidate Act
   |
   v
risk / consequence classification
   |
   v
ordinary / reduced / escalated / sandbox /
canary / review / quarantine / denial
   |
   v
corresponding execution authority
]]></artwork>
<t>Candidate-Act Finality defines the <strong>object being controlled</strong>; this document defines the <strong>graduated release logic applied to that object</strong>.</t>
</section>
<section anchor="diff-effectuation-boundary" numbered="true"><name>Difference from the Agentic Effectuation Boundary</name>
<t>The effectuation-boundary draft <xref target="I-D.das-agentic-effectuation-boundary"/> focuses on identifying the boundary where an agent-generated instruction becomes an externally effective consequence, and therefore where mandatory enforcement should occur. Its central question is where enforcement must exist.</t>
<t>The present document asks what form of execution authority should reach that boundary when the Candidate Act presents elevated but manageable risk. The effectuation-boundary draft defines <strong>placement</strong>; this document defines <strong>conditional release semantics</strong>.</t>
</section>
<section anchor="diff-ai-boundary" numbered="true"><name>Difference from the AI Boundary Draft</name>
<t>The AI boundary draft <xref target="I-D.das-execution-finality-ai-boundary"/> addresses the general separation between AI computation and external effectuation. It establishes that an AI-generated output, even when authenticated or authorized, should not automatically become an external consequence.</t>
<t>The present document operates inside that broader architecture. It defines what happens when the system determines that the act is not safe enough for ordinary release but not prohibited enough for unconditional denial. The resulting contribution is a structured middle state, in which additional controls materially change the authority eventually presented to the Finality Sink.</t>
</section>
<section anchor="diff-handle" numbered="true"><name>Difference from the Execution Handle Draft</name>
<t>The Execution Handle draft <xref target="I-D.das-execution-handle"/> focuses on the artifact used to carry narrowly scoped execution authority. It addresses exact-act binding, sink binding, freshness and expiration, replay resistance and one-time consumption, and bounded execution scope.</t>
<t>The present document does not principally define the Execution Handle. Instead, it defines <strong>why and when a different, stricter form of execution authority must be generated</strong>. For example:</t>
<artwork type="ascii-art"><![CDATA[
Ordinary Handle

amount <= 500,000
recipient = approved class
expiry = 10 minutes
]]></artwork>
<t>may become:</t>
<artwork type="ascii-art"><![CDATA[
Escalated Handle

amount <= 100,000
recipient = Beneficiary-A only
expiry = 30 seconds
fresh protected approval required
fresh sink attestation required
single use
mandatory monitoring
]]></artwork>
<blockquote><t><strong>The Execution Handle draft defines how bounded authority is carried; this document defines how elevated risk changes that bounded authority.</strong></t></blockquote>
</section>
<section anchor="diff-revocation" numbered="true"><name>Difference from Finality-Bound Revocation</name>
<t>The finality-bound revocation draft <xref target="I-D.das-finality-bound-revocation"/> focuses specifically on ensuring that revocation remains effective at or before final effectuation.</t>
<t>Revocation is only one input to Escalated Conditional Finality. This document may require current revocation state as part of an escalated decision, but it also considers consequence severity and boundary proximity, financial value, data and recipient sensitivity, jurisdiction, reversibility, sink trust, provenance confidence, protected approval, and fresh attestation.</t>
<t>Revocation is therefore a <strong>predicate</strong> within the present architecture rather than its primary subject.</t>
</section>
<section anchor="diff-continuity" numbered="true"><name>Difference from State and Policy Continuity</name>
<t>The state and policy continuity draft <xref target="I-D.das-state-policy-continuity-finality"/> addresses the problem of state changing between authorization and effectuation. Its central property is continuity of relevant protected state across time.</t>
<t>The present document incorporates that property as Current-State Execution Congruence (<xref target="current-state"/>), because an escalated act must not execute merely because it satisfied escalation requirements earlier. However, state continuity is not the central purpose of this document. This document additionally defines graduated classification, the escalated-but-allowable state, narrower RCAE derivation, additional escalation controls, escalated EASO formation, escalated Execution Handle generation, and post-effectuation obligations.</t>
<blockquote><t><strong>State continuity answers whether previously valid authority remains valid; escalated finality determines what stronger authority is required in the first place.</strong></t></blockquote>
</section>
<section anchor="diff-path" numbered="true"><name>Difference from Consequence-Path Completeness</name>
<t>The consequence-path completeness draft <xref target="I-D.das-consequence-path-completeness"/> addresses the structural requirement that no alternate path may produce the same protected consequence while bypassing finality enforcement.</t>
<t>That property is required by the present architecture (<xref target="sink-no-completeness"/> and <xref target="sink-bypass"/>). However, this document does not primarily attempt to enumerate every bypass path. It assumes that an escalated decision must remain enforceable through all relevant consequence paths.</t>
<blockquote><t><strong>Consequence-path completeness protects the enforcement topology; this document defines the conditional authority being enforced through that topology.</strong></t></blockquote>
</section>
<section anchor="diff-composite" numbered="true"><name>Difference from Composite Execution Finality</name>
<t>The composite execution finality draft <xref target="I-D.das-composite-execution-finality"/> addresses execution finality where a consequence spans multiple components, services, or independently controlled systems. Its primary problem is <strong>composition</strong>.</t>
<t>The present document addresses <strong>classification and conditional release</strong>. An escalated Candidate Act may traverse a composite system, but the defining question remains whether the act should receive ordinary authority, narrower authority, additional controls, or no authority.</t>
<artwork type="ascii-art"><![CDATA[
Escalated Conditional Finality
      |
      v
determines permitted consequence
and required controls

Composite Execution Finality
      |
      v
preserves those properties across
multiple execution components
]]></artwork>
</section>
<section anchor="diff-profiles" numbered="true"><name>Difference from Enforcement Profiles</name>
<t>Enforcement-profile work <xref target="I-D.das-execution-finality-enforcement-profiles"/> describes how execution-finality properties may be instantiated for different environments, assurance levels, or application domains.</t>
<t>The present document defines a reusable decision and authority-transition mechanism that such profiles may invoke. For example, a payment profile and a cloud-administration profile may have completely different consequence semantics while both supporting:</t>
<artwork type="ascii-art"><![CDATA[
ORDINARY
REDUCED
ESCALATED
CANARY
SANDBOX
REVIEW
DENY
]]></artwork>
<t>The enforcement-profile draft answers how finality is implemented in a given environment. This document answers which finality mode a specific Candidate Act should enter.</t>
</section>
<section anchor="diff-deployment" numbered="true"><name>Difference from the Deployment Architecture</name>
<t>The deployment draft <xref target="I-D.das-execution-finality-deployment"/> provides the broad deployment architecture. It considers placement of the Finality Sink, exact-act representation, protected state, atomicity, replay, crash recovery, availability, latency, legacy-system integration, and native and proxy enforcement.</t>
<t>The present document uses those mechanisms but gives them a narrower purpose. It defines the <strong>graduated decision layer</strong> between Candidate Act formation and final effectuation.</t>
<t>For example, the deployment document may explain how a Finality Sink can be placed inside a payment gateway. This document determines that a particular payment cannot receive ordinary release, but may receive the following before reaching that same Finality Sink:</t>
<artwork type="ascii-art"><![CDATA[
reduced amount
+ specific beneficiary
+ fresh approval
+ shorter expiry
+ single-use authority
+ fresh sink attestation
]]></artwork>
<blockquote><t><strong>The deployment draft explains how execution finality is deployed; this document defines how execution authority is dynamically strengthened or narrowed according to consequence risk.</strong></t></blockquote>
</section>
<section anchor="diff-trust" numbered="true"><name>Difference from Dynamic-Trust or Risk-Scoring Systems</name>
<t>A dynamic trust system may return <tt>ALLOW</tt>, <tt>RESTRICT</tt>, <tt>ESCALATE</tt>, or <tt>DENY</tt>. The present architecture may consume such signals, but it does not treat the classification itself as final authority. In Escalated Conditional Finality:</t>
<artwork type="ascii-art"><![CDATA[
ESCALATE
   |
   v
Candidate Act remains non-effective
   |
   v
narrower consequence boundary derived
   |
   v
additional mandatory controls selected
   |
   v
controls cryptographically bound
   |
   v
new restricted execution authority generated
   |
   v
Finality Sink independently verifies
   |
   v
bounded consequence only
]]></artwork>
<blockquote><t><strong>Escalation is not merely a different decision result. It changes the executable authority and the conditions under which effectuation becomes technically possible.</strong></t></blockquote>
</section>
<section anchor="family-position" numbered="true"><name>Architectural Position Within the Draft Family</name>
<artwork type="ascii-art"><![CDATA[
Candidate-Act Finality
"What exact proposed act is being held non-effective?"
              |
              v
Graduated / Escalated Conditional Finality
"What release class and additional controls does this act
 require?"
              |
              v
Execution Handle
"What bounded authority represents that decision?"
              |
              v
State / Revocation / Policy Continuity
"Does that authority remain current?"
              |
              v
Effectuation Boundary
"Where can the consequence still be prevented?"
              |
              v
Finality Sink
"Does the exact act satisfy all current conditions?"
              |
              v
Composite / Consequence-Path Finality
"Can those guarantees survive distributed and alternate
 paths?"
              |
              v
EFFECT
]]></artwork>
<t>Each work item addresses a different layer rather than simply renaming the same control.</t>
</section>
<section anchor="contribution" numbered="true"><name>Specific Contribution of This Document</name>
<t>This document defines a graduated execution-finality state machine in which:</t>
<ol><li>a Candidate Act remains non-effective;</li><li>the act is classified according to consequence and risk;</li><li>an act may receive an outcome other than ordinary allow or deny;</li><li>an elevated-but-permissible act enters Escalated Conditional Finality;</li><li>the permitted consequence boundary is narrowed;</li><li>additional machine-verifiable controls are selected;</li><li>those controls are incorporated into the authority structure;</li><li>the resulting authority is bound to the Candidate Act and intended Finality Sink;</li><li>the Finality Sink independently verifies the escalated conditions against current protected state; and</li><li>only the consequence permitted by that escalated authority may become effective.</li></ol>
<blockquote><t><strong>This document does not merely decide that elevated-risk acts require additional review. It defines how elevated risk causes a narrower and stronger execution authority to be constructed, carried to the effectuation boundary, revalidated against current protected state, and enforced by the Finality Sink before the Candidate Act can leave the non-effective state.</strong></t></blockquote>
</section>
</section>
<section anchor="receipts" numbered="true"><name>Receipts and Evidence</name>
<t>A Finality Receipt can bind evidence to the resulting transition. A receipt may include:</t>
<artwork type="ascii-art"><![CDATA[
Candidate Act digest
RCAE identifier/hash
EASO identifier/hash
Execution Handle identifier
Finality Sink identity
policy generation
revocation generation
nonce
decision
timestamp
resulting transaction/consequence identifier
]]></artwork>
<t>Receipts can assist audit, cross-domain assurance, incident investigation, recovery, regulatory evidence, and dispute resolution.</t>
<t>A receipt does not itself prevent an unauthorized consequence. Its value depends on the integrity and placement of the enforcing transition that generated it.</t>
</section>
<section anchor="multi-agent" numbered="true"><name>Multi-Agent Systems</name>
<t>Authority becomes more difficult to track when one agent delegates to another:</t>
<artwork type="ascii-art"><![CDATA[
Agent A
   |
   v
Agent B
   |
   v
Tool C
   |
   v
Service D
   |
   v
Finality Sink
]]></artwork>
<t>Every intermediate component may be individually authenticated, yet the final consequence may drift.</t>
<t>Execution-finality state <bcp14>SHOULD</bcp14> therefore preserve relevant consequence restrictions across delegation boundaries. An escalated or reduced-scope act <bcp14>MUST NOT</bcp14> regain broader authority simply because another agent re-encodes or republishes it (<xref target="escalation-laundering"/>).</t>
</section>
<section anchor="monitoring" numbered="true"><name>Operational Monitoring</name>
<t>Monitoring may continue after effectuation for reversible or escalated acts. Possible monitoring signals include recipient changes, source revocation, policy updates, sink trust degradation, canary failure, unexpected downstream consequences, fraud signals, and jurisdiction changes.</t>
<t>Where rollback is technically possible, protected rollback capability may be activated. Where rollback is impossible, monitoring still supports containment and future revocation.</t>
</section>
<section anchor="fail-closed" numbered="true"><name>Fail-Closed and Safe-Degraded Behavior</name>
<t>For many high-criticality consequences, uncertain authorization means no ordinary effectuation.</t>
<t>However, fail-closed behavior must not itself create an unsafe condition. For example, an industrial controller may require a safe physical fallback rather than simply doing nothing.</t>
<t>Profiles therefore need to define behavior for normal operation, verification-service loss, clock loss, revocation-state loss, attestation failure, protected-store failure, network partition, emergency mode, and recovery mode.</t>
<t>Emergency authority <bcp14>MUST</bcp14> be separately bounded. Emergency mode <bcp14>MUST NOT</bcp14> become a permanent bypass path.</t>
</section>
<section anchor="residual-risk" numbered="true"><name>Residual Risk</name>
<t>Execution finality does not guarantee that an AI output is objectively true, universally lawful, or perfectly safe. The architecture distinguishes machine-verifiable validation from absolute correctness. An act may satisfy every defined predicate and still produce an unforeseen consequence.</t>
<t>Execution finality therefore provides <strong>bounded, verifiable control over the authorization-to-consequence transition</strong>, rather than guaranteed correctness of artificial intelligence.</t>
</section>
<section anchor="security-properties" numbered="true"><name>Security Properties</name>
<t>A conforming high-assurance deployment should be able to demonstrate the following properties:</t>
<ul><li><strong>Complete mediation:</strong> every protected consequence path passes through equivalent finality enforcement.</li><li><strong>Exact-act binding:</strong> material consequence fields are deterministically bound.</li><li><strong>Current-state verification:</strong> revocation and policy state are current within the selected assurance profile.</li><li><strong>Replay resistance:</strong> authority cannot silently produce additional consequences.</li><li><strong>Destination binding:</strong> authority cannot be repointed.</li><li><strong>Sink binding:</strong> authority intended for one Finality Sink cannot silently operate elsewhere.</li><li><strong>Escalation preservation:</strong> escalated requirements cannot disappear downstream.</li><li><strong>Atomicity:</strong> verification and effectuation do not expose an exploitable TOCTOU interval.</li><li><strong>Rollback resistance:</strong> restoration of old protected state does not resurrect authority.</li><li><strong>Crash recovery:</strong> ambiguous effectuation states are safely resolvable.</li><li><strong>Fail-safe behavior:</strong> verification failure does not silently become authorization.</li><li><strong>Evidence integrity:</strong> receipts cannot claim an effect that the enforcement transition did not produce.</li></ul>
</section>
<section anchor="deployment-profiles" numbered="true"><name>Deployment Profiles</name>
<t>Different domains may select different assurance profiles:</t>
<ul><li>A <strong>local low-latency profile</strong> may use local protected state, symmetric MACs, single-use nonces, and local atomic commits.</li><li>A <strong>distributed profile</strong> may require fencing generations, durable idempotency, transaction state machines, and cross-service receipts.</li><li>A <strong>safety-critical profile</strong> may require hardware mediation, an attested Finality Sink, deterministic timing, bounded offline authority, and fail-safe physical action.</li><li>A <strong>sovereign or cross-domain profile</strong> may additionally require independent attestation, jurisdiction-bound scope, externally verifiable receipts, and separation of trust authorities.</li></ul>
</section>
<section anchor="interop" numbered="true"><name>Interoperability Requirements</name>
<t>A future interoperable profile would need to specify at least:</t>
<ul><li>a deterministic Candidate Act representation;</li><li>covered consequence-relevant fields;</li><li>algorithm identifiers;</li><li>scope representation;</li><li>sink identity format;</li><li>nonce, generation, and expiration semantics;</li><li>receipt structure;</li><li>unknown-field handling and canonicalization rules;</li><li>error behavior;</li><li>version negotiation;</li><li>evidence references;</li><li>privacy rules.</li></ul>
<t>The architecture should avoid defining one universal action schema if doing so would erase application-specific consequence semantics.</t>
</section>
<section anchor="examples" numbered="true"><name>Examples</name>
<section anchor="example-payment" numbered="true"><name>Payment</name>
<artwork type="ascii-art"><![CDATA[
Candidate Act

operation: PAYMENT
source: Account-A
destination: Beneficiary-B
amount: 10000
currency: INR
purpose: invoice-891
expiry: T
sink: PaymentConnector-7
]]></artwork>
<t>Suppose elevated value triggers escalation. The system may derive:</t>
<artwork type="ascii-art"><![CDATA[
maximum allowed amount = 5000
human approval = required
validity = 60 seconds
recipient = Beneficiary-B only
single use = true
fresh sink attestation = required
]]></artwork>
<t>The Finality Sink receives <tt>INR 5000 -&gt; Beneficiary-B</tt> and verifies current state. If it instead receives <tt>INR 6000 -&gt; Beneficiary-B</tt> or <tt>INR 5000 -&gt; Beneficiary-C</tt>, the operation remains non-effective.</t>
</section>
<section anchor="example-send" numbered="true"><name>SEND</name>
<artwork type="ascii-art"><![CDATA[
Candidate Act

operation: SEND
content_digest: H(document)
recipient: user@example
purpose: customer-case-17
classification: confidential
sink: Corporate-Egress-3
]]></artwork>
<t>Escalation might require:</t>
<artwork type="ascii-art"><![CDATA[
redact fields A/B/C
single recipient
no forwarding
30-second expiry
protected human approval
]]></artwork>
<t>Approval of a preview is insufficient if the final attachment or destination can change. The Finality Sink <bcp14>MUST</bcp14> verify the content and destination that will actually leave the system.</t>
</section>
<section anchor="example-cloud" numbered="true"><name>Cloud Administration</name>
<artwork type="ascii-art"><![CDATA[
Candidate Act

operation:    AttachPrivilegePolicy
target:       ProductionRole-A
account:      CloudAccount-X
requested_by: Agent-47
]]></artwork>
<t>Dynamic trust may report:</t>
<artwork type="ascii-art"><![CDATA[
identity = valid
device = attested
behavior = normal
trust score = high
]]></artwork>
<t>That does not automatically mean the privilege modification should be executed. Finality may additionally require:</t>
<artwork type="ascii-art"><![CDATA[
exact policy digest
specific account
specific role
current security policy generation
change-ticket binding
fresh authorization
single use
atomic commit
]]></artwork>
</section>
</section>
<section anchor="non-claims" numbered="true"><name>What This Architecture Does Not Claim</name>
<t>This architecture does not by itself solve model alignment, perfect factual correctness, all cybersecurity compromise, malicious hardware, insider threats with control of every trust anchor, geopolitical risk, universal legal compliance, or perfect physical safety.</t>
<t>It also does not imply that every system requires hardware-enforced non-completability. Different consequence profiles can select different assurance levels.</t>
</section>
<section anchor="open-problems" numbered="true"><name>Open Problems</name>
<t>The following problems are not solved by this document. They are listed so that reviewers can judge the claims in proportion.</t>
<ul><li>Classification correctness. The architecture faithfully enforces whatever controls the classification selects (A6). A wrong classification produces a wrongly authorized but still bounded act.</li><li>Cross-principal decomposition. Aggregate ceilings (<xref target="fragmentation"/>) cover a single principal, recipient, or purpose. Coordinated agents that split a prohibited objective into individually permissible acts across principals, sessions, or purposes are not addressed.</li><li>Semantic completeness of the Candidate Act. There is no general method to prove that a Candidate Act representation covers every consequence-relevant field of an arbitrary API, including implicit defaults and side effects.</li><li>Proof of path completeness. In large systems, consequence-path completeness is currently established by audit, not by a general verification method.</li><li>Non-preparable sinks. For email, many tool calls, and physical actuation there is no prepare phase, so atomicity reduces to mitigation.</li><li>Currentness versus availability. Strict currentness sacrifices availability under network partition. Bounded offline authority is only a partial answer.</li><li>Approval quality. Binding proves what was approved, not that the approver understood it.</li><li>Trust roots. Compromise of the Finality Sink or its hardware trust roots defeats the architecture (<xref target="sink-compromise"/>).</li><li>Interoperable encoding. There is no agreed wire format yet for Candidate Acts, escalation classes, Handles, or receipts (<xref target="interop"/>).</li><li>Real-time control loops. Hot-path verification inside sub-millisecond control loops is only partly addressed by envelope-style authority.</li><li>Conflicting requirements. Escalation requirements from different jurisdictions or authorities may conflict, and no resolution rule is defined here.</li><li>Privacy-preserving evidence. Receipts that prove enforcement without revealing act contents are not specified (<xref target="privacy"/>).</li><li>Evaluation. There is no standard benchmark for comparing latency and assurance across implementations.</li></ul>
</section>
<section anchor="ietf-questions" numbered="true"><name>IETF-Relevant Questions</name>
<t>This document invites technical discussion of the following questions:</t>
<ol><li>Which parts are generic Internet architecture, and which must remain application-specific?</li><li>Can a common Candidate Act / Finality Receipt information model be useful without defining universal action semantics?</li><li>Can OAuth authorization details <xref target="RFC9396"/> carry sufficient exact-act inputs for selected profiles?</li><li>Can RATS evidence <xref target="RFC9334"/> describe trustworthy properties of Finality Sinks?</li><li>Can COSE <xref target="RFC9052"/> provide interoperable protection for Candidate Acts, Handles, and receipts?</li><li>How should workload identity from WIMSE bind into act-level consequence authority?</li><li>How should semantic canonicalization profiles be negotiated?</li><li>How can implementations prove consequence-path completeness?</li><li>How should latency and assurance profiles be benchmarked?</li><li>How should distributed systems represent indeterminate external effects?</li><li>How can privacy-preserving receipts prove enforcement without revealing sensitive act contents?</li></ol>
</section>
<section anchor="testing" numbered="true"><name>Implementation and Testing Considerations</name>
<t>A useful implementation test suite should include:</t>
<ul><li>positive authorized effectuation;</li><li>incorrect recipient, incorrect amount, changed destination, and changed content;</li><li>stale policy generation and advanced revocation generation;</li><li>expired Handle;</li><li>replayed nonce and concurrent Handle use;</li><li>wrong Finality Sink and wrong hardware identity;</li><li>missing escalation control;</li><li>stale human approval;</li><li>snapshot rollback;</li><li>canonicalization disagreement, unknown fields, and duplicate fields;</li><li>crash before effect and crash after effect;</li><li>retry after indeterminate outcome;</li><li>proxy bypass and alternate egress;</li><li>a sink presented with a well-formed request but no bound Candidate Act or Execution Handle (expected result: no effect; see <xref target="sink-not-sufficient"/>);</li><li>fragmentation of an escalated act into sub-threshold acts;</li><li>classifier unavailable or timing out (expected: stricter class, never ordinary);</li><li>resubmission of an escalated intent seeking a lower class;</li><li>concurrent ordinary and escalated authority for the same intent;</li><li>approval granted on a preview that differs from the sink-reconstructed act;</li><li>revocation during a declared staleness window;</li><li>client timeout followed by retry of the same intent;</li><li>verification-exhaustion load.</li></ul>
<t>A system should not claim high-assurance execution finality solely because the happy-path request succeeds.</t>
</section>
<section anchor="resources" numbered="true"><name>Implementation and Related Resources</name>
<t>The following runnable reference implementations are informative. They are not normative parts of this document.</t>
<ul><li>Execution Handle -- Exact-Act Binding, Sink Verification, Atomic Consumption and Adversarial Test Harness: <eref target="https://github.com/sangmdas/Execution-Handle-Exact-Act-Binding-Sink-Verification-Atomic-Consumption-Adversarial-Test-Harness"/>. Covers exact-act binding, sink verification, replay/single-use behavior, canonicalization, concurrency, atomic consumption, and negative-control testing.</li><li>Composite Execution Finality Reference: <eref target="https://github.com/sangmdas/Composite-Execution-Finality-Reference"/>. Composes execution-finality properties across distributed or multi-stage execution paths.</li><li>Preventing AI Hallucinations and Unauthorized Actions -- Runnable Reference Implementation: <eref target="https://github.com/sangmdas/Preventing-AI-Hallucinations-and-Unauthorized-Actions-Runnable-Reference-Implementation"/>. Demonstrates Candidate Act formation, non-effective state, validation evidence, scoped execution authority, and sink-side control of AI-generated actions.</li><li>Payment Execution Finality for Agentic API and Automated Payments -- Runnable Reference Implementation: <eref target="https://github.com/sangmdas/Payment-Execution-Finality-for-Agentic-API-and-Automated-Payments-Runnable-Reference-Implementation"/>. Shows why identity and authorization alone are insufficient without exact beneficiary, amount, freshness, replay, and final execution controls.</li></ul>
<t>Closely related Internet-Drafts are listed in the Informative References, in particular <xref target="I-D.das-execution-finality-deployment"/>, <xref target="I-D.das-agentic-effectuation-boundary"/>, <xref target="I-D.das-execution-handle"/>, and <xref target="I-D.das-composite-execution-finality"/>.</t>
</section>
<section anchor="conclusion" numbered="true"><name>Conclusion</name>
<t>Dynamic trust, continuous authorization, attestation, policy engines, and human approval are all useful, and identity is necessary. None of them should be confused with the final consequence boundary merely because they produce an <tt>ALLOW</tt>, <tt>DENY</tt>, <tt>RESTRICT</tt>, or <tt>ESCALATE</tt> decision. Nor should a Finality Sink be confused with the whole architecture merely because it sits at that boundary.</t>
<t>The architecture described here adds a different invariant:</t>
<blockquote><t><strong>The proposed act remains non-effective until the exact consequence about to occur is independently bound to current authority and accepted by the component that still has the technical ability to prevent that consequence.</strong></t></blockquote>
<t>Escalation therefore does not simply mean "trust is lower; review this request." It means:</t>
<blockquote><t><strong>Ordinary execution authority is insufficient. Keep the Candidate Act non-effective, derive a narrower consequence boundary, apply additional controls, encode those controls into the execution authority, and require the Finality Sink to verify them again against current state before anything becomes real.</strong></t></blockquote>
<t>That is the distinction between <strong>trust escalation</strong> and <strong>Escalated Conditional Execution Finality</strong>.</t>
<t>In concise architectural terms:</t>
<blockquote><t><strong>The Candidate Act identifies and freezes the proposed consequence. The protected finality pipeline determines the permitted consequence boundary. The Execution Handle represents bounded authority to cross that boundary. The Finality Sink independently verifies that the actual operation remains congruent with that authority and current protected state, and only then permits effectuation. Remove any one of these required functions, and the remaining Finality Sink may become only a final policy check rather than an execution-finality architecture.</strong></t></blockquote>
<t>The final principle remains:</t>
<blockquote><t><strong>Computation is not authority. Authorization is not consequence. Historical approval is not current execution authority.</strong></t></blockquote>
</section>
<section anchor="security" numbered="true"><name>Security Considerations</name>
<t>Execution finality should be treated as a security boundary rather than an advisory policy service. Failure to completely mediate consequence paths can invalidate the finality guarantee.</t>
<t>A Finality Sink deployed without the supporting architecture described in <xref target="sink-not-sufficient"/> and <xref target="system-property"/> should not be represented as providing execution finality. Without a bound Candidate Act, non-effective state, bound authority, protected current state, replay state, deterministic representation, path completeness, upstream-derived escalation semantics, and atomic effectuation, it provides only a final policy check.</t>
<t>Implementations need to specifically consider parameter substitution and semantic ambiguity (<xref target="exact-act"/>, <xref target="canonicalization"/>); stale policy and revocation (<xref target="revocation-fencing"/>); replay and concurrent authority use (<xref target="replay"/>); snapshot rollback (<xref target="snapshot-rollback"/>); sink substitution; agent-chain escalation laundering (<xref target="escalation-laundering"/>); human-approval replay (<xref target="approval-bypass"/>); proxy bypass and administrative bypass (<xref target="sink-bypass"/>); sink compromise (<xref target="sink-compromise"/>); verification exhaustion (<xref target="verification-exhaustion"/>); crash ambiguity (<xref target="crash"/>); side channels; receipt forgery; and recovery behavior.</t>
<t>The assumptions, adversary capabilities, and invariants under which the properties are claimed are stated in <xref target="security-model"/>. Graduated release introduces attacks aimed at reaching a less strict class, namely fragmentation, fail-open classification, resubmission, parallel authority, probing, reviewer exhaustion, and break-glass abuse; these are covered in <xref target="escalation-attacks"/>. Conformance can be assessed per enforcement point (<xref target="enforcement-points"/>); EP-13 through EP-17 in particular identify near-equivalent implementations that do not provide the property. Latency optimizations are safe only within the staleness and approval-window limits in <xref target="staleness"/> and <xref target="approval-windows"/>. Limits that remain unsolved are listed in <xref target="open-problems"/>.</t>
<t>Security evaluation should include adversarial and negative tests, not only successful execution tests (<xref target="testing"/>). A useful validation question is:</t>
<blockquote><t><strong>Can a protected consequence be produced when the required finality evidence is absent, stale, mismatched, replayed, revoked, malformed, redirected, or unavailable?</strong></t></blockquote>
<t>The expected result for the claimed protected path is: no unauthorized protected effect.</t>
</section>
<section anchor="privacy" numbered="true"><name>Privacy Considerations</name>
<t>Execution-finality artifacts may expose sensitive information, for example recipient and financial amount, data classification and purpose, jurisdiction, resource identity, agent identity, and internal policy state.</t>
<t>Finality systems can accumulate highly sensitive evidence. Implementations should avoid turning the execution-control architecture into a general surveillance mechanism. Receipts should contain only the information needed for the selected assurance purpose.</t>
<t>Profiles should minimize disclosure. Potential techniques include keyed digests and domain-separated hashes; encrypted receipts and encrypted references; commitments and selective disclosure; short retention; pseudonymous identifiers; and proofs over protected state rather than disclosure of raw state.</t>
<t>Auditability must not automatically imply unrestricted observability.</t>
</section>
<section anchor="iana" numbered="true"><name>IANA Considerations</name>
<t>This document has no IANA actions.</t>
<t>If later protocol work introduces registered identifiers, appropriate IANA registries may be considered separately. Such identifiers could include finality profiles, receipt claims, Candidate Act semantic profiles, assurance classes, Finality Sink types, algorithm suites, and error codes.</t>
</section>
  </middle>
  <back>
    <references>
      <name>References</name>
      <references>
        <name>Normative References</name>
        <reference anchor="RFC2119" target="https://www.rfc-editor.org/info/rfc2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author initials="S." surname="Bradner" fullname="S. Bradner"/>
            <date year="1997" month="March"/>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC8174" target="https://www.rfc-editor.org/info/rfc8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author initials="B." surname="Leiba" fullname="B. Leiba"/>
            <date year="2017" month="May"/>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
      </references>
      <references>
        <name>Informative References</name>
        <reference anchor="RFC6749" target="https://www.rfc-editor.org/info/rfc6749">
          <front>
            <title>The OAuth 2.0 Authorization Framework</title>
            <author initials="D." surname="Hardt" fullname="D. Hardt" role="editor"/>
            <date year="2012" month="October"/>
          </front>
          <seriesInfo name="RFC" value="6749"/>
          <seriesInfo name="DOI" value="10.17487/RFC6749"/>
        </reference>
        <reference anchor="RFC9396" target="https://www.rfc-editor.org/info/rfc9396">
          <front>
            <title>OAuth 2.0 Rich Authorization Requests</title>
            <author initials="T." surname="Lodderstedt" fullname="T. Lodderstedt"/>
            <author initials="J." surname="Richer" fullname="J. Richer"/>
            <author initials="B." surname="Campbell" fullname="B. Campbell"/>
            <date year="2023" month="May"/>
          </front>
          <seriesInfo name="RFC" value="9396"/>
          <seriesInfo name="DOI" value="10.17487/RFC9396"/>
        </reference>
        <reference anchor="RFC9334" target="https://www.rfc-editor.org/info/rfc9334">
          <front>
            <title>Remote ATtestation procedureS (RATS) Architecture</title>
            <author initials="H." surname="Birkholz" fullname="H. Birkholz"/>
            <author initials="D." surname="Thaler" fullname="D. Thaler"/>
            <author initials="M." surname="Richardson" fullname="M. Richardson"/>
            <author initials="N." surname="Smith" fullname="N. Smith"/>
            <author initials="W." surname="Pan" fullname="W. Pan"/>
            <date year="2023" month="January"/>
          </front>
          <seriesInfo name="RFC" value="9334"/>
          <seriesInfo name="DOI" value="10.17487/RFC9334"/>
        </reference>
        <reference anchor="RFC9052" target="https://www.rfc-editor.org/info/rfc9052">
          <front>
            <title>CBOR Object Signing and Encryption (COSE): Structures and Process</title>
            <author initials="J." surname="Schaad" fullname="J. Schaad"/>
            <date year="2022" month="August"/>
          </front>
          <seriesInfo name="STD" value="96"/>
          <seriesInfo name="RFC" value="9052"/>
          <seriesInfo name="DOI" value="10.17487/RFC9052"/>
        </reference>
        <reference anchor="I-D.das-execution-finality-deployment" target="https://datatracker.ietf.org/doc/draft-das-execution-finality-deployment/">
          <front>
            <title>Execution-Finality Architecture for AI and Autonomous Critical Systems</title>
            <author initials="S." surname="Das" fullname="Sangam Das"/>
            <date year="2026"/>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-das-execution-finality-deployment"/>
        </reference>
        <reference anchor="I-D.das-agentic-effectuation-boundary" target="https://datatracker.ietf.org/doc/draft-das-agentic-effectuation-boundary/">
          <front>
            <title>When AI Agents Hold the Keys: Threat Model and Execution-Finality Requirements for Autonomous High-Consequence Systems</title>
            <author initials="S." surname="Das" fullname="Sangam Das"/>
            <date year="2026" month="September"/>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-das-agentic-effectuation-boundary"/>
        </reference>
        <reference anchor="I-D.das-execution-handle" target="https://datatracker.ietf.org/doc/draft-das-execution-handle/">
          <front>
            <title>Possession Is Not Authority: Execution Handles for Exact-Act, Sink-Bound Execution Authority</title>
            <author initials="S." surname="Das" fullname="Sangam Das"/>
            <date year="2026" month="September"/>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-das-execution-handle"/>
        </reference>
        <reference anchor="I-D.das-composite-execution-finality" target="https://datatracker.ietf.org/doc/draft-das-composite-execution-finality/">
          <front>
            <title>Partial Commit Is Not Finality: Composite Execution Finality</title>
            <author initials="S." surname="Das" fullname="Sangam Das"/>
            <date year="2026" month="September"/>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-das-composite-execution-finality"/>
        </reference>
        <reference anchor="I-D.das-protocols-candidate-act-finality" target="https://datatracker.ietf.org/doc/draft-das-protocols-candidate-act-finality/">
          <front>
            <title>Candidate-Act Execution Finality</title>
            <author initials="S." surname="Das" fullname="Sangam Das"/>
            <date year="2026"/>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-das-protocols-candidate-act-finality"/>
        </reference>
        <reference anchor="I-D.das-execution-finality-ai-boundary" target="https://datatracker.ietf.org/doc/draft-das-execution-finality-ai-boundary/">
          <front>
            <title>An Execution Interlock at the AI Model-to-External-Effect Boundary</title>
            <author initials="S." surname="Das" fullname="Sangam Das"/>
            <date year="2026"/>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-das-execution-finality-ai-boundary"/>
        </reference>
        <reference anchor="I-D.das-finality-bound-revocation" target="https://datatracker.ietf.org/doc/draft-das-finality-bound-revocation/">
          <front>
            <title>Revoked but Still Executable: Closing the Authorization-to-Effect Gap with Finality-Bound Revocation</title>
            <author initials="S." surname="Das" fullname="Sangam Das"/>
            <date year="2026" month="September"/>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-das-finality-bound-revocation"/>
        </reference>
        <reference anchor="I-D.das-state-policy-continuity-finality" target="https://datatracker.ietf.org/doc/draft-das-state-policy-continuity-finality/">
          <front>
            <title>When Valid Authorization Becomes Stale: State and Policy Continuity at the Execution-Finality Boundary</title>
            <author initials="S." surname="Das" fullname="Sangam Das"/>
            <date year="2026" month="September"/>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-das-state-policy-continuity-finality"/>
        </reference>
        <reference anchor="I-D.das-consequence-path-completeness" target="https://datatracker.ietf.org/doc/draft-das-consequence-path-completeness/">
          <front>
            <title>When the Gate Can Be Bypassed: Consequence-Path Completeness for Execution Finality</title>
            <author initials="S." surname="Das" fullname="Sangam Das"/>
            <date year="2026" month="September"/>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-das-consequence-path-completeness"/>
        </reference>
        <reference anchor="I-D.das-execution-finality-enforcement-profiles" target="https://datatracker.ietf.org/doc/draft-das-execution-finality-enforcement-profiles/">
          <front>
            <title>Execution-Finality Enforcement Profiles</title>
            <author initials="S." surname="Das" fullname="Sangam Das"/>
            <date year="2026"/>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-das-execution-finality-enforcement-profiles"/>
        </reference>
      </references>
    </references>
<section anchor="alternative-titles" numbered="true"><name>Alternative Titles</name>
<t>This appendix is informative. It lists alternative descriptive titles under which the architecture in this document may be referenced or discovered:</t>
<ol><li>Graduated and Escalated Conditional Execution Finality for AI Agents and Autonomous Systems</li><li>Graduated Runtime Authorization for AI Agents and Autonomous Systems: Escalated Conditional Execution Finality for Elevated-Risk Actions</li><li>Runtime Authorization and Execution Control for AI Agents and Autonomous Systems</li><li>Continuous Authorization and Execution Finality for High-Risk AI Agent Actions</li><li>AI Agent Security: Runtime Authorization and Final Execution Control for High-Consequence Actions</li><li>Graduated Authorization for AI Agents: Conditional Execution Control at the Effectuation Boundary</li><li>Risk-Based Authorization and Execution Finality for Autonomous AI Systems</li><li>Zero-Trust Execution Control for AI Agents and High-Risk Autonomous Actions</li><li>Execution-Time Policy Enforcement for AI Agents and Autonomous Systems</li><li>Conditional Authorization and Final Effectuation Control for Agentic AI</li><li>High-Assurance Runtime Authorization for AI Agents, Autonomous Systems, and Critical Infrastructure</li></ol>
</section>
  </back>
</rfc>
