<?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-03"
     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-03"/>
    <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) Evidence Framework, a specialized profile of Remote Attestation Procedures (RATS) [RFC9334] designed to validate the provenance of effort in digital authorship. Unlike traditional provenance, which tracks file custody, PoP attests to the continuous physical process of creation.
      </t>
      <t>
        The protocol defines a cryptographic mechanism for generating Evidence Packets utilizing Proof of Biological Space-Time (PoBST) to enforce temporal monotonicity and Cross-Domain Constraint Entanglement (CDCE) to bind behavioral entropy (human jitter) and physical die thermodynamics to the document state. Technical specifications for wire formats, verifiable delay functions, and hardware-anchored trust are provided.
      </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 <xref target="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>
      <t>
        By entangling content hashes with these physical constraints, this protocol enables an Attester to generate an Evidence Packet (.pop) that cryptographically distinguishes between human generation and algorithmic simulation, preserving privacy by design without disclosing document content.
      </t>
    </section>

    <section anchor="requirements-language">
      <name>Requirements Language</name>
      <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 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and
        only when, they appear in all capitals, as shown here.
      </t>
    </section>

    <section anchor="core-principles">
      <name>Core Principles and Claims</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, ensuring consumer hardware remains competitive with specialized ASICs.</li>
        <li><strong>Physical Freshness:</strong> Replay and simulation attacks are defeated by anchoring sessions to irreversible physical markers (Thermal Trajectories and Kernel Entropy pools). Every session incorporates Non-deterministic Physical Freshness sampled within the AE at the start of the VDF execution.</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 and ensure a human is in the loop.</li>
        <li>Asymmetric Verification: PoBST allows complex 10-hour proofs to be verified in milliseconds using Pietrzak-style proofs <xref target="Pietrzak2019"/>, ensuring scalability and DoS resistance.</li>
      </ul>
    </section>

    <section anchor="rationale-and-terminology">
      <name>Protocol Rationale and Terminology</name>
      <t>
        The Proof of Process (PoP) framework follows the RATS architecture while introducing domain-specific extensions for physical process attestation.
      </t>
      <dl>
        <dt>PPP Evidence (.pop):</dt>
        <dd>An Attester artifact containing Merkle trees, PoBST traces, and physical liveness markers (CBOR tag 1347571280).</dd>
        <dt>WAR Result (.war):</dt>
        <dd>A Verifier Attestation Result containing signed EAT claims and forensic assessments (CBOR tag 1463894560).</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="attester-state-machine">
      <name>Attester State Machine</name>
      <t>
        The Attesting Environment (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. Events are appended and the block hash is updated.</li>
        <li><strong>PENDING_CHECK:</strong> The current event block is frozen to prepare for a checkpoint. No new events are accepted into this block.</li>
        <li><strong>CHECKPOINT:</strong> AE computes the VDF over the entangled seed (previous hash + current jitter + physical markers).</li>
        <li><strong>SEALING:</strong> The Attester generates a final snapshot, signs the transcript root with a hardware Secure Element (TPM/SE), and prepares the transport container (.pop).</li>
      </ul>
    </section>

    <section anchor="evidence-tiers">
    <name>Evidence Content Tiers</name>
    <t>
      PPP Evidence packets are classified by the depth of behavioral and forensic data collected:
    </t>
    <dl>
      <dt>CORE (Tier Value 1):</dt>
      <dd>Checkpoint chain with PoBST proofs, SHA-256 content binding, and physical freshness anchors. Proves temporal ordering and content integrity.</dd>
      <dt>ENHANCED (Tier Value 2):</dt>
      <dd>All CORE components plus behavioral entropy capture (Jitter Seals) and intra-checkpoint correlation. Adds evidence of interactive authoring behavior.</dd>
      <dt>MAXIMUM (Tier Value 3):</dt>
      <dd>All ENHANCED components plus CDCE, error topology analysis, and forgery cost bounds. Provides the strongest available evidence.</dd>
    </dl>
    </section>

    <section anchor="attestation-assurance-levels">
    <name>Attestation Assurance Levels</name>
    <t>
      The attestation tier system maps to established assurance frameworks
      including NIST SP 800-63B Authenticator Assurance Levels (AAL),
      ISO/IEC 29115 Levels of Assurance (LoA), and Entity Attestation Token
      (EAT) security levels as defined in <xref target="RFC9711"/>.
    </t>

    <section anchor="tier-t1-software">
      <name>Tier T1: Software-Only</name>
      <dl>
        <dt>Binding Strength:</dt><dd>none or hmac_local</dd>
        <dt>NIST AAL Mapping:</dt><dd>AAL1</dd>
        <dt>Security Properties:</dt>
        <dd>
          <ul>
            <li>VDF timing provides temporal ordering</li>
            <li>Hash chains provide tamper evidence</li>
            <li>Jitter entropy provides behavioral binding</li>
            <li>No hardware root of trust; keys stored in software</li>
          </ul>
        </dd>
      </dl>
    </section>

    <section anchor="tier-t2-attested">
      <name>Tier T2: Attested Software</name>
      <t>T2 extends T1 with optional hardware attestation hooks. The AE attempts to use platform security features (Keychain, DeviceCheck) but degrades gracefully.</t>
    </section>

    <section anchor="tier-t3-hardware-bound">
      <name>Tier T3: Hardware-Bound</name>
      <t>Requires TPM 2.0 or platform Secure Enclave key binding. Evidence generation MUST fail if hardware is unavailable. AAL3 equivalent.</t>
    </section>

    <section anchor="tier-t4-hardware-hardened">
      <name>Tier T4: Hardware-Hardened</name>
      <t>Discrete TPM + PUF binding + Enclave execution. Anti-tamper evidence required. AAL3+ equivalent.</t>
    </section>
    </section>

    <section anchor="profile-architecture">
    <name>Profile Architecture</name>
    <t>
      The PPP specification defines three implementation profiles that establish Mandatory-to-Implement (MTI) requirements for interoperability.
    </t>
    <table>
      <thead>
        <tr><th>Feature ID</th><th>Feature Name</th><th>CORE</th><th>ENHANCED</th><th>MAXIMUM</th></tr>
      </thead>
      <tbody>
        <tr><td>1</td><td>vdf-iterated-sha256</td><td>M</td><td>M</td><td>M</td></tr>
        <tr><td>2</td><td>content-binding</td><td>M</td><td>M</td><td>M</td></tr>
        <tr><td>4</td><td>checkpoint-chain</td><td>M</td><td>M</td><td>M</td></tr>
        <tr><td>50</td><td>behavioral-entropy</td><td>O</td><td>M</td><td>M</td></tr>
        <tr><td>105</td><td>hardware-attestation</td><td>O</td><td>O</td><td>M</td></tr>
      </tbody>
    </table>
    </section>

    <section anchor="wire-format">
      <name>Evidence Format and CDDL</name>
      <t>
        Evidence Packets are CBOR-encoded <xref target="RFC8949"/> and identified by semantic tag 1347571280. The CDDL notation <xref target="RFC8610"/> is used to define the wire format.
      </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
          ? 8 => [* tstr],                        ; limitations
          ? 9 => profile-declaration,             ; profile
          ? 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
      }

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

      process-proof = {
          1 => proof-algorithm,                   ; 1=sha256, 20=PoBST
          2 => proof-params,                      ; VDF params
          3 => bstr,                              ; input (seed)
          4 => bstr,                              ; output (root)
          5 => [+ Merkle-Proof],                  ; sampled proofs
          6 => duration,                          ; claimed time
      }

      edit-delta = {
          1 => int,                               ; added
          2 => int,                               ; deleted
          3 => uint,                              ; op-count
          ? 4 => [* edit-position],               ; [offset, change]
      }

      physical-state = {
          1 => [+ float16],                       ; thermal
          2 => uint,                              ; entropy-delta
          ? 3 => bstr,                            ; kernel-state-commitment
      }

      uuid = bstr .size 16
      pop-timestamp = #6.1(number)
      duration = float32
      hash-value = { 1 => uint, 2 => bstr }
      ]]></artwork>
    </section>

    <section anchor="vdf-mechanisms">
      <name>VDF Mechanisms and HAT</name>
      <section anchor="mhsf">
        <name>Memory-Hard Sequential Functions (Argon2id)</name>
        <t>
          The protocol requires a memory-hard sequential function to establish economic forgery bounds. Implementations MUST support Argon2id <xref target="RFC9106"/> as the Mandatory-to-Implement (MTI) MHSF. The default parameters for CORE profile are: Time Cost (t)=1, Memory Cost (m)=2^16, Parallelism (p)=1.
        </t>
      </section>
      <section anchor="hat">
        <name>Hardware-Anchored Time (HAT)</name>
        <t>
          In T3/T4 tiers, the AE MUST anchor the VDF seed to the <strong>TPM Monotonic Counter</strong>. This prevents "VDF Speed-up" attacks by ensuring that the temporal proof is bound to the hardware's internal perception of time.
        </t>
      </section>
    </section>

    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>
        This document requests registration of CBOR tags 1347571280 ("PPP ") and 1463894560 ("WAR "), SMI PEN <strong>65074</strong>, and the EAT profile <strong>urn:ietf:params:rats:eat:profile:pop:1.0</strong>.
      </t>
      <section anchor="iana-media-types">
        <name>Media Types</name>
        <t>Requests registration of <tt>application/vnd.writerslogic-pop+cbor</tt> and <tt>application/vnd.writerslogic-war+cbor</tt>.</t>
      </section>
    </section>

    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>
        This section describes security considerations for implementations of the PoP protocol. Detailed forensic security analysis is provided in the companion document <xref target="PoP-Appraisal"/>.
      </t>
      <section anchor="sec-relay-replay">
        <name>Relay and Replay Attacks</name>
        <t>
          Relay attacks involve an adversary forwarding Evidence from a legitimate Attester to a Verifier. Replay attacks attempt to reuse previously valid Evidence Packets. Both attacks are defeated through Physical Freshness anchors that bind Evidence to non-deterministic physical state (thermal trajectories, kernel entropy) sampled at checkpoint creation time. Verifiers MUST reject Evidence where physical freshness markers are stale or inconsistent with claimed timestamps.
        </t>
      </section>
      <section anchor="sec-vdf-speedup">
        <name>VDF Speed-up Attacks</name>
        <t>
          An adversary with access to specialized hardware (ASICs, FPGAs) may attempt to compress VDF computation time. The memory-hard requirement of Argon2id ensures that computation speed is bounded by memory bandwidth rather than raw compute cycles. In T3/T4 tiers, Hardware-Anchored Time (HAT) binding to TPM monotonic counters provides additional protection by ensuring temporal proofs cannot be generated faster than the hardware clock allows.
        </t>
      </section>
      <section anchor="sec-ae-compromise">
        <name>Attesting Environment Compromise</name>
        <t>
          A compromised Attesting Environment could generate fraudulent Evidence. The tiered attestation model (T1-T4) provides graduated trust levels. T3/T4 implementations MUST use hardware Secure Elements (TPM, SE) to protect signing keys. Evidence generated at lower tiers SHOULD be evaluated with appropriate skepticism by Relying Parties.
        </t>
      </section>
      <section anchor="sec-jitter-simulation">
        <name>Jitter Simulation</name>
        <t>
          Sophisticated adversaries may attempt to simulate human motor-signal randomness. The protocol relies on the computational expense of generating high-fidelity biological noise that satisfies Signal-to-Noise Ratio (SNR), Cognitive Load Correlation (CLC), and Error Topology constraints simultaneously. Forgery cost bounds in the WAR quantify this economic barrier.
        </t>
      </section>
      <section anchor="sec-dos">
        <name>Denial of Service</name>
        <t>
          VDF verification is asymmetric by design—verification is orders of magnitude faster than generation. This ensures that Verifiers cannot be overwhelmed by computationally expensive verification requests. Implementations SHOULD implement rate limiting on Evidence submission endpoints.
        </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="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>
        <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-02"/>
        </reference>
      </references>
    </references>

    <section anchor="vdf-test-vectors" numbered="false">
      <name>Appendix: VDF Verification Test Vectors</name>
      <t>
        The following test vectors can be used to validate VDF implementations:
      </t>
      <artwork><![CDATA[
Input (Seed): "witnessd-genesis-v1"
  Hex: 7769746e657373642d67656e657369732d7631

Argon2id Parameters (CORE profile):
  Time Cost (t): 1
  Memory Cost (m): 65536 (2^16 KiB)
  Parallelism (p): 1
  Output Length: 32 bytes

Iterations: 10,000

Expected Output (SHA-256 of Argon2id chain):
  7d3c9a4f8b2e1d6c5a4b3c2d1e0f9a8b7c6d5e4f3a2b1c0d9e8f7a6b5c4d3e2f
      ]]></artwork>
    </section>
  </back>
</rfc>