<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE rfc [
<!ENTITY nbsp "&#160;">
]>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude"
     category="info"
     docName="draft-das-purpose-execution-finality-02"
     ipr="trust200902"
     submissionType="independent"
     obsoletes="" updates="" xml:lang="en"
     tocInclude="true" tocDepth="3" symRefs="true" sortRefs="true"
     version="3">

  <front>
    <title abbrev="Data-Purpose Laundering Prevention">Data-Purpose Laundering Prevention: Execution-Finality for
    Preventing Cross-Domain Data Reuse</title>

    <seriesInfo name="Internet-Draft" value="draft-das-purpose-execution-finality-02"/>

    <author initials="S." surname="Das" fullname="Sangam Kumar Das">
      <organization>Independent Inventor</organization>
      <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="10"/>

    <area>Security</area>
    <workgroup>Individual Submission</workgroup>

    <keyword>purpose limitation</keyword>
    <keyword>execution finality</keyword>
    <keyword>purpose laundering</keyword>
    <keyword>privacy</keyword>
    <keyword>capability</keyword>
    <keyword>access control</keyword>
    <keyword>authorization</keyword>
    <keyword>data protection</keyword>
    <keyword>GDPR</keyword>
    <keyword>AI Act</keyword>
    <keyword>agentic AI</keyword>
    <keyword>zero trust</keyword>
    <keyword>attestation</keyword>
    <keyword>data lineage</keyword>
    <keyword>cross-domain data reuse</keyword>

    <abstract>
      <t>Consider a concrete case: a user invokes a highly capable AI model
      under a declared purpose of education, but the resulting capability
      is in fact used for a military or terrorist end -- an illustrative
      example, not a claim about any real deployment. When such misuse
      surfaces, an unresolved question follows: is the model provider
      liable, is the user liable, or is the jurisdiction that permitted
      the deployment liable? This document does not answer that question
      -- liability determination remains an external legal question for
      the responsible court, regulator, or contracting parties -- but it
      addresses the technical gap that makes the question unanswerable
      today. Systems that collect data, or grant capability, for one
      stated purpose routinely permit that data or capability to be
      consumed for a different purpose, not because the second use was
      authorized, but because nothing in the protocol path was capable of
      refusing it or of recording what was actually authorized. The most
      common technical control in deployment today is a self-asserted
      purpose string: a "purpose" claim in a token, a field in an API
      request, a comment in a data-sharing agreement. A self-asserted
      string is evidence of intent, not proof of authority, and it fails
      precisely when it matters most -- when the requester lies. This
      architecture addresses that loophole deterministically: it makes an
      undeclared or purpose-switched use technically detectable and
      refusable at the point of use, and it produces verifiable evidence
      of what was actually authorized, so that any subsequent liability
      determination can be argued from that evidence rather than from an
      unverifiable self-assertion. Achieving that determinism introduces
      a bounded, measurable amount of evaluation latency at the point of
      use; this document treats that latency as an acceptable, secured
      trade-off for closing an otherwise unverifiable gap, not as a cost
      to be minimized at the expense of the guarantee. The premise is not
      that AI innovation should slow down, any more than cars should be
      built slower; it is that innovation moving this fast needs the
      technical equivalent of a seat belt.</t>

      <t>A runnable reference implementation accompanies this document at
      <eref target="https://github.com/sangmdas/Purpose-Execution-Finality-Validator-to-Prevent-Data-Purpose-Laundering-in-AI-Systems">Purpose Execution Finality Validator -- Runnable Reference Implementation</eref>.</t>
    </abstract>
  </front>

  <middle>

    <section anchor="intro" numbered="true" toc="default">
      <name>Introduction</name>

      <t>Purpose limitation is a stated requirement across data protection
      law, sectoral regulation, and internal governance policy: data
      collected for one purpose should not be repurposed for another
      without new authority. It is, at the protocol level, almost never
      enforced. What is typically enforced is that a request carries a
      "purpose" value the requester chose to write down.</t>

      <t>This gap is not a corner case. It is the default shape of most
      data-sharing architectures in production today: an access-control
      check confirms that a caller is <em>permitted to call the API</em>,
      and a separate, unenforced convention -- a contract clause, a
      privacy notice, a code comment -- says what the caller is supposed
      to do with the response. Nothing in the request path distinguishes
      a truthful purpose claim from a false one, because the claim was
      never checked against anything the requester does not control.</t>

      <t>This document uses a single concrete scenario to walk through
      what changes when purpose is treated as something to be verified
      rather than declared. A delivery application collects a home
      address in order to fulfil an order. An unrelated advertising
      system later attempts to use that same address to infer household
      income for ad targeting. Every variation of that attempt -- a
      direct request, a relabeled request, a request issued from inside
      an attested secure enclave, a request for a value merely
      <em>derived</em> from the address -- is traced through an
      enforcement boundary that answers one question before doing
      anything else: is this caller, this operation, and this destination
      actually authorized, based on records the caller cannot write
      to?</t>

      <t>The architecture generalizes past the delivery/advertising
      example to any setting where data crosses an organizational,
      workload, or trust boundary and the receiving side has an incentive
      to reuse it for something other than what it was released for:
      cross-tenant AI agent tool use, cross-border data transfer under
      jurisdictional restriction, and inter-service data sharing inside a
      single company under an internal purpose limitation policy are all
      instances of the same problem. This document keeps the running
      example narrow so the mechanism stays concrete; companion drafts in
      the same series (<xref target="DAS-EU-AI-ACT"/>,
      <xref target="DAS-GLOBAL-PRIVACY"/>,
      <xref target="DAS-PRECISION-EGRESS"/>) apply the same underlying
      architecture to EU AI Act high-risk system enforcement,
      general-purpose privacy-execution enforcement, and precision-bounded
      data egress respectively.
      <xref target="FUTURIUM-PURPOSE-LAUNDERING"/> develops the GDPR
      purpose-limitation and high-risk AI governance framing of this same
      delivery/advertising pattern in regulatory detail, and
      <xref target="FUTURIUM-PAPER-COMPLIANCE"/> situates that framing
      within the broader argument for moving from paper compliance to
      technical enforcement under GDPR and the EU AI Act; this document
      is the protocol-mechanics counterpart to that discussion. See
      <xref target="resources"/> for a Resources pointer to the drafts
      and the runnable reference implementation that develop these
      mechanics further.</t>

      <t>This document specifies an execution-finality architecture in
      which a Candidate Act to read, transmit, or derive from a protected
      data object does not become effective merely because a caller labels
      its request with an allowed purpose. Effect is withheld until a
      Protected Enforcement Domain verifies caller identity, requested
      operation, and destination against binding records -- not against
      caller-supplied metadata -- and issues a scoped, non-bearer
      Execution Handle before any release occurs. The document works
      through a single running example (a delivery address later targeted
      by an unrelated advertising system) to make the failure mode and the
      enforcement boundary concrete, and states plainly which part of the
      problem this architecture does not solve. It is offered as an
      architectural pattern for discussion, not as a proposal for a new
      wire protocol.</t>

      <t>Cross-referencing data across systems, including in advertising,
      is a legitimate and economically necessary function, and this
      document does not argue for eliminating it; doing so would stall
      innovation and materially harm the businesses that depend on it.
      What this architecture offers such systems is a way to make an
      authorized combination of data technically verifiable at the
      moment it happens, rather than leaving that boundary to rest on
      a data-sharing agreement nobody downstream actually checks --
      making lawful cross-referencing demonstrable, not making
      cross-referencing itself the target.</t>

      <t>The same gap appears when four applications sit on a shared
      raw-data path. Applications A, B, and C may be known operators:
      they host to published standards, maintain written ethics and
      paper policies, and implement the technical controls those
      policies require. This document does not argue that such
      operators should be denied raw data they are authorized to
      receive. Application D may request that same raw object.
      Paper policy and a self-asserted purpose string give no
      technical reason to believe that D will confine the object to
      the purpose and jurisdiction under which it was collected,
      rather than reuse it for an unauthorized purpose -- including
      surveillance or intelligence activity directed against the
      jurisdiction that originally authorized collection. This
      architecture does not ask A, B, or C to stop receiving
      authorized raw data; it asks that D's Candidate Act be refused
      at the Protected Enforcement Domain unless binding records,
      not D's own label, establish that D, the requested operation,
      and the destination are actually authorized -- so that faith
      in D is replaced by a check D cannot write.</t>

      <t>A further motivation is stated directly here because it shapes
      several design choices in this document: the same technical
      capacity that lets an advertising system profitably combine
      location and behavioral signals across sources is, absent a
      verifiable purpose boundary, also capable of exposing patterns --
      such as the movement of military personnel or the operating rhythm
      of critical infrastructure -- to a party in a jurisdiction other
      than the one the data was collected in. Aggregated commercial
      location and behavioral data has, in publicly reported incidents,
      already been shown capable of revealing exactly this kind of
      sensitive pattern. This document does not ask commercial systems
      to stop combining data for legitimate purposes; it asks that a
      combination authorized for commercial targeting be technically
      distinguishable, at the moment of use, from a combination that has
      crossed into cross-jurisdictional intelligence-gathering territory
      the data was never authorized for.</t>

      <t>The architecture does not claim to solve purpose limitation in
      general. <xref target="worked-example-close"/> and
      <xref target="threat-model"/> state directly what remains unsolved
      once data has been legitimately released as plaintext to an
      authorized recipient.</t>

      <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL
      NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED",
      "MAY", and "OPTIONAL" in this document are to be interpreted as
      described in BCP&nbsp;14 <xref target="RFC2119"/>
      <xref target="RFC8174"/> when, and only when, they appear in all
      capitals, as shown here.</t>
    </section>

    <section anchor="terminology" numbered="true" toc="default">
      <name>Terminology</name>

      <dl newline="false" spacing="normal">
        <dt>Candidate Act:</dt>
        <dd>A request to read, transmit, transform, or derive from a
        protected data object. A Candidate Act has no effect on its own;
        it is a proposal for an effect.</dd>

        <dt>Non-Effective State:</dt>
        <dd>The state of a Candidate Act prior to validation. No data
        release, decryption, or downstream write occurs while a Candidate
        Act remains in this state.</dd>

        <dt>Protected Enforcement Domain (PED):</dt>
        <dd>The component that evaluates a Candidate Act against binding
        records -- caller identity, order/workflow state, recipient
        assignment, and policy version -- and decides whether to advance
        it out of the Non-Effective State. The PED does not accept
        caller-supplied metadata (such as a "purpose" field) as evidence
        on its own.</dd>

        <dt>Execution Handle:</dt>
        <dd>A short-lived, non-bearer, scoped authorization issued by the
        PED after a Candidate Act passes validation. An Execution Handle
        is bound to a specific data object, operation, requester identity,
        and recipient; it is not a general-purpose credential and is not
        intended to be transferable.</dd>

        <dt>Finality Sink:</dt>
        <dd>The boundary at which a protected data object, or a value
        derived from it, is actually released, decrypted, or written to a
        destination store. The Finality Sink accepts only a valid,
        unexpired, unrevoked Execution Handle.</dd>

        <dt>Ledger-Anchored Validation Receipt (LAVR):</dt>
        <dd>An enforcement artifact -- not an audit log -- generated by
        the PED at the point a Candidate Act is validated or rejected. A
        LAVR records the check performed, its result, and a hash-chained,
        domain-signed anchor, and is generated regardless of outcome.</dd>

        <dt>Algorithmic Logic Fingerprint (ALF):</dt>
        <dd>A binding of the specific operation or computation a
        Candidate Act requests (e.g., "obtain delivery destination"
        versus "infer household income") to the set of operations the
        governing policy actually permits on that data object.</dd>

        <dt>Capability-Validated Inbound Descriptor (CVID):</dt>
        <dd>The structured description of an inbound Candidate Act --
        caller, requested operation, target object, destination -- that
        the PED evaluates against binding records before issuing an
        Execution Handle.</dd>

        <dt>Purpose Laundering:</dt>
        <dd>The practice, intentional or not, of obtaining data or a
        value derived from it under one declared purpose and consuming it
        under a different, unauthorized purpose, where the receiving
        system's own request format permits the original purpose label to
        travel with the data without being re-verified at the point of
        reuse.</dd>
      </dl>
    </section>

    <section anchor="problem" numbered="true" toc="default">
      <name>Problem Statement</name>

      <section anchor="purpose-not-verifiable" numbered="true" toc="default">
        <name>Self-Asserted Purpose Is Not Verifiable Purpose</name>
        <t>Most deployed systems that reference "purpose" at all do so as
        a string carried in a token claim (e.g., a JWT claim, see
        <xref target="RFC7519"/>), an API parameter, or a log field. That
        string is written by the same party requesting access. A
        verification step that only checks whether the field is present,
        well-formed, or drawn from an enumerated list does not verify that
        the caller's actual operation matches the label -- it verifies
        that the caller knows which label to write.</t>
      </section>

      <section anchor="attestation-vs-authz" numbered="true" toc="default">
        <name>Attestation Answers a Different Question Than
        Authorization</name>
        <t>Remote attestation (see <xref target="RFC9334"/>) establishes
        that a piece of code is running in an expected state on expected
        hardware. It does not establish that the workload attested is
        authorized to perform a specific operation on a specific data
        object. A correctly attested enclave running an unauthorized
        computation is still an unauthorized computation; attestation and
        purpose authorization are orthogonal checks, and treating a
        passed attestation as implicit authorization silently collapses
        that distinction.</t>
      </section>

      <section anchor="derived-data-carries" numbered="true" toc="default">
        <name>Derived Data Carries the Restriction, Not Just the
        Value</name>
        <t>A value computed from restricted data (e.g., an income
        estimate computed from a home address) is not automatically free
        of the restriction that governed the source, even where the
        derived value contains none of the original data verbatim.
        Without deliberate propagation of source lineage to the derived
        object, a downstream consumer of the derived value bypasses every
        control placed on the source.</t>
      </section>

      <section anchor="residual-limit" numbered="true" toc="default">
        <name>The Residual Limit: Plaintext Already Released</name>
        <t>Once a protected value is legitimately released as plaintext
        to an authorized recipient, this architecture -- or any
        architecture operating at the request/response boundary -- cannot
        guarantee that the recipient will not copy, screenshot, or
        re-transmit that value outside the enforced path.
        <xref target="worked-example-close"/> and
        <xref target="threat-model"/> return to this point; it is stated
        here because any reader evaluating this document for what it does
        NOT do should not have to search for the admission.</t>
      </section>
    </section>

    <section anchor="architecture" numbered="true" toc="default">
      <name>Architecture Overview</name>

      <t>The architecture separates two things that are frequently
      conflated in deployed systems: the authority to request an
      operation, and the capability to actually perform it. A Candidate
      Act carries no capability. It is evaluated by a Protected
      Enforcement Domain against records the requester did not write
      (order state, recipient assignment, policy version, workload
      identity). Only on a pass does the PED issue a scoped Execution
      Handle, and only a Finality Sink presented with a valid Execution
      Handle releases, decrypts, or writes the underlying value. Every
      evaluation, pass or fail, produces a LAVR.</t>

      <artwork name="" type="" align="left" alt="Candidate Act flowing through the Protected Enforcement Domain to an Execution Handle and Finality Sink"><![CDATA[
    Requester --Candidate Act--> [Protected Enforcement Domain]
                                         |
                           binding-record checks (Section 5.2)
                                         |
                                pass? --------> Execution Handle
                                         |              |
                                fail --> LAVR    Finality Sink
                                         |              |
                                       LAVR         release
]]></artwork>

      <t>This differs from a conventional access-control gate in one
      load-bearing respect: the PED's checks are defined over records
      external to the request (what the request <em>is about</em>), not
      over fields internal to the request (what the request
      <em>says about itself</em>). A caller cannot pass validation by
      changing what it writes in its own request.</t>
    </section>

    <section anchor="worked-example" numbered="true" toc="default">
      <name>Worked Example</name>

      <section anchor="collection" numbered="true" toc="default">
        <name>Collection: Binding the Data Object to a Permitted Use</name>
        <t>A customer provides a delivery address for a specific order.
        The address is stored as a protected data object. A separate,
        integrity-protected policy record binds that object to a single
        permitted workflow, operation, and recipient class, with an
        explicit disallowed-operation entry and an expiry:</t>

        <artwork name="" type="" align="left" alt="Policy record binding a data object to its permitted use"><![CDATA[
   Data object: address-619
   Allowed workflow: delivery-order-842
   Allowed operation: obtain delivery destination
   Allowed recipient: assigned courier service
   Disallowed operation: advertising-profile enrichment
   Expiry: configured delivery-access deadline
   Policy version: 38
]]></artwork>

        <t>The party that will later compute an advertising profile is
        never given the address's decryption key or database credentials.
        If it were, every check described below would be enforcement
        theater -- bypassable at will by the party the checks are meant
        to constrain.</t>
      </section>

      <section anchor="legit-request" numbered="true" toc="default">
        <name>A Legitimate Request</name>
        <t>The delivery service submits a Candidate Act:</t>

        <artwork name="" type="" align="left" alt="A legitimate Candidate Act requesting delivery destination"><![CDATA[
   Read address-619, for order-842, send to assigned-courier-6,
   operation: obtain delivery destination
]]></artwork>

        <t>The PED checks this against binding records, not against the
        request's own claims:</t>

        <table anchor="ped-check-table">
          <name>PED validation checks for the delivery Candidate Act</name>
          <thead>
            <tr><th>Check</th><th>Evidence checked</th></tr>
          </thead>
          <tbody>
            <tr><td>Is this really the delivery service?</td><td>Authenticated workload identity</td></tr>
            <tr><td>Does this order exist?</td><td>Order-management record</td></tr>
            <tr><td>Does this address belong to the order?</td><td>Protected order-to-address association</td></tr>
            <tr><td>Is this courier assigned?</td><td>Current courier-assignment record</td></tr>
            <tr><td>Is the requested operation permitted?</td><td>Versioned policy (ALF match)</td></tr>
            <tr><td>Is access still valid?</td><td>Order status, expiry, revocation state</td></tr>
          </tbody>
        </table>

        <t>A pass issues a short-lived Execution Handle scoped to this
        exact address, order, operation, and recipient; the Finality Sink
        releases the minimum necessary delivery data on presentation of
        that handle. Any check that cannot be completed -- a stale
        record, an ambiguous assignment, an expired policy version --
        MUST be treated as a failed check. The PED fails closed by
        default; it does not proceed on missing or ambiguous
        evidence.</t>
      </section>

      <section anchor="unauthorized-request" numbered="true" toc="default">
        <name>An Unauthorized Request</name>
        <t>An advertising workload submits:</t>

        <artwork name="" type="" align="left" alt="An unauthorized Candidate Act attempting income inference"><![CDATA[
   Read address-619, operation: infer household income,
   destination: advertising-profile-database
]]></artwork>

        <t>Every check in <xref target="legit-request"/> fails: the
        caller is not the delivery service, the operation is not the
        permitted operation, and the destination is not the permitted
        recipient. No Execution Handle is issued, no address is released,
        and no decryption authority is granted. The rejection occurs
        before the income computation begins -- blocking only the
        resulting advertisement, after the profiling computation has
        already run on the address, would not have prevented the
        unauthorized use; it would only have hidden its output.</t>
      </section>

      <section anchor="relabeled-request" numbered="true" toc="default">
        <name>A Relabeled Request</name>
        <t>The advertising workload resubmits with a relabeled purpose
        field:</t>

        <artwork name="" type="" align="left" alt="A relabeled Candidate Act claiming a delivery purpose"><![CDATA[
   Purpose: delivery, order: order-842
]]></artwork>

        <t>This does not change the outcome. The PED's checks are defined
        over the caller's authenticated identity, its destination, and
        its actual delivery-workflow authority -- none of which change
        because the request's purpose field changed. A caller that
        presents even a validly issued delivery Execution Handle from the
        wrong workload identity or toward the wrong destination MUST fail
        validation, provided identity and destination binding are
        actually enforced at the Finality Sink and not only at issuance
        time. Purpose, in this architecture, is a conclusion the PED
        reaches from verifiable relationships -- not an input the caller
        supplies.</t>
      </section>

      <section anchor="attested-enclave" numbered="true" toc="default">
        <name>A Request From Inside an Attested Enclave</name>
        <t>Suppose the income-inference computation runs inside a
        hardware Trusted Execution Environment (TEE) that successfully
        attests its own integrity. A successful attestation establishes
        that the enclave is running the code it claims to run; it does
        not establish that the code is authorized to decrypt address-619
        for this purpose. The PED still evaluates workload identity and
        requested operation against the same binding records, and an
        enclave running an income-profiling workload receives no
        authority to decrypt a delivery address it was never granted.</t>

        <t>A caveat: if a broadly authorized enclave already holds
        unrestricted plaintext access to the address for an unrelated
        legitimate reason, an output-only Finality Sink cannot
        retroactively undo profiling computation that already occurred
        inside it. Access and computation boundaries require enforcement
        at the point capability is granted, not only at the point output
        is written.</t>
      </section>

      <section anchor="derived-value-request" numbered="true" toc="default">
        <name>A Request for a Derived Value</name>
        <t>The advertising system instead attempts to write a value
        computed from, but not textually identical to, the address:</t>

        <artwork name="" type="" align="left" alt="A derived value that omits the source address"><![CDATA[
   customer-17 -> estimated high-income household
]]></artwork>

        <t>The value contains no street address. A Finality Sink that
        checks only for the literal restricted value would pass it. A
        Finality Sink that checks propagated source lineage does
        not:</t>

        <artwork name="" type="" align="left" alt="A derived object with tracked source lineage"><![CDATA[
   Derived object: income-estimate-52
   Restricted source: address-619
   Requested use: advertising
]]></artwork>

        <t>The profile-write boundary rejects the write on the lineage
        binding, not on pattern-matching the output. This requires
        deliberate, non-removable tracking of derived-data provenance; a
        label attached to the output that the producing workload can
        choose to omit provides no enforcement at all.</t>
      </section>

      <section anchor="worked-example-close" numbered="true" toc="default">
        <name>What This Architecture Does Not Close</name>
        <t>If an authorized courier receives the plaintext address and
        copies it into an unrelated application, the protected data
        service cannot guarantee the copy is never reused. Containment
        beyond this point requires controlled recipient software,
        restricted export paths, minimal disclosure, and downstream
        enforcement at the recipient's own boundary -- outside what a
        source-side PED can observe. Human observation, screenshots, and
        compromised endpoints remain outside this architecture's reach.
        The claim this document makes is therefore bounded: within an
        enforced system boundary, data can be made unavailable to
        unauthorized workloads, and unauthorized derived-value writes can
        be blocked. Preventing every possible reuse after legitimate
        plaintext disclosure is a different, and materially harder,
        problem that this document does not claim to solve.</t>
      </section>
    </section>

    <section anchor="threat-model" numbered="true" toc="default">
      <name>Threat Model</name>

      <t>In scope:</t>
      <ul spacing="normal">
        <li>A requester relabels or forges the purpose field of a request
        to obtain access to data it is not authorized to use for that
        purpose (<xref target="relabeled-request"/>).</li>
        <li>A requester assumes that running inside an attested TEE
        substitutes for a purpose-authorization check
        (<xref target="attested-enclave"/>).</li>
        <li>A requester attempts to obtain a value derived from
        restricted data as a way of evading a restriction on the source
        value (<xref target="derived-value-request"/>).</li>
        <li>A requester replays a validly issued Execution Handle from a
        different workload identity or toward a different destination
        than the one it was scoped to.</li>
      </ul>

      <t>Out of scope / residual risk:</t>
      <ul spacing="normal">
        <li>Reuse of data after legitimate plaintext release to an
        authorized recipient (<xref target="worked-example-close"/>).</li>
        <li>Compromise of the Protected Enforcement Domain itself, or of
        the binding records it evaluates against; this architecture
        assumes the PED and its record store are not themselves
        attacker-controlled.</li>
        <li>Side-channel or covert-channel exfiltration from within an
        authorized, attested computation.</li>
      </ul>
    </section>

    <section anchor="related-work" numbered="true" toc="default">
      <name>Relation to Existing Work</name>

      <t>The pattern of checking a request's declared purpose against a
      policy before granting access is not new in the access-control
      literature; purpose-based access control (PBAC) models and
      attribute-based access control frameworks such as XACML define
      policy evaluation over request attributes including purpose. This
      document's distinguishing element is that the evaluated attributes
      are drawn from binding records external to the request (order
      state, recipient assignment, workload identity), the resulting
      grant is a short-lived, non-bearer, single-scope Execution Handle
      rather than a general session grant, and derived-value writes are
      checked against propagated source lineage rather than against the
      presence or absence of a purpose label on the output.</t>

      <t>Decentralized information flow control (DIFC) systems address
      the derived-data problem in <xref target="derived-value-request"/>
      by propagating labels through computation at the operating-system
      or language-runtime level. This document does not specify a
      label-propagation mechanism; it specifies that a Finality Sink MUST
      reject a derived-value write that cannot demonstrate valid source
      lineage, leaving the propagation mechanism to the implementing
      system.</t>

      <t><xref target="RFC8707"/> (Resource Indicators for OAuth 2.0) and
      audience restriction in OAuth 2.0 bearer tokens address a related
      but narrower problem: binding a token to an intended resource
      server. This document's Execution Handle extends that idea to bind
      a grant to a specific operation and destination, evaluated per
      Candidate Act rather than issued once per session.</t>
    </section>

    <section anchor="wg-relevance" numbered="true" toc="default">
      <name>Relevance to IETF Working Groups</name>

      <section anchor="wg-gnap" numbered="true" toc="default">
        <name>GNAP</name>
        <t>GNAP <xref target="RFC9635"/> already separates the
        negotiation of a grant from its use, and supports fine-grained,
        per-request access rather than a single broad session token. The
        Execution Handle described here is compatible with a GNAP access
        token scoped to a single resource/operation pair; this document's
        contribution to GNAP-adjacent work is the requirement that the
        Authorization Server's grant decision be made against
        externally-verified binding records rather than against
        client-supplied purpose or context claims, and that a
        derived-resource request be evaluated against source lineage
        rather than treated as a fresh, unrelated grant.</t>
      </section>

      <section anchor="wg-oauth" numbered="true" toc="default">
        <name>OAUTH</name>
        <t>OAuth 2.0 <xref target="RFC6749"/> deployments that rely on a
        "purpose" or "scope" string supplied by the client are exposed to
        exactly the relabeling attack in <xref target="relabeled-request"/>.
        <xref target="RFC8707"/>'s audience restriction is a partial
        mitigation already in the OAuth toolkit; this document suggests
        that audience restriction alone is insufficient where the threat
        model includes a legitimately audience-scoped token presented for
        an operation outside its intended purpose, and that purpose
        SHOULD be a property the authorization server derives from
        verifiable request context rather than a bearer-supplied
        claim.</t>
      </section>

      <section anchor="wg-rats" numbered="true" toc="default">
        <name>RATS</name>
        <t><xref target="attested-enclave"/> is directly a RATS-relevant
        finding: this document treats a RATS <xref target="RFC9334"/>
        Attestation Result as answering "is this code running as
        expected" and treats purpose/operation authorization as a
        separate, subsequent check that a Relying Party MUST perform
        independently. Where RATS-based systems are used to gate access
        to sensitive data, this document's caution against conflating
        attestation with authorization is offered as an applicability
        consideration.</t>
      </section>

      <section anchor="wg-spice" numbered="true" toc="default">
        <name>SPICE</name>
        <t>SPICE's work on credential formats and selective disclosure is
        relevant to <xref target="collection"/>'s binding of a data
        object to a specific permitted workflow: a credential-based
        encoding of the "allowed workflow / allowed operation / allowed
        recipient" policy record would let the binding travel with the
        data object in a verifiable form rather than living only in a
        centralized policy store, which may be of interest to SPICE's
        scope on interoperable credential structures.</t>
      </section>

      <section anchor="wg-secdispatch" numbered="true" toc="default">
        <name>SECDISPATCH</name>
        <t>This document is submitted as an individual architectural
        pattern rather than a protocol specification, and the author does
        not assert a specific IETF venue for standardization. SECDISPATCH
        is the appropriate venue to determine whether, and where, a
        purpose-binding and derived-data-lineage mechanism of this kind
        warrants protocol-level standardization versus remaining an
        architectural pattern referenced by implementers of GNAP, OAuth,
        and RATS-based systems.</t>
      </section>

      <section anchor="wg-pearg" numbered="true" toc="default">
        <name>PEARG (IRTF)</name>
        <t>The Privacy Enhancements and Assessment Research Group is an
        IRTF research group rather than an IETF working group, and is
        noted here because <xref target="derived-data-carries"/> and
        <xref target="derived-value-request"/> (derived-data lineage) and
        <xref target="worked-example-close"/> (the residual
        plaintext-reuse limit) are research questions as much as
        engineering ones; PEARG's work on privacy threat modeling and
        assessment methodology is relevant to evaluating how completely a
        lineage-propagation mechanism actually closes the derived-data
        gap in practice.</t>
      </section>
    </section>

    <section anchor="security" numbered="true" toc="default">
      <name>Security Considerations</name>
      <t>The security of this architecture reduces to the integrity of
      the Protected Enforcement Domain and the binding records it
      evaluates against. An attacker who can write to the
      order-management record, the courier-assignment record, or the
      policy-version store used in <xref target="legit-request"/> can
      forge a passing evaluation without needing to compromise the PED's
      logic itself; those records MUST be integrity-protected to a
      standard at least as strong as the PED's own decision logic.
      Execution Handles MUST be short-lived, single-scope, and non-bearer
      (i.e., bound to and unusable outside the requester identity and
      destination they were issued for) to limit the value of a captured
      handle. LAVR generation on both pass and fail outcomes is REQUIRED
      so that a rejected Candidate Act is not silently dropped in a way
      that hides a probing attack pattern.</t>
    </section>

    <section anchor="privacy" numbered="true" toc="default">
      <name>Privacy Considerations</name>
      <t>This architecture is itself a privacy control, but it introduces
      its own data: the PED's binding records, and the LAVR trail,
      together describe who requested what data for what purpose and
      when. That record is sensitive in its own right and access to it
      SHOULD be governed by the same purpose-binding discipline described
      in this document, to avoid recreating the original problem one
      layer up. Implementations SHOULD apply data minimization to LAVR
      contents -- recording that a check passed or failed and against
      which policy version, rather than the full content of the
      Candidate Act, where the Candidate Act's content is itself
      sensitive.</t>
    </section>

    <section anchor="iana" numbered="true" toc="default">
      <name>IANA Considerations</name>
      <t>This document has no IANA actions.</t>
    </section>

    <section anchor="acknowledgments" numbered="true" toc="default">
      <name>Acknowledgments</name>
      <t>None yet.</t>
    </section>

    <section anchor="resources" numbered="true" toc="default">
      <name>Resources</name>
      <t><xref target="DAS-EU-AI-ACT"/> and
      <xref target="DAS-GLOBAL-PRIVACY"/> develop the execution-
      enforcement model summarized in this document in greater technical
      detail, including Candidate Acts, protected validation, scoped
      non-bearer authority, Finality Sink enforcement, and privacy and
      jurisdictional controls, together with deployment considerations
      not repeated here. Readers interested in the protocol mechanics are
      encouraged to review those drafts alongside
      <xref target="DAS-PRIVACY-FINALITY-IMPL"/>, a runnable reference
      implementation of the privacy/purpose-enforcement path described in
      <xref target="worked-example"/>.</t>

      <t><xref target="DAS-PRIVACY-FINALITY-IMPL"/>'s built-in demo
      enforces GDPR Article 5(1)(b) purpose limitation and AI Act-style
      technical enforcement obligations as one concrete instance of the
      general mechanism specified in this document. The demo models a
      customer support request scoped to CUSTOMER_SUPPORT
      (delivery_status, expected_delivery_date) and denies a resubmission
      of the same request under TARGETED_MARKETING before any Finality
      Sink effect is recorded -- the same Candidate Act / Protected
      Enforcement Domain / Finality Sink pattern this document describes,
      in regulation-agnostic form, as the delivery-address /
      advertising-profiling example in <xref target="worked-example"/>.
      The mapping between the two is direct:</t>

      <table anchor="impl-mapping-table">
        <name>Mapping between the reference implementation and this document</name>
        <thead>
          <tr><th>Reference implementation</th><th>This document</th></tr>
        </thead>
        <tbody>
          <tr><td>Candidate Act (canonical JSON, SHA-256 digest)</td><td>Candidate Act (<xref target="terminology"/>)</td></tr>
          <tr><td>Protected Enforcement Domain (PED)</td><td>Protected Enforcement Domain (<xref target="terminology"/>)</td></tr>
          <tr><td>Signed act-bound Validation Permit + workload proof-of-possession</td><td>Execution Handle, non-bearer, scoped (<xref target="terminology"/>)</td></tr>
          <tr><td>Finality Sink (independent re-verification)</td><td>Finality Sink (<xref target="terminology"/>)</td></tr>
          <tr><td>Denied TARGETED_MARKETING substitution</td><td><xref target="relabeled-request"/>, relabeled / purpose-substituted request</td></tr>
        </tbody>
      </table>

      <t>GDPR and the EU AI Act are the regulatory framing the reference
      implementation was built to demonstrate; the enforcement mechanism
      itself, as specified in this document, is regulation-agnostic and
      does not depend on any one jurisdiction's law.
      <xref target="DAS-PRIVACY-FINALITY-IMPL"/> explicitly disclaims
      that it decides whether a purpose is legally legitimate, whether
      consent is valid, or whether a controller satisfies any specific
      data-protection statute; it enforces machine-readable rules
      supplied to it, which is the same scope this document claims for
      the architecture in <xref target="architecture"/>.</t>

      <section anchor="prime-impl" numbered="true" toc="default">
        <name>Primary Reference Implementation</name>
        <t>A second, purpose-built reference implementation,
        <xref target="DAS-PURPOSE-FINALITY-IMPL"/> (the primary reference
        implementation for this document), models the exact worked
        example in <xref target="worked-example"/> directly rather than
        a GDPR-framed analogue: its baseline Candidate Act is a
        delivery-service request for <tt>address-619</tt> to obtain a
        delivery destination for <tt>assigned-courier-6</tt>, and its
        principal negative-control test is an advertising-service
        requester submitting the same object under a permitted-looking
        <tt>declared_purpose</tt> ("delivery") while its authenticated
        requester, workload, operation, and destination are all
        substituted for the advertising path -- exercising
        <xref target="relabeled-request"/> directly rather than by
        analogy. It additionally implements the Legitimacy and Authority
        Verification Record (LAVR) construct as a hash-chained,
        HMAC-authenticated decision log, and tests derived-data lineage
        propagation (<xref target="derived-data-carries"/>) with both a
        positive control (permitted lineage) and two documented negative
        controls (a lineage-stripping limitation and a compromised
        trusted-binding-record limitation), rather than treating lineage
        enforcement as unconditionally solved.</t>

        <t>The primary implementation's validation package comprises 88
        automated Python tests, 19 deterministic conformance vectors
        independently re-executed in Python, Go, and Node.js (57 total
        cross-language executions), and 2,000 seeded adversarial
        mutation trials (1,000 post-issuance field mutations, 500
        purpose-relabel attacks, and 500 wrong-holder proof-of-possession
        attempts), all denied as expected. Measured local software
        latency (p95, recorded Linux/x86-64 host) was benchmarked across
        three topologies:</t>

        <table anchor="prime-latency-table">
          <name>Primary reference implementation p95 latency by topology</name>
          <thead>
            <tr><th>Topology</th><th>p95</th><th>Repository regression target</th></tr>
          </thead>
          <tbody>
            <tr><td>In-process memory</td><td>0.2106 ms</td><td>&lt;= 5 ms</td></tr>
            <tr><td>In-process SQLite/WAL</td><td>0.2560 ms</td><td>&lt;= 10 ms</td></tr>
            <tr><td>Localhost HTTP sidecar</td><td>2.1363 ms</td><td>&lt;= 20 ms</td></tr>
          </tbody>
        </table>

        <t>As with <xref target="DAS-PRIVACY-FINALITY-IMPL"/>, these are
        reference-software engineering regression targets measured on a
        single local host, not IETF protocol requirements, and not TEE,
        HSM, GPU, WAN, or production-system performance claims; the
        sidecar figure is localhost loopback and excludes any real
        network round-trip. The implementation's own documented residual
        risks -- an authorized recipient copying plaintext after
        legitimate release, a compromised PED, a maliciously modified
        trusted binding record, stripped derived-data lineage, and
        covert/side channels -- match the limitations already stated in
        <xref target="derived-data-carries"/> and
        <xref target="worked-example-close"/>, and are not resolved by
        this or any other implementation in this family.</t>
      </section>

      <section anchor="other-impls" numbered="true" toc="default">
        <name>Other Reference Implementations</name>
        <t>Other reference implementations from the same author,
        supporting companion drafts in the same execution-finality
        portfolio, are provided here for context and are not relied
        upon by this document's normative content:
        <xref target="DAS-HALLUCINATION-IMPL"/> (preventing AI
        hallucination-driven and other unauthorized actions),
        <xref target="DAS-EGRESS-IMPL"/> (precision-bounded location
        release), and <xref target="DAS-6G-IMPL"/> (execution finality
        for AI-native 5G/6G and O-RAN).</t>
      </section>
    </section>

    <section anchor="latency" numbered="true" toc="default">
      <name>Latency Characteristics (Non-Normative)</name>

      <t>This section reports measured, not projected, latency for the
      <xref target="DAS-PRIVACY-FINALITY-IMPL"/> reference
      implementation's three sequential stages -- PED validation
      (<xref target="legit-request"/>'s checks), permit issuance plus
      workload proof-of-possession (the Execution Handle of
      <xref target="terminology"/>), and Finality Sink verify-and-commit
      (the atomic effect record of <xref target="architecture"/>) --
      each timed within a single request iteration so the three figures
      compose into one end-to-end path, at 500 iterations, on the SME
      support-agent demo Candidate Act. Two runs are reported: the
      implementation's own published figures, and an independent re-run
      performed for this document on different hardware, as a sanity
      check rather than a replacement measurement.</t>

      <table anchor="latency-table">
        <name>PED / permit / sink latency, published vs. independent re-run (microseconds)</name>
        <thead>
          <tr><th>Stage</th><th>Published median/p95/p99</th><th>Independent re-run median/p95/p99</th></tr>
        </thead>
        <tbody>
          <tr><td>PED validation</td><td>21.5 / 33.1 / 118.9</td><td>31.2 / 52.4 / 65.9</td></tr>
          <tr><td>Permit + PoP</td><td>95.1 / 145.1 / 338.1</td><td>120.1 / 154.0 / 190.5</td></tr>
          <tr><td>Sink verify + commit</td><td>271.4 / 371.9 / 499.7</td><td>335.4 / 385.9 / 459.9</td></tr>
          <tr><td>End-to-end (sum of medians)</td><td>~388.0</td><td>~486.7</td></tr>
        </tbody>
      </table>

      <t>Two observations follow directly from the data. First, the
      Finality Sink's atomic commit step (SQLite BEGIN IMMEDIATE plus
      unique-JTI replay check) dominates the total in both runs --
      roughly 60-70% of end-to-end median latency -- not the
      cryptographic verification steps (signature check,
      proof-of-possession). This is consistent with the general
      expectation that the fail-closed, atomic finality boundary of
      <xref target="architecture"/> is the more expensive operation to
      make correct, not the identity or purpose checks upstream of it.
      Second, both runs land the end-to-end path under half a
      millisecond, which is the basis for describing this as a
      hot-path-suitable operation for interactive request/response
      flows, subject to <xref target="feasibility"/>'s caveats about the
      sink's storage backend.</t>

      <t>As stated directly in the reference implementation and repeated
      here: this is a local Python microbenchmark on a single process,
      not a distributed-system or network-inclusive measurement, and it
      is NOT a protocol performance claim. It excludes network
      round-trip time between requester, PED, and Finality Sink when
      these run as separate services; excludes the cost of the
      binding-record lookups in <xref target="legit-request"/>'s check
      table (the demo's vaults are in-process, not a networked
      identity/order/policy store); and excludes concurrency effects --
      SQLite's single-writer model means throughput, not just per-request
      latency, is the binding constraint at production scale (see
      <xref target="feasibility"/>). A deployment claiming this latency
      profile MUST re-measure against its own storage backend, network
      topology, and binding-record sources before relying on these
      figures.</t>
    </section>

    <section anchor="feasibility" numbered="true" toc="default">
      <name>Feasibility and Legacy System Integration</name>

      <t><strong>Deployment topology.</strong> The PED, the Execution
      Handle issuer, and the Finality Sink are logically separable and
      MAY run as one process, as a sidecar per protected service, or as
      independently administered services (a pattern already anticipated
      by <xref target="DAS-PRIVACY-FINALITY-IMPL"/>'s note that
      vaults/PED/sink state can move into separate processes, TEEs, HSMs,
      confidential VMs, or DPUs/SmartNICs). The architecture is agnostic
      to which topology an adopter chooses; <xref target="latency"/>'s
      figures were measured in-process and should be treated as a floor,
      not a ceiling, once a real network hop separates these
      components.</t>

      <t><strong>Cold path / hot path split.</strong> Companion draft
      draft-das-execution-finality-protocol-layer-00 separates policy
      reasoning (which bindings apply, which policy version is current)
      from deterministic verification (does this specific Candidate Act
      satisfy those bindings). The former can be cached, precomputed, or
      evaluated asynchronously as records change; the latter is what
      <xref target="latency"/> measures and is designed to stay on the
      interactive request path. Implementers SHOULD keep policy lookups
      (the "cold" work) out of the per-request hot path so that the
      Finality Sink's atomic commit remains the dominant, and only,
      per-request cost.</t>

      <t><strong>Throughput and storage backend.</strong> The reference
      implementation's SQLite-backed replay/effect store uses a
      single-writer commit model; at the measured ~330-490 us per commit,
      a single Finality Sink instance backed by SQLite is bounded to
      roughly two to three thousand committed effects per second before
      write contention dominates. This is adequate for the SME demo's
      scale and NOT representative of a production deployment's
      requirements; a production Finality Sink SHOULD replace the
      single-writer store with a backend that supports concurrent atomic
      commit with equivalent replay-prevention guarantees (e.g., a
      transactional database cluster or an append-only ledger with
      unique-nonce enforcement), and MUST preserve the fail-closed,
      atomic-consume property of <xref target="legit-request"/> when
      doing so -- a faster backend that weakens atomicity reintroduces
      the race this architecture exists to close.</t>

      <t><strong>Legacy system integration without a flag day.</strong>
      This architecture is intended to be adopted incrementally, not as a
      wholesale replacement of existing access control:</t>

      <ul spacing="normal">
        <li>It SHOULD be deployed as an additional enforcement point
        positioned at or behind an existing API gateway, service mesh, or
        authorization layer (OAuth, GNAP, internal ABAC), not as a
        replacement for those systems. Coarse-grained authentication and
        general access control continue to run unchanged; this
        architecture adds a finer-grained, purpose-and-lineage-aware
        check at the specific data objects and operations an adopter
        chooses to protect.</li>

        <li>Adoption SHOULD proceed data-object-class by
        data-object-class. A newly protected class (e.g., delivery
        addresses, as in <xref target="worked-example"/>) is bound to
        policy and enforced from the moment it is onboarded; classes not
        yet onboarded continue to be served by whatever legacy access
        control already governs them.</li>

        <li>An unmigrated resource MUST NOT be represented, in logs,
        dashboards, or documentation, as being under this architecture's
        enforcement. A resource with no binding record is not
        "permissively allowed" by this architecture -- it is simply
        outside its scope, and an adopter that fails to mark that
        distinction risks the false sense of security this document
        argues against in <xref target="purpose-not-verifiable"/>.</li>

        <li>No retroactive protection is created for data already
        released under a legacy regime before onboarding.
        <xref target="worked-example-close"/>'s residual limitation
        applies identically here: onboarding a data class going forward
        does not constrain copies already made under the prior
        regime.</li>
      </ul>

      <t><strong>Real-time bidding and other latency-constrained
      environments.</strong> Real-time bidding (RTB) in programmatic
      advertising operates within an auction window commonly on the
      order of 100 milliseconds end-to-end across multiple participants
      (supply-side platform, ad exchange, and one or more demand-side
      platforms). This is among the tightest latency budgets this
      architecture might be applied to and deserves direct treatment
      rather than a general feasibility claim.</t>

      <t>Cross-referencing data across advertising systems -- combining
      signals from multiple sources to select or price an ad -- is a
      legitimate, economically load-bearing function of the industry
      and is not, by itself, the problem this document addresses. The
      problem is unauthorized cross-referencing: a system consuming a
      signal for a use it was never granted, the same reuse pattern
      illustrated with delivery data in <xref target="unauthorized-request"/>.
      Removing an advertising system's ability to combine data in order
      to make it "safe" would eliminate the function the system exists
      to perform and would stall a significant share of the economic
      activity the industry depends on; that is not this document's
      goal. The goal is to make an authorized combination technically
      demonstrable, and an unauthorized one technically blocked, rather
      than leaving the boundary between the two resting entirely on a
      data-sharing agreement that no downstream system actually checks
      -- this architecture is offered as a way to make lawful
      cross-referencing verifiable, not as a way to stop
      cross-referencing.</t>

      <t>Whether this is achievable inside a 100ms RTB budget is a
      question of where in the bid path enforcement is placed, not
      whether enforcement is possible at all:</t>

      <ul spacing="normal">
        <li>A per-bid Candidate Act evaluated against a live policy
        store, with a TEE remote-attestation round-trip inline in the
        bid path, is not compatible with a 100ms budget; the
        attestation handshake alone commonly consumes a large share of
        that budget on its own, independent of anything measured in
        <xref target="latency"/>.</li>

        <li><xref target="latency"/>'s measurements (sub-millisecond
        PED validation, permit issuance, and Finality Sink commit) are
        achievable in-path only if the expensive part -- deciding
        whether a given combination of data sources is authorized for
        a given advertiser/publisher/purpose triple -- is treated as
        cold-path work, evaluated and cached well before any individual
        bid, and refreshed on a policy change rather than on every
        auction. What remains in the 100ms hot path is then the cheap,
        deterministic step: verifying that this bid's Candidate Act
        matches an already-issued, still-valid Execution Handle for
        this exact combination -- the sub-millisecond range
        <xref target="latency"/> measured, not a fresh policy
        evaluation or a fresh attestation.</li>

        <li>Under this split, the architecture does not ask an RTB
        system to slow its auction down to perform compliance work
        live; it asks the system to be able to produce, on demand, a
        verifiable record that a specific data combination used in a
        specific bid was covered by a specific, current authorization
        -- which is close to what a regulator asking for evidence of
        purpose-limitation compliance is already asking advertising
        companies to be able to produce, typically without
        machine-checkable evidence to offer today.</li>
      </ul>

      <t>An implementer that attempts to fit full live policy evaluation
      and attestation into the per-bid path will fail the latency
      budget and should not attempt to. An implementer that separates
      authorization (cold, cacheable, amortized across many bids) from
      verification (hot, sub-millisecond, per bid) has a credible path
      to a compliance record without materially affecting auction
      latency -- and a credible, auditable basis for arguing that its
      cross-referencing practice is lawful, rather than merely
      asserted to be.</t>

      <t><strong>Feasibility summary.</strong> The mechanism itself --
      Candidate Act, binding-record check, scoped Execution Handle,
      atomic Finality Sink commit -- is implementable with commodity
      components (a policy/record store, an Ed25519 signing service, and
      a transactional commit boundary) and does not require new
      hardware, though <xref target="attested-enclave"/> notes that
      hardware-rooted attestation strengthens, without being required by,
      the workload-identity leg of <xref target="legit-request"/>'s
      checks. The primary adoption cost is organizational rather than
      cryptographic: identifying which binding records (order state,
      recipient assignment, workload identity) an adopter's systems
      already maintain reliably, versus which must be newly built, since
      the PED's validity depends entirely on the trustworthiness of the
      records it checks against (<xref target="security"/>).</t>
    </section>

  </middle>

  <back>
    <references anchor="normative-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 anchor="informative-references">
      <name>Informative References</name>

      <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="RFC9635" target="https://www.rfc-editor.org/info/rfc9635">
        <front>
          <title>Grant Negotiation and Authorization Protocol (GNAP)</title>
          <author initials="J." surname="Richer" fullname="J. Richer"/>
          <author initials="F." surname="Imbault" fullname="F. Imbault"/>
          <date year="2024" month="October"/>
        </front>
        <seriesInfo name="RFC" value="9635"/>
        <seriesInfo name="DOI" value="10.17487/RFC9635"/>
      </reference>

      <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="RFC7519" target="https://www.rfc-editor.org/info/rfc7519">
        <front>
          <title>JSON Web Token (JWT)</title>
          <author initials="M." surname="Jones" fullname="M. Jones"/>
          <author initials="J." surname="Bradley" fullname="J. Bradley"/>
          <author initials="N." surname="Sakimura" fullname="N. Sakimura"/>
          <date year="2015" month="May"/>
        </front>
        <seriesInfo name="RFC" value="7519"/>
        <seriesInfo name="DOI" value="10.17487/RFC7519"/>
      </reference>

      <reference anchor="RFC8707" target="https://www.rfc-editor.org/info/rfc8707">
        <front>
          <title>Resource Indicators for OAuth 2.0</title>
          <author initials="B." surname="Campbell" fullname="B. Campbell"/>
          <author initials="A." surname="Bansal" fullname="A. Bansal"/>
          <date year="2020" month="February"/>
        </front>
        <seriesInfo name="RFC" value="8707"/>
        <seriesInfo name="DOI" value="10.17487/RFC8707"/>
      </reference>

      <reference anchor="DAS-PRECISION-EGRESS" target="https://datatracker.ietf.org/doc/draft-das-precision-bounded-egress/">
        <front>
          <title>Precision-Bounded Egress</title>
          <author initials="S." surname="Das" fullname="S. Das"/>
          <date/>
        </front>
        <refcontent>Work in Progress</refcontent>
      </reference>

      <reference anchor="DAS-EU-AI-ACT" target="https://datatracker.ietf.org/doc/draft-das-eu-ai-act-execution-enforcement/">
        <front>
          <title>Technical Execution Enforcement for the EU AI Act</title>
          <author initials="S." surname="Das" fullname="S. Das"/>
          <date/>
        </front>
        <refcontent>Work in Progress</refcontent>
      </reference>

      <reference anchor="DAS-GLOBAL-PRIVACY" target="https://datatracker.ietf.org/doc/draft-das-global-privacy-execution-enforcement/">
        <front>
          <title>Global Privacy Execution Enforcement</title>
          <author initials="S." surname="Das" fullname="S. Das"/>
          <date/>
        </front>
        <refcontent>Work in Progress</refcontent>
      </reference>

      <reference anchor="FUTURIUM-PURPOSE-LAUNDERING" target="https://futurium.ec.europa.eu/en/apply-ai-alliance/community-content/preventing-data-purpose-laundering-agentic-ai-hardware-rooted-pre-effectuation-layer-gdpr-purpose">
        <front>
          <title>Preventing Data-Purpose Laundering by Agentic AI: A Hardware-Rooted Pre-Effectuation Layer for GDPR Purpose Limitation and High-Risk AI Governance</title>
          <author initials="S." surname="Das" fullname="S. Das"/>
          <date/>
        </front>
        <refcontent>EU AI Alliance Futurium</refcontent>
      </reference>

      <reference anchor="FUTURIUM-PAPER-COMPLIANCE" target="https://futurium.ec.europa.eu/en/apply-ai-alliance/posts/paper-compliance-technical-enforcement-making-gdpr-and-eu-ai-act-executable-ai-era">
        <front>
          <title>From Paper Compliance to Technical Enforcement: Making GDPR and the EU AI Act Executable in the AI Era</title>
          <author initials="S." surname="Das" fullname="S. Das"/>
          <date/>
        </front>
        <refcontent>EU AI Alliance Futurium</refcontent>
      </reference>

      <reference anchor="DAS-PRIVACY-FINALITY-IMPL" target="https://github.com/sangmdas/privacy-finality-reference">
        <front>
          <title>Privacy Finality Reference Implementation</title>
          <author initials="S." surname="Das" fullname="S. Das"/>
          <date/>
        </front>
        <refcontent>GitHub repository</refcontent>
      </reference>

      <reference anchor="DAS-PURPOSE-FINALITY-IMPL" target="https://github.com/sangmdas/Purpose-Execution-Finality-Validator-to-Prevent-Data-Purpose-Laundering-in-AI-Systems">
        <front>
          <title>Purpose-Execution-Finality Validator: Preventing Data-Purpose Laundering in AI Systems -- Runnable Reference Implementation</title>
          <author initials="S." surname="Das" fullname="S. Das"/>
          <date/>
        </front>
        <refcontent>GitHub repository</refcontent>
      </reference>

      <reference anchor="DAS-HALLUCINATION-IMPL" target="https://github.com/sangmdas/Preventing-AI-Hallucinations-and-Unauthorized-Actions-Runnable-Reference-Implementation">
        <front>
          <title>Preventing AI Hallucinations and Unauthorized Actions -- Runnable Reference Implementation</title>
          <author initials="S." surname="Das" fullname="S. Das"/>
          <date/>
        </front>
        <refcontent>GitHub repository</refcontent>
      </reference>

      <reference anchor="DAS-EGRESS-IMPL" target="https://github.com/sangmdas/Access-Is-Not-Egress-Precision-Bounded-Location-Release-Reference-Implementation">
        <front>
          <title>Access Is Not Egress: Precision-Bounded Location Release -- Reference Implementation</title>
          <author initials="S." surname="Das" fullname="S. Das"/>
          <date/>
        </front>
        <refcontent>GitHub repository</refcontent>
      </reference>

      <reference anchor="DAS-6G-IMPL" target="https://github.com/sangmdas/Execution-Finality-for-AI-Native-5G-6G-and-O-RAN---Runnable-Reference-Implementation">
        <front>
          <title>Execution-Finality for AI-Native 5G/6G and O-RAN -- Runnable Reference Implementation</title>
          <author initials="S." surname="Das" fullname="S. Das"/>
          <date/>
        </front>
        <refcontent>GitHub repository</refcontent>
      </reference>

      <reference anchor="DAS-AI-GOV-REFERENCE-IMPLEMENTATION" target="https://github.com/sangmdas/Execution-Finality-Technical-Enforcement-for-EU-AI-Act-and-AI-Governance-Constraints">
        <front>
          <title>Execution-Finality Technical Enforcement for EU AI Act and AI Governance Constraints -- Runnable Reference Implementation</title>
          <author initials="S." surname="Das" fullname="S. Das"/>
          <date/>
        </front>
        <refcontent>GitHub repository</refcontent>
      </reference>

      <reference anchor="DAS-REFERENCE-IMPLEMENTATION-V010" target="https://github.com/sangmdas/privacy-finality-reference/releases/tag/v0.1.0">
        <front>
          <title>Privacy Finality Reference Implementation, Release v0.1.0</title>
          <author initials="S." surname="Das" fullname="S. Das"/>
          <date/>
        </front>
        <refcontent>GitHub repository</refcontent>
      </reference>

      <reference anchor="DAS-HARDWARE-FINALITY-REFERENCE-IMPLEMENTATION" target="https://github.com/sangmdas/Hardware-Execution-Finality-for-AI-and-Autonomous-Systems">
        <front>
          <title>Hardware Execution Finality for AI and Autonomous Systems</title>
          <author initials="S." surname="Das" fullname="S. Das"/>
          <date/>
        </front>
        <refcontent>GitHub repository</refcontent>
      </reference>

      <reference anchor="DAS-GPU-CONFIDENTIAL-REFERENCE-IMPLEMENTATION" target="https://github.com/sangmdas/Execution-Finality-for-GPU-AI-Accelerators-and-Confidential-Workloads">
        <front>
          <title>Execution Finality for GPU AI Accelerators and Confidential Workloads</title>
          <author initials="S." surname="Das" fullname="S. Das"/>
          <date/>
        </front>
        <refcontent>GitHub repository</refcontent>
      </reference>

      <reference anchor="DAS-AGENTIC-ZEROTRUST-REFERENCE-IMPLEMENTATION" target="https://github.com/sangmdas/Execution-Finality-for-AI-Agents-GPUs-Confidential-Computing-and-Zero-Trust-Automation">
        <front>
          <title>Execution Finality for AI Agents, GPUs, Confidential Computing, and Zero-Trust Automation</title>
          <author initials="S." surname="Das" fullname="S. Das"/>
          <date/>
        </front>
        <refcontent>GitHub repository</refcontent>
      </reference>

      <reference anchor="DAS-RATS-MODEL-RELEASE-REFERENCE-IMPLEMENTATION" target="https://github.com/sangmdas/execution-finality-rats-ai-model-release">
        <front>
          <title>Execution Finality (RATS) for AI Model Release</title>
          <author initials="S." surname="Das" fullname="S. Das"/>
          <date/>
        </front>
        <refcontent>GitHub repository</refcontent>
      </reference>

      <reference anchor="DAS-TOOL-BINDING-REFERENCE-IMPLEMENTATION" target="https://github.com/sangmdas/tool_use-Is-Not-invoke-Binding-Execution-Finality-to-Agentic-Tool-Call-Interfaces-and-MCP">
        <front>
          <title>tool_use Is Not invoke(): Binding Execution-Finality to Agentic Tool-Call Interfaces and MCP</title>
          <author initials="S." surname="Das" fullname="S. Das"/>
          <date/>
        </front>
        <refcontent>GitHub repository</refcontent>
      </reference>

      <reference anchor="DAS-DIGITAL-SOVEREIGNTY-REFERENCE-IMPLEMENTATION" target="https://github.com/sangmdas/Digital-Sovereignty-Without-Data-Localisation-Compute-Plane-Authority-Plane-Execution-Finality">
        <front>
          <title>Digital Sovereignty Without Data Localisation: Compute-Plane / Authority-Plane Execution Finality</title>
          <author initials="S." surname="Das" fullname="S. Das"/>
          <date/>
        </front>
        <refcontent>GitHub repository</refcontent>
      </reference>

      <reference anchor="DAS-SECURITY-CROSS-DOMAIN-REFERENCE-IMPLEMENTATION" target="https://github.com/sangmdas/Execution-Finality-Security-for-Agentic-AI-Autonomous-Systems-Cloud-Payments-Telecom-OS-and-Robotics">
        <front>
          <title>Execution-Finality Security for Agentic AI, Autonomous Systems, Cloud, Payments, Telecom, OS, and Robotics</title>
          <author initials="S." surname="Das" fullname="S. Das"/>
          <date/>
        </front>
        <refcontent>GitHub repository</refcontent>
      </reference>

      <reference anchor="DAS-FUTURIUM-DIGITAL-SOVEREIGNTY-ARTICLE" target="https://futurium.ec.europa.eu/en/apply-ai-alliance/community-content/protecting-europe-technical-foundation-digital-sovereignty-data-protection-and-ai-governance">
        <front>
          <title>Protecting Europe: A Technical Foundation for Digital Sovereignty, Data Protection, and AI Governance</title>
          <author initials="S." surname="Das" fullname="S. Das"/>
          <date/>
        </front>
        <refcontent>EU AI Alliance Futurium</refcontent>
      </reference>
    </references>

    <section anchor="appendix-prime-detail" numbered="true" toc="default">
      <name>Primary Reference Implementation -- Detailed Validation Methodology</name>

      <t>This appendix records the detailed validation methodology for
      the primary reference implementation (<xref target="DAS-PURPOSE-FINALITY-IMPL"/>,
      <xref target="prime-impl"/>), at a level of granularity beyond the
      summary given in <xref target="prime-impl"/>. It is provided so
      that the specific test conditions, decision ordering, and negative
      controls behind the summary figures are independently inspectable.
      As throughout this document, these are reference-software
      engineering results, not protocol requirements.</t>

      <section anchor="appendix-test-env" numbered="true" toc="default">
        <name>Recorded Test Environment</name>
        <t>The validation was executed once, on the following recorded
        environment; the repository does not claim these figures on
        Windows, macOS, ARM64, HSMs, TEEs, GPUs, DPUs, SmartNICs,
        confidential VMs, Kubernetes, WAN networks, or production
        advertising systems:</t>
        <table anchor="appendix-env-table">
          <name>Recorded test environment</name>
          <thead><tr><th>Parameter</th><th>Recorded value</th></tr></thead>
          <tbody>
            <tr><td>Validation date</td><td>9 September 2026</td></tr>
            <tr><td>OS / kernel</td><td>Linux 6.18.35, x86-64, glibc 2.41</td></tr>
            <tr><td>CPU</td><td>Intel Xeon Platinum 8370C @ 2.80 GHz (5 logical CPUs visible)</td></tr>
            <tr><td>Python</td><td>3.13.5 (GCC 14.2.0 build)</td></tr>
            <tr><td>SQLite / OpenSSL</td><td>3.46.1 / 3.5.5</td></tr>
            <tr><td>Go / Node.js</td><td>1.23.2 linux/amd64 / 22.16.0</td></tr>
            <tr><td>Benchmark timer</td><td><tt>time.perf_counter_ns()</tt></td></tr>
          </tbody>
        </table>
      </section>

      <section anchor="appendix-baseline" numbered="true" toc="default">
        <name>Baseline Candidate Act, Binding Record, and Validation Context</name>
        <t>A deterministic baseline was used so every mutation could be
        compared against a known-valid act. The Candidate Act
        (<tt>act-001</tt>, policy version 38, 10-second validity window)
        requests <tt>obtain delivery destination</tt> on object
        <tt>address-619</tt> for workflow <tt>delivery-order-842</tt>,
        from requester/workload <tt>delivery-service</tt> /
        <tt>delivery-workload</tt>, to destination
        <tt>assigned-courier-6</tt>, carrying
        <tt>declared_purpose: delivery</tt>. The matching external
        binding record independently authorizes the same
        object/workflow/requester/workload/operation/destination/policy-version
        tuple and is valid for 60 seconds. The
        <tt>declared_purpose</tt> field is deliberately treated as
        untrusted requester-supplied metadata, never as authorization
        evidence -- the central test in
        <xref target="appendix-purpose-relabel"/> is whether relabeling
        it can rescue an unauthorized request; it cannot. The baseline
        validation context (authenticated requester/workload, order
        existence, object association, recipient assignment, binding
        store availability and integrity, attestation result, timeout
        flag) is independently varied in the negative tests below.</t>
      </section>

      <section anchor="appendix-ped-sequence" numbered="true" toc="default">
        <name>PED Decision Sequence</name>
        <t>The PED applies a deterministic, fail-closed evaluation
        order; any earlier failure short-circuits to DENY with an
        associated failure LAVR, and later checks are not reached:</t>
        <artwork><![CDATA[
 1. Validation timeout?
 2. Binding store available?
 3. Binding store integrity acceptable?
 4. Binding record exists?
 5. Candidate Act still fresh?
 6. Binding record still fresh?
 7. Binding revoked?
 8. Policy version correct?
 9. Requester identity correct?
10. Workload identity correct?
11. Protected object correct?
12. Workflow correct?
13. Operation permitted?
14. Destination permitted?
15. Workflow/order exists?
16. Object belongs to workflow?
17. Recipient assignment current?
18. Required attestation valid?
]]></artwork>
        <t>Only after all eighteen checks succeed is the result ALLOW.
        A key architectural test verifies that
        <tt>attestation_ok = true</tt> does not override an
        <tt>OPERATION_MISMATCH</tt>, <tt>REQUESTER_MISMATCH</tt>,
        <tt>DESTINATION_MISMATCH</tt>, or <tt>WORKLOAD_MISMATCH</tt> --
        i.e., attested is not authorized.</t>
      </section>

      <section anchor="appendix-handle-lifetime" numbered="true" toc="default">
        <name>Execution Handle Lifetime Clamping</name>
        <t>With <tt>max_handle_ms = 2000</tt>, handle expiration is
        <tt>min(Candidate Act expiration, issuance time + 2000 ms)</tt>.
        Boundary tests at candidate lifetimes of 0, 1, 10, 100, 1000, and
        1999 ms from PED issuance time all produced a clamped handle;
        2000 ms produced the maximum unclamped handle -- verifying the
        PED cannot issue a handle exceeding either its own configured
        maximum or the Candidate Act's own expiration. The handle itself
        binds <tt>handle_id</tt>, the Candidate Act digest, object,
        workflow, operation, requester, workload, destination, policy
        version, nonce, issuance/expiry times, and the
        proof-of-possession key ID -- i.e., authorization for this exact
        act under this exact binding state, not general access.</t>
      </section>

      <section anchor="appendix-mutation-threat" numbered="true" toc="default">
        <name>Mutation and Threat-Model Testing</name>
        <t>Canonical JSON serialization (sorted keys, no incidental
        whitespace, UTF-8, deterministic separators) is SHA-256 hashed
        to produce the Candidate Act digest, so any load-bearing field
        change alters the digest. Two independent mutation surfaces were
        tested:</t>
        <ul>
          <li><strong>Post-issuance mutation</strong> (handle already
          issued): each of object, workflow, operation, destination,
          requester, workload, declared purpose, nonce, and policy
          version was individually mutated after issuance; every case
          produced <tt>ACT_DIGEST_MISMATCH</tt>, since the previously
          issued handle no longer matches the altered act's digest.</li>
          <li><strong>PED-side mutation</strong> (before issuance): the
          same fields were mutated before the PED evaluated the act;
          each independently produced its corresponding
          <tt>*_MISMATCH</tt> denial (e.g., requester, workload, object,
          workflow, operation, or destination mismatch).</li>
        </ul>

        <section anchor="appendix-purpose-relabel" numbered="true" toc="default">
          <name>Purpose-Relabel Attack</name>
          <t>The principal threat-model test: an advertising
          requester/workload submits an act for operation
          <tt>infer household income</tt> against destination
          <tt>advertising-profile-database</tt>, but writes
          <tt>declared_purpose: delivery</tt>. Result: DENY, because the
          external binding record still reflects the delivery
          requester/workload/operation/destination tuple -- the
          purpose-string relabel does not change those externally-held
          facts. This was additionally tested against several
          plausible-sounding purpose strings (<tt>customer_support</tt>,
          <tt>legitimate_interest</tt>, <tt>consent</tt>,
          <tt>security</tt>, <tt>fraud_prevention</tt>), all denied with
          <tt>OPERATION_MISMATCH</tt>, and conversely the legitimate
          delivery act was tested with several different declared-purpose
          values (including <tt>DELIVERY</tt>, <tt>targeted_marketing</tt>,
          an empty string, and a 128-character arbitrary string) and
          remained allowed in every case, confirming the decision is
          driven by the binding relationship, not the spelling of the
          purpose field in either direction.</t>
        </section>

        <section anchor="appendix-other-conditions" numbered="true" toc="default">
          <name>Additional Negative-Control Conditions</name>
          <t>Further independently-tested failure conditions and their
          results:</t>
          <table anchor="appendix-failure-table">
            <name>Additional negative-control test conditions</name>
            <thead><tr><th>Condition varied</th><th>Result code</th></tr></thead>
            <tbody>
              <tr><td>Attestation required but false (with otherwise-valid act)</td><td>ATTESTATION_FAILURE</td></tr>
              <tr><td>Attestation true but operation still unauthorized</td><td>OPERATION_MISMATCH (attested is not authorized)</td></tr>
              <tr><td>Binding store unavailable</td><td>BINDING_STORE_UNAVAILABLE</td></tr>
              <tr><td>Binding store integrity uncertain</td><td>BINDING_STORE_INTEGRITY_FAILURE</td></tr>
              <tr><td>Binding record missing</td><td>NO_BINDING_RECORD</td></tr>
              <tr><td>Candidate Act / binding record / handle expired</td><td>CANDIDATE_EXPIRED / BINDING_EXPIRED / HANDLE_EXPIRED</td></tr>
              <tr><td>Binding revoked</td><td>BINDING_REVOKED</td></tr>
              <tr><td>Policy version incorrect (0, 1, 37, 39, 40, 1000 tested)</td><td>POLICY_VERSION_MISMATCH (every value)</td></tr>
              <tr><td>Workflow missing / object association broken / recipient assignment changed</td><td>WORKFLOW_NOT_FOUND / OBJECT_ASSOCIATION_MISMATCH / RECIPIENT_ASSIGNMENT_MISMATCH</td></tr>
              <tr><td>Validation timeout forced</td><td>VALIDATION_TIMEOUT (not interpreted as permission)</td></tr>
            </tbody>
          </table>
        </section>

        <section anchor="appendix-lineage-detail" numbered="true" toc="default">
          <name>Derived-Data Lineage</name>
          <t>A derived object (<tt>income-estimate-52</tt>, sourced from
          <tt>address-619</tt>) submitted by the advertising requester
          for <tt>write advertising profile</tt> is deliberately given a
          binding record that would otherwise allow the write, so the
          PED issues a valid Execution Handle; the Finality Sink
          independently checks <tt>source_lineage</tt> against the
          protected lineage rule (which permits <tt>address-619</tt>
          only for the delivery operation/destination) and denies with
          <tt>LINEAGE_RESTRICTION_MISMATCH</tt> even though a valid
          handle exists -- confirming the sink remains independently
          load-bearing rather than trusting a prior PED ALLOW. A
          positive control (the same lineage attached to the legitimate
          delivery act) returns EFFECTUATED, confirming lineage presence
          alone is not a denial trigger. A documented negative control
          -- stripping <tt>source_lineage</tt> from the derived object
          before it reaches the sink -- results in EFFECTUATED, an
          intentionally disclosed limitation: lineage must be protected
          from stripping or independently reconstructable, or this
          control is bypassable.</t>
        </section>

        <section anchor="appendix-trusted-record-compromise" numbered="true" toc="default">
          <name>Trusted-Record Compromise</name>
          <t>A separate negative control deliberately rewrites the
          authoritative binding record itself to authorize the
          advertising operation; the PED (correctly, given its inputs)
          returns ALLOW. This is intentional: it demonstrates that a
          correct PED cannot compensate for corrupted authoritative
          truth, and that the binding-record system's integrity must be
          protected to at least the assurance level of the enforcement
          decision itself -- stated as a residual security assumption,
          not hidden.</t>
        </section>
      </section>

      <section anchor="appendix-lavr" numbered="true" toc="default">
        <name>LAVR Generation, Chaining, and Tamper Detection</name>
        <t>Every PED decision (PASS or FAIL) generates a Legitimacy and
        Authority Verification Record (LAVR) containing a monotonic
        sequence number, the previous LAVR's hash, the Candidate Act
        digest, the PASS/FAIL result and reason code, policy version,
        and timestamp, HMAC-authenticated as a body. The first LAVR's
        previous-hash field is 64 zero characters; each subsequent
        record's <tt>prev_hash</tt> is the SHA-256 of the prior LAVR,
        and the suite verifies sequence continuity, hash-chain
        continuity, and HMAC integrity. A deliberately tampered LAVR
        signature is correctly detected by chain verification. This is
        a local authenticated hash chain, not a public blockchain or
        distributed ledger.</t>
      </section>

      <section anchor="appendix-replay" numbered="true" toc="default">
        <name>Replay and Concurrency Testing</name>
        <t>A valid Execution Handle used once returns EFFECTUATED; the
        identical handle reused returns REPLAY_DETECTED. Two replay
        backends were tested: an in-memory lock-protected set of
        consumed handle IDs, and a persistent SQLite/WAL-backed table
        keyed on <tt>handle_id</tt> (primary-key violation on reuse,
        transaction rolled back). Concurrency was tested directly rather
        than only sequentially: for the memory backend, five profiles
        (2/4/8/16/32 worker threads issuing 10/32/64/100/128 concurrent
        attempts against the same handle) each produced exactly one
        EFFECTUATED and (attempts - 1) REPLAY_DETECTED outcomes; for the
        SQLite backend, four profiles (2/4/8/16 threads, 8/16/32/64
        attempts) produced the same exactly-one-success invariant.
        Persistence was additionally verified across a simulated
        restart: issue, consume, close the SQLite connection, reopen,
        and re-attempt the same handle -- REPLAY_DETECTED, confirming
        local persistent replay state (not distributed multi-node replay
        consensus, which remains out of scope).</t>
      </section>

      <section anchor="appendix-crosslang" numbered="true" toc="default">
        <name>Cross-Language Conformance</name>
        <t>Nineteen deterministic conformance vectors (each a Candidate
        Act, binding record, validation context, expected decision, and
        expected SHA-256 Candidate Act digest) were independently
        re-implemented and executed in Python 3.13.5, Go 1.23.2, and
        Node.js 22.16.0, covering: baseline valid request; wrong
        requester/workload/object/workflow/operation/destination;
        changed-but-untrusted purpose only (still ALLOW); wrong policy
        version; revoked, expired, or missing binding; missing workflow;
        broken object association; changed recipient assignment;
        unavailable or integrity-failed binding store; attestation
        failure; and forced timeout. Each language independently
        canonicalizes, digests, and decides; results were 19/19 in all
        three languages (57 total executions of the 19 shared vectors --
        not 57 distinct threats). This demonstrates that canonicalization,
        digest semantics, binding-record checks, decision ordering, and
        reason-code behavior can be implemented consistently across
        languages; it does not establish that the Go and Node conformance
        programs are complete production equivalents of the full Python
        reference (LAVR lifecycle, replay store, and PoP lifecycle remain
        primarily implemented in Python).</t>
      </section>

      <section anchor="appendix-stress" numbered="true" toc="default">
        <name>Deterministic Adversarial Stress Testing</name>
        <t>A seeded (<tt>20260909</tt>), reproducible stress test outside
        the pytest suite ran 2,000 total trials in three groups: 1,000
        post-issuance field mutations (a random load-bearing field
        replaced with a random value after handle issuance), 500
        purpose-relabel attacks (advertising requester/workload/operation/
        destination with a random 0-40-character purpose label), and 500
        wrong-holder proof-of-possession attempts (proof generated with
        the non-bound holder key). All 2,000 trials were denied. This
        volume is reported separately from, not summed with, the 88
        pytest cases and 57 cross-language executions, since the
        categories overlap conceptually and a combined "2,145 tests"
        figure would overstate distinct coverage.</t>
      </section>

      <section anchor="appendix-latency-detail" numbered="true" toc="default">
        <name>Latency by Topology, with Repeated Runs</name>
        <t>Three local software topologies were benchmarked, each with
        a fresh Candidate Act per iteration (avoiding replay-state
        contamination across iterations) and a distinct engineering
        regression target:</t>
        <table anchor="appendix-latency-full-table">
          <name>Primary latency run by topology</name>
          <thead><tr><th>Topology</th><th>Warm-up / measured</th><th>p50</th><th>p95</th><th>p99</th><th>mean</th><th>max</th><th>Target</th></tr></thead>
          <tbody>
            <tr><td>In-process memory</td><td>300 / 3,000</td><td>0.1678 ms</td><td>0.2106 ms</td><td>0.2618 ms</td><td>0.1796 ms</td><td>3.0804 ms</td><td>&lt;= 5 ms</td></tr>
            <tr><td>In-process SQLite/WAL</td><td>200 / 2,000</td><td>0.1987 ms</td><td>0.2560 ms</td><td>0.3841 ms</td><td>0.2147 ms</td><td>2.7283 ms</td><td>&lt;= 10 ms</td></tr>
            <tr><td>Localhost HTTP sidecar</td><td>100 / 1,000</td><td>1.4670 ms</td><td>2.1363 ms</td><td>3.7796 ms</td><td>1.5826 ms</td><td>10.5086 ms</td><td>&lt;= 20 ms</td></tr>
          </tbody>
        </table>
        <t>Each topology's p95 was additionally repeated three further
        times to avoid accepting a single favorable run: memory
        0.2154-0.2424 ms, SQLite 0.2605-0.4145 ms, HTTP sidecar
        2.0291-2.3466 ms across the three repeats, every repeat remaining
        under its target. One HTTP-sidecar repeat recorded a maximum
        latency of 47.9501 ms (retained, not discarded as an
        inconvenient outlier) while its p95 remained 2.2572 ms --
        illustrating that an isolated scheduler/runtime pause can inflate
        the maximum without moving the percentile figures the targets are
        defined against. The HTTP-sidecar figures are localhost loopback
        only and exclude any real network round-trip, remote policy
        lookup, or remote attestation.</t>
      </section>

      <section anchor="appendix-scope" numbered="true" toc="default">
        <name>What the Testing Supports, What It Does Not, and Residual Risks</name>
        <t>On the recorded Linux/x86-64 environment, the evidence
        supports the bounded claim that the Candidate Act -&gt;
        external-binding-validation -&gt; LAVR -&gt; scoped non-bearer
        handle -&gt; holder proof -&gt; independent Finality Sink -&gt;
        atomic single-use effectuation path executed correctly under the
        tested threat, mutation, concurrency, storage, language, and
        local-topology variations, within the repository's own p95
        regression thresholds. It does not establish that all
        implementations of this pattern are secure; that production
        systems will see sub-millisecond or WAN-equivalent latency; that
        TEE/HSM latency matches this software path; that lineage can
        never be stripped; that the authoritative binding database
        cannot itself be compromised; that plaintext cannot be copied
        after legitimate release; that covert channels are prevented;
        that the protocol is formally verified; or that the architecture
        by itself establishes legal compliance.</t>

        <table anchor="appendix-residual-table">
          <name>Main residual risks (documented, not hidden)</name>
          <thead><tr><th>Residual risk</th><th>Status</th></tr></thead>
          <tbody>
            <tr><td>Authorized recipient copies plaintext after legitimate release</td><td>Not solved by source-side finality alone</td></tr>
            <tr><td>PED itself compromised</td><td>Outside the PED's own protection</td></tr>
            <tr><td>Trusted binding record maliciously modified</td><td>Can produce a false PASS (<xref target="appendix-mutation-threat"/>)</td></tr>
            <tr><td>Derived lineage stripped before the sink</td><td>Sink may lose provenance</td></tr>
            <tr><td>Side/covert channel inside authorized computation</td><td>Not solved</td></tr>
            <tr><td>Human screenshot/observation of released data</td><td>Not solved</td></tr>
            <tr><td>Software-held test key compromise</td><td>Reference-implementation limitation</td></tr>
            <tr><td>SQLite single-host replay/effect store</td><td>Not hyperscale evidence</td></tr>
          </tbody>
        </table>

        <t>These match, and do not extend, the limitations already
        stated for the architecture generally in
        <xref target="derived-data-carries"/> and
        <xref target="worked-example-close"/>. Recommended next-level
        validation, replacing one software assumption at a time with a
        real deployment component, includes: a protected or
        cryptographically signed external binding-record store; a
        non-exportable holder proof-of-possession key; HSM- or
        TEE-backed handle signing; a replicated transactional
        replay/effect database; real service-mesh/API-gateway
        integration; remote-attestation freshness and revocation
        integration; protected lineage propagation through a real
        computation pipeline; network-partition and stale-replica fault
        injection; sustained concurrency/throughput measurement at
        production scale; and an independent interoperable
        implementation built solely from the published conformance
        vectors.</t>
      </section>

      <section anchor="appendix-reproduction" numbered="true" toc="default">
        <name>Reproduction</name>
        <t>The validation package's expected primary results are 88
        passed Python tests; 19/19 conformance vectors in each of
        Python, Go, and Node.js; and 1,000/1,000, 500/500, and 500/500
        denied outcomes for the three deterministic stress groups of
        <xref target="appendix-stress"/>, reproducible via the
        commands and version pins published alongside
        <xref target="DAS-PURPOSE-FINALITY-IMPL"/>.</t>
      </section>
    </section>
  </back>
</rfc>
