<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude"
     version="3"
     docName="draft-condrey-rats-pop-protocol-02"
     ipr="trust200902"
     category="std"
     consensus="true"
     submissionType="IETF"
     sortRefs="true"
     symRefs="true"
     tocInclude="true"
     tocDepth="4">

  <front>
    <title abbrev="PoP Protocol">Proof of Process (PoP): Architecture, Evidence Format, and VDF</title>
    <seriesInfo name="Internet-Draft" value="draft-condrey-rats-pop-protocol-02"/>
    <author fullname="David Condrey" initials="D." surname="Condrey">
      <organization abbrev="WritersLogic">WritersLogic Inc</organization>
      <address>
        <postal>
          <city>San Diego, California</city>
          <country>United States</country>
        </postal>
        <email>david@writerslogic.com</email>
      </address>
    </author>
    <date year="2026" month="February" day="14"/>

    <area>Security</area>
    <workgroup>Remote ATtestation procedureS</workgroup>

    <keyword>attestation</keyword>
    <keyword>RATS</keyword>
    <keyword>provenance</keyword>
    <keyword>authorship</keyword>
    <keyword>VDF</keyword>

    <abstract>
      <t>
        This document specifies the Proof of Process (PoP) protocol, a specialized profile of Remote Attestation Procedures (RATS) designed to validate digital authorship through a "provenance of effort." It defines the core architecture, the RATS role mappings, the normative CBOR-encoded Evidence Format (including EAT integration), and the Verifiable Delay Function (VDF) mechanisms used to prove temporal and physical creation constraints.
      </t>
    </abstract>
  </front>

  <middle>
    <section anchor="introduction">
      <name>Introduction</name>
      <t>
        The rapid proliferation of generative artificial intelligence has created an authenticity crisis in digital discourse. While traditional provenance tracks the "custody of pixels," it fails to attest to the human-driven process of creation. This document specifies the Proof of Process (PoP) protocol, which extends the RATS architecture [RFC9334] to validate the "provenance of effort."
      </t>
      <t>
        Unlike traditional attestation which captures static system state, PoP attests to a continuous physical process. It introduces <strong>Proof of Biological Space-Time (PoBST)</strong> to enforce temporal monotonicity and <strong>Cross-Domain Constraint Entanglement (CDCE)</strong> to bind behavioral entropy (human jitter) and physical state (thermodynamics) to the document's evolution.
      </t>
    </section>

    <section anchor="terminology">
      <name>Terminology</name>
      <dl spacing="normal">
        <dt>Attester:</dt>
        <dd>The combination of an Attesting Environment (AE) and Target Environment (TE) responsible for generating PoP Evidence.</dd>
        <dt>Checkpoint:</dt>
        <dd>A cryptographic commitment to a block of events and the document state, bound by a VDF.</dd>
        <dt>PoBST:</dt>
        <dd>Proof of Biological Space-Time. A memory-hard sequential function with asymmetric verification, entangled with human jitter.</dd>
        <dt>CDCE:</dt>
        <dd>Cross-Domain Constraint Entanglement. The method of weaving jitter and thermodynamics into the cryptographic chain.</dd>
      </dl>
    </section>

    <section anchor="core-principles">
      <name>Core Principles</name>
      <t>PoP operates on five primary constraints:</t>
      <ul>
        <li><strong>Physics-based Cost:</strong> Memory-Hard Sequential Functions (MHSF) establish an economic lower bound on forgery.</li>
        <li><strong>Physical Freshness:</strong> Replay and simulation attacks are defeated by anchoring sessions to non-deterministic physical markers (thermal noise).</li>
        <li><strong>Biological Binding:</strong> Captured human motor-signal randomness (jitter) serves as the non-deterministic seed for the spacetime proof.</li>
        <li><strong>Out-of-Band Presence:</strong> Utilizing secondary physical devices (e.g., smartphone QR scans) to bridge the digital-physical gap.</li>
        <li><strong>Asymmetric Verification:</strong> PoBST allows complex 10-hour proofs to be verified in milliseconds.</li>
      </ul>
    </section>

    <section anchor="attester-state-machine">
      <name>Attester State Machine</name>
      <t>
        The AE MUST implement the following formal state machine:
      </t>
      <ul>
        <li><strong>RECORDING:</strong> AE captures semantic events and physical telemetry into a hash-linked buffer.</li>
        <li><strong>PENDING_CHECK:</strong> The current event block is frozen to prepare for a checkpoint.</li>
        <li><strong>CHECKPOINT:</strong> AE computes the VDF over the block hash and incorporates the entangled seed.</li>
        <li><strong>SEALING:</strong> The Attester generates a final snapshot, signs the transcript root with a hardware Secure Element, and prepares the transport container.</li>
      </ul>
    </section>

    <section anchor="attestation-assurance-levels">
    <name>Attestation Assurance Levels</name>
    <t>
      Attestation Assurance Levels (T1-T4) define the strength of hardware binding, mapping to NIST SP 800-63B Authenticator Assurance Levels (AAL) and EAT security levels [RFC9711].
    </t>
    <dl>
      <dt>T1: Software-Only</dt><dd>Baseline evidence generation without hardware anchors. Equivalent to AAL1.</dd>
      <dt>T2: Attested Software</dt><dd>AE attempts to use platform security APIs (e.g., keychain integration) but degrades gracefully. AAL1-2 equivalent.</dd>
      <dt>T3: Hardware-Bound</dt><dd>Requires TPM 2.0 or platform Secure Enclave key binding. Evidence generation MUST fail if hardware is unavailable. AAL3 equivalent.</dd>
      <dt>T4: Hardware-Hardened</dt><dd>Maximum assurance with discrete TPM, PUF binding, and enclave execution for timing-sensitive operations. AAL3+ equivalent.</dd>
    </dl>
    </section>

    <section anchor="wire-format">
      <name>Evidence Format and CDDL</name>
      <t>
        Evidence Packets are CBOR-encoded and identified by semantic tag <strong>1347571280</strong>.
      </t>
      <artwork type="cddl"><![CDATA[
      evidence-packet = {
          1 => uint,                              ; version
          2 => tstr,                              ; profile-uri
          3 => uuid,                              ; packet-id
          4 => pop-timestamp,                     ; created
          5 => document-ref,                      ; document
          6 => [+ checkpoint],                    ; checkpoints
          ? 7 => attestation-tier,                ; T1-T4 assurance level
          ? 10 => [+ presence-challenge],         ; QR/OOB proofs
          ? 18 => physical-liveness-section,      ; CDCE markers
      }

      checkpoint = {
          1 => uint,                              ; sequence (strictly monotonic)
          2 => uuid,                              ; checkpoint-id
          3 => pop-timestamp,                     ; timestamp (local)
          4 => hash-value,                        ; content-hash
          5 => uint,                              ; char-count
          6 => edit-delta,                        ; delta
          7 => hash-value,                        ; prev-hash
          8 => hash-value,                        ; checkpoint-hash
          9 => process-proof,                     ; VDF (PoBST)
          10 => jitter-binding,                   ; behavioral-entropy
          11 => physical-state,                   ; CDCE Weave
          12 => bstr .size 32,                    ; entangled-mac (HMAC-SHA256)
      }

      document-ref = {
          1 => hash-value,                        ; content-hash
          3 => uint,                              ; byte-length
          4 => uint,                              ; char-count
          ? 5 => hash-salt-mode,                  ; 0=unsalted, 1=author-salted
          ? 6 => bstr,                            ; salt-commitment
      }

      edit-delta = {
          1 => int,                               ; chars-added
          2 => int,                               ; chars-deleted
          3 => uint,                              ; edit-operations-count
      }

      physical-state = {
          1 => [+ float16],                       ; thermal-trajectory-delta
          2 => uint,                              ; entropy-pool-delta
      }
      ]]></artwork>
    </section>

    <section anchor="vdf-mechanisms">
      <name>VDF and Temporal Proofs</name>
      <section anchor="mhsf">
        <name>Memory-Hard Sequential Functions (Argon2id)</name>
        <t>
          Implementations MUST support <strong>Argon2id</strong> [RFC9106] as the MTI memory-hard function. Default parameters: Time Cost (t)=1, Memory Cost (m)=2^16 (64 MiB), Parallelism (p)=1.
        </t>
      </section>
      <section anchor="hat">
        <name>Hardware-Anchored Time (HAT)</name>
        <t>
          In T3/T4 tiers, the VDF seed MUST be bound to the <strong>TPM Monotonic Counter</strong>.
        </t>
        <artwork type="cddl"><![CDATA[
  hat-seed = H(tpm-monotonic-counter || physical-freshness || document-hash)
        ]]></artwork>
      </section>
      <section anchor="physical-freshness">
        <name>Non-deterministic Physical Freshness</name>
        <t>
          The VDF seed MUST incorporate <strong>Non-deterministic Physical Freshness</strong> derived from physical events (e.g., thermal noise) sampled within the AE at the start of the session to prevent replay attacks.
        </t>
      </section>
    </section>

    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>
        This document requests registration of CBOR tags 1347571280 ("PPP ") and 1463894560 ("WAR "), and the EAT profile <tt>urn:ietf:params:rats:eat:profile:pop:1.0</tt> in their respective registries.
      </t>
    </section>

    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <section anchor="sec-relay">
        <name>Relay and Diversion Attacks</name>
        <t>
          Evidence packets are self-contained and bound to document content, making them independently verifiable. No session binding is required between Attester and Verifier, eliminating connection-based vulnerabilities.
        </t>
      </section>
      <section anchor="sec-replay">
        <name>Replay Attacks</name>
        <t>
          Defeated through Physical Freshness. Replaying a session requires replaying the immutable hardware physics of the AE at the exact microsecond of the original capture.
        </t>
      </section>
    </section>
  </middle>

  <back>
    <references>
      <name>References</name>
      <references>
        <name>Normative References</name>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8174.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9334.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8610.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8949.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9106.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9711.xml"/>
      </references>
      <references>
        <name>Informative References</name>
        <reference anchor="PoP-Appraisal">
          <front>
            <title>Proof of Process (PoP): Forensic Appraisal and Security Model</title>
            <author fullname="David Condrey" initials="D." surname="Condrey"/>
            <date year="2026"/>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-condrey-rats-pop-appraisal-01"/>
        </reference>
        <reference anchor="Pietrzak2019" target="https://eprint.iacr.org/2018/627">
          <front>
            <title>Simple Verifiable Delay Functions</title>
            <author fullname="K. Pietrzak" initials="K." surname="Pietrzak"/>
            <date year="2019"/>
          </front>
        </reference>
      </references>
    </references>
  </back>
</rfc>