<?xml version="1.0" encoding="UTF-8"?>
  <?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
  <!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.38 (Ruby 4.0.1) -->


<!DOCTYPE rfc  [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">

]>


<rfc ipr="trust200902" docName="draft-condrey-posme-00" category="exp" submissionType="independent" tocDepth="4" tocInclude="true" sortRefs="true" symRefs="true">
  <front>
    <title abbrev="PoSME">Proof of Sequential Memory Execution (PoSME)</title>

    <author initials="D." surname="Condrey" fullname="David Condrey">
      <organization abbrev="WritersLogic">WritersLogic Inc</organization>
      <address>
        <postal>
          <city>San Diego</city>
          <region>California</region>
          <country>United States</country>
        </postal>
        <email>david@writerslogic.com</email>
      </address>
    </author>

    <date year="2026" month="May" day="15"/>

    
    
    <keyword>memory-hard</keyword> <keyword>sequential execution</keyword> <keyword>causal hash</keyword> <keyword>latency-bound</keyword> <keyword>ASIC resistance</keyword>

    <abstract>


<?line 181?>

<t>This document defines Proof of Sequential Memory Execution (PoSME),
a cryptographic primitive combining mutable arena state, data-
dependent pointer-chase addressing, and per-block causal hash
binding in a single step function. A Prover executes K sequential
steps over a mutable N-block arena. Each step reads d blocks at
addresses determined by the previous read's result (pointer
chasing), writes one block with spatial neighborhood entanglement
(incorporating <spanx style="verb">A\[w-1\]</spanx> and <spanx style="verb">A\[w+1\]</spanx>), and advances a transcript chain.
The construction provides three properties: (1) unconditional
sequential time enforcement anchored in physics-bounded latency
floors, (2) forgery prevention via causal hashes (reduces to
collision resistance of H), and (3) TMTO resistance scaling
as $1/\alpha$ with spatial entanglement, where $\alpha$ is the
adversary's storage fraction.
Verification requires O(Q * d^R * log N) hash evaluations with no
arena allocation. No trusted setup is required.</t>



    </abstract>



  </front>

  <middle>


<?line 201?>

<section anchor="introduction"><name>Introduction</name>

<t>Existing primitives for proving sequential computation have
complementary weaknesses. Verifiable Delay Functions (VDFs)
<xref target="Boneh2018"/> <xref target="Wesolowski2019"/> prove sequential time but offer no memory-hardness.
Proofs of Sequential Work (PoSW) <xref target="CohenPietrzak2018"/> prove
traversal of a depth-robust graph but operate over static memory.
Memory-hard functions (MHFs) such as Argon2id <xref target="RFC9106"/> and scrypt
<xref target="RFC7914"/> resist ASIC acceleration by requiring significant memory
resources. On commodity architectures, scrypt is primarily
bottlenecked by the sequential computation latency of its internal
Salsa20/8 core, while scaling memory size to deny low-memory
parallelization. MHFs in general impose high cumulative
memory-time cost, but their ASIC resistance ultimately depends on
the specific hardware cost model (area, bandwidth, or latency)
that dominates the adversary's design.</t>

<t>PoSME takes a different approach. A persistent mutable arena IS
the computation state. Each step reads via data-dependent pointer
chasing (sequential because each address depends on the previous
read's result) and modifies the arena in-place. A per-block
causal hash chain binds each block's value to the cursor of the
step that wrote it, preventing forgery: the adversary cannot
produce a valid causal hash without knowing the writer's cursor,
which depends on d other blocks' causal hashes, recursively.
The data and causal hash are symbiotically bound: new data
depends on the old causal hash, and the new causal hash depends
on the cursor.</t>

<t>The primary contributions are (a) a physics-bounded latency floor
with cross-generation durability and (b) TMTO resistance that
scales as $\rho/\alpha$ under spatial entanglement. Unlike bandwidth-bound constructions where the
ASIC advantage scales with technology improvements, PoSME is
bottlenecked by random memory access latency. For arena sizes
exceeding on-die SRAM, the ASIC advantage is bounded by the
latency ratio of specialized memory (such as HBM3) to commodity
DDR5. While an adversary with massive on-die SRAM (e.g., wafer-scale
integration) achieves a significant latency advantage, the bound
remains durable across technology generations as it is constrained
by signal propagation and DRAM cell sensing time.</t>

<section anchor="applicability"><name>Applicability Statement</name>

<t>PoSME is NOT a general-purpose password-hashing function (PHF) or
key derivation function (KDF). It does not compete with, and <bcp14>MUST
NOT</bcp14> be used as a substitute for, Argon2id <xref target="RFC9106"/> or scrypt
<xref target="RFC7914"/> in password storage, credential stretching, or key
derivation contexts.</t>

<t>PoSME is a specialized hardware-discriminator and latency-hard
asymmetry boundary designed for content provenance frameworks.
Its intended use is as the cryptographic foundation for a C2PA
<xref target="C2PA"/> "process-proof assertion": a proof that a specific
sequence of K sequential memory-execution steps was performed
on a single computing device over a corresponding interval of
wall-clock time. PoSME proves sequential computation, not
the nature of the content produced during that computation;
binding PoSME proofs to specific content requires an
application-layer protocol (e.g., C2PA manifest assertions)
that is outside the scope of this document. The construction
exploits the physics-bounded latency floor of random DRAM
access to create an asymmetry between honest execution on
commodity hardware and attempted forgery on specialized
hardware.</t>

<t>The following table highlights the divergent design
optimization vectors:</t>

<texttable>
      <ttcol align='left'>Property</ttcol>
      <ttcol align='left'>Argon2id </ttcol>
      <ttcol align='left'>scrypt </ttcol>
      <ttcol align='left'>PoSME</ttcol>
      <c>Primary goal</c>
      <c>Password hashing / KDF</c>
      <c>Password hashing / KDF</c>
      <c>Sequential process proof</c>
      <c>Hardness type</c>
      <c>Memory-hard (time * space)</c>
      <c>Memory-hard (time * space)</c>
      <c>Latency-hard (sequential DRAM access)</c>
      <c>ASIC resistance vector</c>
      <c>Side-channel resistance; GPU-area hardness</c>
      <c>Memory-size scaling to deny low-memory parallelization</c>
      <c>Sequential DRAM-latency floor via pointer-chasing</c>
      <c>Access pattern</c>
      <c>Data-independent (2id hybrid)</c>
      <c>Data-dependent ROMix with Salsa20/8</c>
      <c>Data-dependent pointer-chase</c>
      <c>Arena mutability</c>
      <c>Static (read-only after fill)</c>
      <c>Static (read-only after fill)</c>
      <c>Mutable (in-place writes)</c>
      <c>Side-channel profile</c>
      <c>2id mode resists side-channels</c>
      <c>Data-dependent arena reads; Salsa20/8 core is data-independent</c>
      <c>Data-dependent; leaks full access pattern (see <xref target="side-channel"/>)</c>
      <c>Verification model</c>
      <c>Recompute from password</c>
      <c>Recompute from password</c>
      <c>Succinct proof (no recomputation)</c>
      <c>Target deployment</c>
      <c>Authentication servers</c>
      <c>Authentication servers</c>
      <c>Content provenance (C2PA), sequential process attestation</c>
</texttable>

<t>Implementations <bcp14>MUST NOT</bcp14> deploy PoSME outside of its intended
provenance and proof-of-process scope without a dedicated
security analysis addressing the side-channel and threat model
considerations documented in <xref target="side-channel"/>.</t>

</section>
<section anchor="related-work"><name>Related Work</name>

<section anchor="proofs-of-sequential-work"><name>Proofs of Sequential Work</name>

<t>PoSW <xref target="CohenPietrzak2018"/> proves traversal of a depth-robust
graph via Fiat-Shamir-sampled Merkle proofs. PoSME differs: the
graph is a mutable arena (not a static DAG), the access pattern
is data-dependent (not fixed), and each node carries a causal hash
binding its value to its full write history.</t>

</section>
<section anchor="memory-hard-functions"><name>Memory-Hard Functions</name>

<t>Functions like Argon2id and scrypt resist ASIC acceleration by
imposing high memory requirements. Argon2id <xref target="RFC9106"/>
<xref target="Biryukov2016"/> resists TMTO via memory-hardness <xref target="Boneh2016"/>,
with a single-pass TMTO penalty
of approximately 2x. PoSME uses a custom logarithmic skip-link
initialization (<xref target="init"/>) to ensure Omega(sqrt(N)) space-hardness
from the first step. The ongoing computation uses pointer-chasing
with in-place writes, creating a latency-bound bottleneck.
PoSME's TMTO penalty is $1 + 2\rho(1-\alpha)^2/\alpha$ for an
adversary storing $\alpha N$ blocks, where $\rho = K/N$ is the
write density.</t>

</section>
<section anchor="proofs-of-space-time"><name>Proofs of Space-Time</name>

<t>Proofs of Space-Time (PoST) <xref target="Chia2024"/> <xref target="Spacemesh2023"/> enforce both
sequential time and persistent storage by requiring a Prover to
repeatedly prove possession of stored data over a sequence of
time intervals. PoST operates over a static graph: the stored
data does not change between proofs, and the graph structure is
fixed before execution. PoSME differs in that the arena is
mutable (each step modifies it), the access pattern is data-
dependent (addresses are determined by arena contents, not
pre-computed), and each block carries a causal hash binding its
current value to its write history. These differences make PoSME
a different construction with different TMTO characteristics,
not a strict improvement over PoST.</t>

</section>
<section anchor="cumulative-memory-complexity"><name>Cumulative Memory Complexity</name>

<t>Alwen, Blocki, and Pietrzak <xref target="AlwenBlockPietrzak2017"/> formalized
cumulative memory complexity for static graph pebbling games.
PoSME's causal dependency DAG is dynamic (edges are created during
execution), requiring a new pebbling framework. The dynamic
pebbling analysis is provided in <xref target="tmto"/>.</t>

</section>
</section>
</section>
<section anchor="conventions"><name>Conventions and Definitions</name>

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

<?line -18?>

<dl>
  <dt>H:</dt>
  <dd>
    <t>BLAKE3 or SHA-3, producing 32-byte output. Implementations
<bcp14>MUST</bcp14> use BLAKE3 for sequential chains to ensure post-quantum
resistance; SHA-3 <bcp14>MAY</bcp14> be used as an alternative where BLAKE3
is unavailable.</t>
  </dd>
  <dt>XOF(input, index):</dt>
  <dd>
    <t>H evaluated at (input || I2OSP(index, 4)), truncated to
8 bytes and interpreted as a big-endian unsigned integer.</t>
  </dd>
  <dt>I2OSP(x, len):</dt>
  <dd>
    <t>Integer-to-Octet-String Primitive per <xref target="RFC8017"/>.</t>
  </dd>
  <dt>MerkleRoot(A):</dt>
  <dd>
    <t>Merkle tree root over arena blocks using domain-separated
hashing per <xref target="RFC6962"/>.</t>
  </dd>
  <dt>MerkleUpdate(root, index, new_value):</dt>
  <dd>
    <t>Incremental Merkle root update at the given index.</t>
  </dd>
  <dt>Prover:</dt>
  <dd>
    <t>The entity executing the PoSME computation and generating proofs.</t>
  </dd>
  <dt>Verifier:</dt>
  <dd>
    <t>The entity checking PoSME proofs.</t>
  </dd>
  <dt>Arena:</dt>
  <dd>
    <t>A mutable array of N blocks, each containing a 32-byte data
field and a 32-byte causal hash.</t>
  </dd>
  <dt>Causal hash:</dt>
  <dd>
    <t>A per-block running hash chain binding each block's value to
the cursor of the step that wrote it.</t>
  </dd>
</dl>

</section>
<section anchor="construction"><name>Construction</name>

<section anchor="block-format"><name>Arena Block Format</name>

<t>Each arena block is a pair:</t>

<figure><sourcecode type="pseudocode"><![CDATA[
block = {
    data:   bytes[32],
    causal: bytes[32]
}
]]></sourcecode></figure>

<t>The <spanx style="verb">data</spanx> field stores the block's computational value. The
<spanx style="verb">causal</spanx> field stores the causal hash chain: a running digest
binding the block's current value to the cursor of the step
that last wrote it.</t>

</section>
<section anchor="init"><name>Arena Initialization</name>

<t>The arena is initialized deterministically from a public seed s:</t>

<figure><sourcecode type="pseudocode"><![CDATA[
for i in 0..N-1:
    if i == 0:
        A[0].data = H("PoSME-init-v1" || s || I2OSP(0, 4))
    else:
        A[i].data = H("PoSME-init-v1" || s || I2OSP(i, 4)
                      || A[i-1].data
                      || A[floor(i/2)].data)
    A[i].causal = H("PoSME-causal-v1" || s || I2OSP(i, 4))

root_0 = MerkleRoot(A)
T_0 = H("PoSME-transcript-v1" || s || root_0)
]]></sourcecode></figure>

<t>The initialization references both the preceding block (A[i-1])
and a logarithmic skip-link (A[floor(i/2)]). This creates a
dependency DAG of depth log(N) and width N, requiring
Omega(sqrt(N)) space to evaluate (the DAG cannot be streamed
in constant space because each block depends on a block
approximately N/2 positions behind it). A custom initialization
is used rather than Argon2id because Argon2id's fixed internal
graph does not provide this skip-link structure; the logarithmic
back-references are necessary for the space-hardness property.</t>

<t>The Verifier can independently compute root_0 and T_0 from the
seed, providing a trusted anchor for all subsequent verification.</t>

</section>
<section anchor="step-function"><name>Step Function</name>

<t>The step function is the core of PoSME. It enforces sequentiality via
pointer-chasing, hardware parity via forced intra-step bank collisions,
and TMTO resistance via spatial neighborhood entanglement.</t>

<t>At each step t in {1, ..., K}:</t>

<figure><sourcecode type="pseudocode"><![CDATA[
STEP(t):
    cursor = T_{t-1}
    
    // 1. Determine Target Bank
    bank_id = XOF(cursor, 0) mod params.B_banks
    
    // Start high-resolution cycle counter
    t_start = RDTSC() 

    // 2. Intra-Step Bank Collision Reads
    addrs = []
    for j in 0..d-1:
        // Generate pseudo-random address
        raw_a = XOF(cursor, j + 1) mod params.N
        
        // Mutate raw_a to ensure it maps to bank_id
        a = force_bank_mapping(raw_a, bank_id, params)
        addrs.append(a)
        
        val = A[a]
        cursor = H(cursor || val.data || val.causal)

    // 3. Write with Spatial Neighborhood Entanglement
    raw_w = XOF(cursor, d + 1) mod params.N
    w = force_bank_mapping(raw_w, bank_id, params)
    old = A[w]
    
    // Incorporate causal hashes of logical neighbors
    n_prev = A[(w - 1) mod params.N].causal
    n_next = A[(w + 1) mod params.N].causal
    
    new_data = H(old.data || cursor || old.causal 
                  || n_prev || n_next)
    new_causal = H(old.causal || cursor || I2OSP(t, 4) 
                    || n_prev || n_next)
    A[w] = {data: new_data, causal: new_causal}

    // Stop cycle counter to capture physical latency jitter
    t_end = RDTSC()
    delta_t = t_end - t_start

    // 4. Update Commitments
    root_t = MerkleUpdate(root_{t-1}, w, A[w])
    T_t = H(T_{t-1} || I2OSP(t, 4) || cursor
            || root_t || I2OSP(delta_t, 8))

    // 5. Log step for Prover transcript
    log[t] = {addrs, w, old, A[w], cursor, root_t, delta_t}
]]></sourcecode></figure>

<section anchor="bad-locality"><name>Addressing Function and Bad Locality Requirement</name>

<t>The addressing function that maps the output of the step hash to
the next memory chunk address <bcp14>MUST</bcp14> produce addresses that are
approximately uniform over the allocated memory arena. Formally,
for a hash output $h$ of length $L$ bits and arena size $N$,
the derived index:</t>

<figure><sourcecode type="artwork"><![CDATA[
a = OS2IP(h[0..7]) mod N
]]></sourcecode></figure>

<t>where OS2IP is the Octet String to Integer Primitive per
<xref target="RFC8017"/>, interpreting the first 8 octets of $h$ as an
unsigned big-endian integer, <bcp14>MUST</bcp14> produce addresses that are
within statistical distance $N/2^{64}$ of uniform over
$[0, N)$ (established by Theorem 2, <xref target="per-step-recomp"/>).</t>

<t>This access pattern <bcp14>MUST</bcp14> ensure a uniform distribution of jumps
across the entire memory layout, rendering modern hardware
caching layers (L1, L2, L3 caches) and hardware pre-fetch
engines entirely ineffective. Every single step index
transition <bcp14>MUST</bcp14> result in an effective cache miss with
overwhelming probability, forcing a cold random access to
physical memory cells to preserve the sequential execution
time delay. For the recommended arena sizes ($N \ge 2^{20}$,
arena $\ge$ 64 MiB), the arena exceeds the largest commodity
L3 caches, and the pseudo-random addressing ensures that
successive accesses have negligible spatial locality.</t>

<t>Implementations <bcp14>MUST NOT</bcp14> reorder, batch, or prefetch arena
accesses. Each pointer-chase hop <bcp14>MUST</bcp14> complete (the read
value <bcp14>MUST</bcp14> be available to the CPU) before the next address
can be computed.</t>

<section anchor="type-conversion"><name>Type Conversion Primitives</name>

<t>Whenever octet string arrays output from the pseudo-random step
transformations (BLAKE3 XOF) are converted into integer array
indices for chunk addressing, the conversion <bcp14>MUST</bcp14> use the
OS2IP (Octet String to Integer Primitive) per <xref target="RFC8017"/>,
interpreting octets as a big-endian unsigned integer. This
encoding is <bcp14>REQUIRED</bcp14> for interoperability: a Verifier <bcp14>MUST</bcp14>
be able to reproduce the Prover's address derivations from
the proof without out-of-band negotiation of byte order.</t>

<t>The XOF function defined in <xref target="conventions"/> truncates the hash
output to 8 bytes and interprets the result via OS2IP as a
big-endian unsigned integer. All pseudocode in this document
uses this convention. Implementations <bcp14>MUST NOT</bcp14> use
alternative byte orderings (e.g., little-endian) for index
derivation.</t>

</section>
</section>
<section anchor="bank-collision"><name>Intra-Step Bank Collisions</name>

<t>Standard memory controllers achieve high bandwidth by interleaving 
sequential reads across multiple hardware banks, keeping multiple 
row-buffers open. PoSME explicitly defeats this optimization to 
enforce a strict latency floor.</t>

<t>The <spanx style="verb">force_bank_mapping(raw_a, bank_id, params)</spanx> function modifies the 
specific bits of the logical address <spanx style="verb">raw_a</spanx> that the memory controller 
uses for bank selection, replacing them with <spanx style="verb">bank_id</spanx>.</t>

<t>By forcing all $d$ reads and the final write to target the <em>same</em> 
physical bank but <em>different</em> pseudo-random rows, the memory controller 
suffers a "Bank Conflict" on every access. This forces a physical Row 
Precharge ($t_{RP}$) and RAS-to-CAS Delay ($t_{RCD}$) penalty for every 
hop, anchoring the execution time to the thermodynamic limits of the 
DRAM capacitor rather than the logic speed of the processor.</t>

</section>
<section anchor="spatial-binding"><name>Spatial Neighborhood Entanglement</name>

<t>The write step cryptographically binds the updated block to the current 
state of its logical neighbors, <spanx style="verb">A[w-1]</spanx> and <spanx style="verb">A[w+1]</spanx>.</t>

<t>This transforms the Time-Memory Trade-Off (TMTO) penalty from a
self-contained write chain into a spatial cascade. If an adversary
discards a subset of the arena, recomputing a single missing block
$w$ requires knowing the causal hashes of its neighbors at the exact
moment of the write. If those neighbors were also discarded, the
recomputation propagates outward: $w-1 \to w-2 \to \cdots$ and
$w+1 \to w+2 \to \cdots$, until reaching stored blocks on each side.
For an adversary storing $\alpha N$ blocks, the expected cascade width
is $2(1-\alpha)/\alpha$, and each block costs $\rho$ hash evaluations
to replay (see Theorem 3, <xref target="per-step-recomp"/>). This cascade is
sequential (Theorem 4, <xref target="cascade-latency"/>), adding directly to the
adversary's critical path.</t>

</section>
<section anchor="timing-entropy"><name>Timing Entropy Attestation</name>

<t>Because commodity DRAM requires periodic electrical refresh cycles
($t_{REFW}$), a genuine physical execution will exhibit unavoidable,
stochastic latency spikes. These timing variations arise from
multiple independent physical sources: DRAM refresh interference,
OS scheduler preemption, thermal throttling, and crossed clock-
domain jitter between the CPU core clock, memory controller clock,
and DRAM internal timing.</t>

<t>The Prover measures the execution time of the read/write loop using a
monotonic, high-resolution hardware counter (e.g., the <spanx style="verb">RDTSC</spanx>
instruction on x86 architectures). This inter-arrival time, <spanx style="verb">delta_t</spanx>,
is folded directly into the transcript $T_t$. A Verifier auditing the
transcript can perform statistical variance testing on the distribution
of <spanx style="verb">delta_t</spanx> values. An ASIC attempting to simulate execution entirely
within ultra-fast, deterministic SRAM will lack this specific jitter
profile, allowing the Verifier to reject perfectly clean transcripts as
physically impossible.</t>

<section anchor="jitter-calibration"><name>CPU Jitter Entropy Calibration</name>

<t>The min-entropy available from CPU timing jitter depends on the
Over-Sampling Ratio (OSR) configured in the collection loop.
Implementations <bcp14>MUST NOT</bcp14> assume a flat 1-bit min-entropy per
time delta sample under default configurations.</t>

<t>Under a standard execution configuration with an Over-Sampling
Ratio (OSR) of 3, the estimated min-entropy rate is
approximately 0.33 bits per raw time delta sample; equivalently,
approximately 3 raw samples are required to extract 1 bit of
conditioned output entropy. This relationship follows from the
Jitter RNG analysis methodology: the OSR determines the ratio
of raw samples to conditioned output bits.</t>

<t>If a target deployment profile strictly mandates a 1-bit
min-entropy baseline per sample, the implementation
initialization routines <bcp14>MUST</bcp14> explicitly override default
execution bounds to enforce a significantly higher OSR value
(typically OSR &gt;= 10-20, depending on the platform's jitter
characteristics). The required OSR <bcp14>SHOULD</bcp14> be determined by
platform-specific entropy assessment using established
methodologies (e.g., NIST SP 800-90B health tests).</t>

</section>
<section anchor="embedded-entropy"><name>Embedded Platform Entropy Warning</name>

<t><strong>WARNING:</strong> CPU jitter entropy <bcp14>MAY</bcp14> degrade significantly or
collapse entirely on low-power, deeply embedded, single-clock-
domain microcontroller architectures. Basic microcontrollers
and simple RISC-V cores that lack complex, asynchronous,
crossed clock-domain jitter patterns found in modern commodity
consumer or enterprise CPUs (multi-GHz, out-of-order,
superscalar designs with independent memory controller clocks)
may produce timing deltas with near-zero min-entropy.</t>

<t>Implementations targeting such platforms <bcp14>MUST</bcp14> perform a
platform-specific entropy assessment before relying on
<spanx style="verb">delta_t</spanx> values for any security-relevant purpose.
Implementations <bcp14>SHOULD</bcp14> fall back to a hardware random number
generator (HWRNG) or external entropy source if the platform
cannot provide adequate CPU jitter entropy. If no adequate
entropy source is available, the <spanx style="verb">delta_t</spanx> values <bcp14>MUST</bcp14> be
treated as non-cryptographic metadata (useful for Verifier
plausibility checks but not as a source of secret randomness).</t>

</section>
</section>
<section anchor="transcript-chain"><name>Transcript Chain</name>

<t>The transcript chain T_t binds all steps causally:</t>

<figure><sourcecode type="pseudocode"><![CDATA[
T_t = H(T_{t-1} || I2OSP(t, 4) || cursor || root_t)
]]></sourcecode></figure>

<t>T_t incorporates root_t (the Merkle root after the write) and
cursor (which depends on the arena state at step t). Computing
T_t requires computing all prior steps.</t>

</section>
</section>
<section anchor="root-chain"><name>Root Chain Commitment</name>

<t>The Prover commits to the sequence of ALL K arena roots:</t>

<figure><sourcecode type="pseudocode"><![CDATA[
R = [root_0, root_1, ..., root_K]
C_roots = MerkleRoot(R)
]]></sourcecode></figure>

<t>This root chain commitment binds the Prover to a specific
sequence of arena states BEFORE Fiat-Shamir challenges are
derived. The challenges depend on (T_K, C_roots), and both
must be fixed before the Prover knows which steps will be
challenged.</t>

</section>
<section anchor="proof-gen"><name>Proof Generation</name>

<figure><sourcecode type="pseudocode"><![CDATA[
PROVE(K, Q, R_depth):
    C_roots = MerkleRoot([root_0, ..., root_K])
    challenges = FS(T_K, C_roots, Q)
    proof = {params, T_K, C_roots, step_proofs: []}

    for c in challenges:
        sp = make_step_proof(c, R_depth)
        proof.step_proofs.append(sp)
    return proof

make_step_proof(step, depth):
    sp = {
        step_id: step,
        cursor_in: T_{step-1},
        cursor_out: log[step].cursor,
        root_before: root_{step-1},
        root_after: log[step].root_t,
        root_chain_paths: [
            MerklePath(C_roots, step-1),
            MerklePath(C_roots, step)
        ],
        reads: [],
        write: {addr: w, old: log[step].old, new: A[w],
                merkle_path: MerklePath(root_{step-1}, w),
                neighbor_prev: {
                    addr: (w-1) mod N,
                    block: A[(w-1) mod N],
                    merkle_path:
                        MerklePath(root_{step-1}, (w-1) mod N)},
                neighbor_next: {
                    addr: (w+1) mod N,
                    block: A[(w+1) mod N],
                    merkle_path:
                        MerklePath(root_{step-1}, (w+1) mod N)}},
        writers: []
    }
    for j in 0..d-1:
        sp.reads.append({
            addr, block, merkle_path:
                MerklePath(root_{step-1}, addr)})
        if depth > 0:
            ws = last_writer(addr, step)
            if ws == 0:
                sp.writers.append({type: "init",
                    init_path: MerklePath(root_0, addr)})
            else:
                sp.writers.append({type: "step",
                    proof: make_step_proof(ws, depth-1)})
        else:
            sp.writers.append({type: "leaf",
                writer_step: last_writer(addr, step),
                merkle_path: MerklePath(
                    root_{ws}, addr)})
    return sp
]]></sourcecode></figure>

</section>
</section>
<section anchor="verification"><name>Verification</name>

<section anchor="verify-procedure"><name>Verification Procedure</name>

<t>The Verifier receives (seed, params, T_K, C_roots, proof):</t>

<figure><sourcecode type="pseudocode"><![CDATA[
VERIFY(seed, params, T_K, C_roots, proof):
    // 1. Trusted anchor
    root_0 = compute_init_root(seed, params.N)
    T_0 = H("PoSME-transcript-v1" || seed || root_0)

    // 2. Verify root_0 in root chain
    assert MerkleVerify(C_roots, 0, root_0,
                        proof.root_0_path)

    // 3. Recompute challenges
    challenges = FS(T_K, C_roots, params.Q)

    // 4. Verify each challenged step
    for sp in proof.step_proofs:
        verify_step(sp, C_roots, root_0, params)

verify_step(sp, C_roots, root_0, params):
    // A. Verify roots are in the root chain
    assert MerkleVerify(C_roots, sp.step_id - 1,
                        sp.root_before,
                        sp.root_chain_paths[0])
    assert MerkleVerify(C_roots, sp.step_id,
                        sp.root_after,
                        sp.root_chain_paths[1])

    // B. Verify read Merkle proofs
    for j in 0..d-1:
        assert MerkleVerify(sp.root_before,
            sp.reads[j].addr, sp.reads[j].block,
            sp.reads[j].merkle_path)

    // C. Replay pointer-chase
    cursor = sp.cursor_in
    for j in 0..d-1:
        a = XOF(cursor, j) mod N
        assert a == sp.reads[j].addr
        cursor = H(cursor || sp.reads[j].block.data
                           || sp.reads[j].block.causal)

    // D. Verify write with spatial neighbors
    w = XOF(cursor, d) mod N
    assert w == sp.write.addr
    assert MerkleVerify(sp.root_before, w,
                        sp.write.old, sp.write.merkle_path)

    // D1. Verify spatial neighbor Merkle proofs
    w_prev = (w - 1) mod N
    w_next = (w + 1) mod N
    np = sp.write.neighbor_prev
    nn = sp.write.neighbor_next
    assert np.addr == w_prev
    assert nn.addr == w_next
    assert MerkleVerify(sp.root_before, w_prev,
                        np.block, np.merkle_path)
    assert MerkleVerify(sp.root_before, w_next,
                        nn.block, nn.merkle_path)
    n_prev = np.block.causal
    n_next = nn.block.causal

    // D2. Verify symbiotic write with spatial entanglement
    assert sp.write.new.data == H(sp.write.old.data
                                   || cursor
                                   || sp.write.old.causal
                                   || n_prev || n_next)
    assert sp.write.new.causal == H(sp.write.old.causal
                                     || cursor
                                     || I2OSP(sp.step_id, 4)
                                     || n_prev || n_next)

    // E. Verify Merkle root update
    assert sp.root_after == MerkleUpdate(
        sp.root_before, w, sp.write.new)

    // F. Compute and store transcript value for cross-check
    T_c = H(sp.cursor_in || I2OSP(sp.step_id, 4)
            || cursor || sp.root_after)
    // If another challenged step c' has cursor_in == T_c,
    // verify they match. If sp.step_id == K, verify
    // T_c == T_K (the public final transcript).
    stored_transcripts[sp.step_id] = T_c

    // G. Recursive causal provenance
    for j in 0..d-1:
        verify_writer(sp.writers[j], sp.reads[j],
                      C_roots, root_0, params)
]]></sourcecode></figure>

</section>
<section anchor="verify-cost"><name>Verification Cost</name>

<t>For Q challenges with recursion depth R:</t>

<t><list style="symbols">
  <t>Root chain proofs: O(Q * log K) per challenged step</t>
  <t>Arena Merkle proofs: O(Q * d^R * log N)</t>
  <t>Cursor replays: O(Q * d^R * d)</t>
  <t>No arena memory allocation</t>
</list></t>

<t>For Q=128, d=8, R=3, N=2^25, K=4*N=2^27:</t>

<texttable>
      <ttcol align='left'>Operation</ttcol>
      <ttcol align='left'>Count</ttcol>
      <c>Root chain verifications</c>
      <c>128 * 2 * 27 = ~6.9K hashes</c>
      <c>Arena Merkle verifications</c>
      <c>128 * 512 * 25 = ~1.6M hashes</c>
      <c>Cursor replays</c>
      <c>128 * 512 * 8 = ~524K hashes</c>
      <c>Total</c>
      <c>~2.2M hashes, ~6ms</c>
</texttable>

<t>The ~6ms estimate assumes a modern desktop CPU (~350M BLAKE3
hashes/second). On constrained platforms (mobile: 60-300ms;
WASM: 120ms-600ms), verification is slower but still practical.
No memory allocation beyond the proof data is required.</t>

</section>
</section>
<section anchor="security"><name>Security Analysis</name>

<section anchor="assumptions"><name>Assumption Registry</name>

<t>All security claims in this document are conditional on the
assumptions listed below. Each assumption is given a label
(A1-A4) referenced by the theorems that depend on it.</t>

<t><strong>A1 (Random Oracle Model).</strong> The hash function $H$ (BLAKE3 or
SHA-3) is modeled as a random oracle: on any fresh input, $H$
returns an independent, uniformly random 256-bit output. This
assumption underlies address uniformity (Theorem 2) and the
independence of pointer-chase targets.</t>

<t><strong>A2 (Collision Resistance).</strong> Finding $x \ne x'$ with
$H(x) = H(x')$ requires $\Omega(2^{128})$ queries (birthday
bound for a 256-bit hash). Theorem 1 (Soundness) reduces forgery
to collision-finding with a factor-$K$ loss.</t>

<t><strong>A3 (Preimage Resistance).</strong> Given $y$, finding $x$ with
$H(x) = y$ requires $\Omega(2^{256})$ queries. This assumption
is used implicitly in the causal hash mechanism: reversing a
causal hash chain to recover a prior cursor requires a preimage
query.</t>

<t><strong>A4 (Uniform and Independent Addressing).</strong> Under A1, the
derived addresses $a_{t,j} = \text{XOF}(\text{cursor}_t, j)
\bmod N$ are pairwise independent and within statistical distance
$N/2^{64}$ of uniform over $[0, N)$. This is formally established
as Theorem 2 (<xref target="per-step-recomp"/>). The TMTO bounds in Theorems
3-5 are conditional on A4 holding; if $H$ deviates from the
random oracle model in a way that induces address clustering,
the TMTO bounds may not hold as stated.</t>

<t>The following table summarizes the dependency:</t>

<texttable>
      <ttcol align='left'>Theorem</ttcol>
      <ttcol align='left'>Depends on</ttcol>
      <ttcol align='left'>Claim</ttcol>
      <c>1 (Soundness)</c>
      <c>A2</c>
      <c>Forgery advantage $\le K \cdot \epsilon_{\text{cr}}$</c>
      <c>2 (Address Uniformity)</c>
      <c>A1</c>
      <c>Addresses pairwise independent, near-uniform</c>
      <c>3 (Spatial Cascade TMTO)</c>
      <c>A1, A3, A4</c>
      <c>Per-step cost $\ge d(1 + 2\rho(1-\alpha)^2/\alpha)$</c>
      <c>4 (Sequential Cascade)</c>
      <c>A3, A4</c>
      <c>Cascade is sequential ($L \cdot \rho$ critical path)</c>
      <c>5 (Checkpoint Dominance)</c>
      <c>A4</c>
      <c>Partial checkpoints strictly suboptimal</c>
</texttable>

<t><strong>Scope limitation.</strong> No composability (UC-security) claim is
made. PoSME is analyzed as a standalone primitive in the random
oracle model. Applications that compose PoSME with other
protocols (e.g., combining with timestamps per <xref target="work-vs-time"/>)
<bcp14>MUST</bcp14> perform a separate composition analysis; the security
guarantees stated here do not automatically carry through
sequential or parallel composition.</t>

</section>
<section anchor="threat-model"><name>Threat Model</name>

<t>The adversary is a probabilistic polynomial-time algorithm with
random oracle access to H. The adversary receives the public
seed s and parameters (N, K, d, Q, R). Its goal is to produce
(T_K, C_roots, proof) that passes VERIFY (<xref target="verify-procedure"/>)
while either:</t>

<t><list style="numbers" type="1">
  <t><strong>Forgery:</strong> producing T_K' != T_K (the honestly computed
transcript), or</t>
  <t><strong>Space reduction:</strong> using less than N * B bits of arena
storage at some point during computation.</t>
</list></t>

<t>The adversary may use custom hardware with faster memory (lower
latency) than the honest Prover. The ASIC resistance analysis
(<xref target="asic-resistance"/>) bounds the resulting speedup.</t>

</section>
<section anchor="soundness"><name>Forgery Prevention</name>

<t>The causal hash mechanism prevents block value fabrication.
To forge a block's causal hash, the adversary needs the cursor
of the step that wrote it. That cursor depends on d blocks read
at the writer step, each with their own causal hashes requiring
their own writers' cursors, recursively. Symbiotic binding
strengthens this: forging data requires old_causal, and forging
old_causal requires the prior writer's cursor. Neither field
can be independently fabricated.</t>

<t>The root chain commitment (<xref target="root-chain"/>) binds the Prover to
ALL K arena roots before challenges are derived. C_roots is an
input to the Fiat-Shamir challenge derivation, so the Prover
cannot fabricate roots after seeing challenges.</t>

<t><strong>Theorem 1 (Soundness).</strong> Let $\mathcal{A}$ be any adversary
producing $(T_K', C_{\text{roots}}', \text{proof}')$ with
$T_K' \ne T_K$ that passes VERIFY. There exists a reduction
$\mathcal{B}$ to collision-finding in $H$ such that:</t>

<figure><sourcecode type="artwork"><![CDATA[
Adv^{forge}(A) <= K * Adv^{coll}(B)
]]></sourcecode></figure>

<t>where $K$ is the number of steps. The factor $K$ arises from a
union bound over the $K$ steps at which the transcript chain may
diverge, and represents a reduction loss of factor $K$. For the
recommended parameter range $K \le 2^{26}$, this loss is
acceptable against a 256-bit hash ($K \cdot \epsilon_{\text{cr}}
\le 2^{26} \cdot 2^{-128} = 2^{-102}$ for birthday-bound
collision resistance).</t>

<t><strong>Proof sketch.</strong> If verification passes with $T_K' \ne T_K$,
there exists a first divergence step $c$ where
$T_{c-1}' = T_{c-1}$ but $T_c' \ne T_c$. The reduction
$\mathcal{B}$ guesses this step $c$ uniformly at random from
${1, \ldots, K}$ (success probability $1/K$, the source of the
reduction loss). At step $c$, the Verifier checks that
$T_c = H(T_{c-1} | c | \text{cursor} | \text{root}_c)$. If the
adversary's inputs differ from the honest inputs but produce the
same $T_c$, $\mathcal{B}$ outputs a collision in $H$. If the
adversary's inputs differ and produce a different $T_c$, then
$T_c' \ne T_c$, contradicting acceptance. The union bound over
$K$ guesses yields the stated loss.</t>

<t><strong>Remark.</strong> The factor-$K$ loss is loose: it reflects the
reduction strategy (random guess of the divergence point), not
necessarily a real attack. Tightening this to $O(\log K)$ via
a binary-search reduction or to $O(1)$ via a rewinding argument
is an open problem. See also <xref target="open-problems"/>, item 1.</t>

<t>A full derivation is provided in the companion
analysis (to appear as IACR ePrint).</t>

</section>
<section anchor="recomp-cost"><name>Recomputation Cost</name>

<t>Separately from forgery prevention, spatial neighborhood
entanglement (<xref target="spatial-binding"/>) imposes a storage-dependent
penalty on recomputation. Without spatial entanglement, an
adversary recomputing a missing block traverses its temporal
write chain at cost $O(\rho)$ hashes; the chain is self-contained
because each write depends only on the block's own previous
state and the cursor (which is stored). With spatial entanglement,
each write also depends on the causal hashes of neighbors
$A[w-1]$ and $A[w+1]$ at the time of the write. These are
historical states that cannot be derived from the neighbors'
current values (hash chains are irreversible). Therefore,
recomputing a missing block requires replaying the full temporal
chains of its spatial neighbors, which in turn require their
own neighbors, creating a spatial cascade.</t>

<t>The cascade extends outward from the missing block until reaching
a stored block on each side. For an adversary storing $\alpha N$
blocks, the expected cascade width is $2(1-\alpha)/\alpha$
(geometric distribution), and each block in the cascade costs
$\rho$ hash evaluations to replay. The per-miss recomputation
cost is therefore $\Theta(\rho/\alpha)$, compared to
$\Theta(\rho)$ without spatial entanglement. The $1/\alpha$
factor means that reducing storage becomes increasingly
expensive: halving storage more than doubles recomputation cost.</t>

</section>
<section anchor="tmto"><name>TMTO Lower Bound</name>

<t>An adversary storing $\alpha \cdot N$ blocks faces a two-layer
penalty:</t>

<section anchor="sequential-floor"><name>Sequential Floor</name>

<t>The transcript chain T_0 through T_K must be computed
sequentially to produce T_K before Fiat-Shamir challenges are
derived. This is an $\Omega(K)$ lower bound regardless of storage.</t>

</section>
<section anchor="spatial-cascade-tmto"><name>Spatial Cascade TMTO</name>

<t>Each step writes 1 block at a uniformly random address
(Theorem 2). After $K$ steps with write density $\rho = K/N$,
each block has been written $\rho$ times on average. Because
each write is bound to its spatial neighbors' causal hashes,
missing blocks cannot be recomputed in isolation.</t>

<t>Theorem 3 (<xref target="per-step-recomp"/>) establishes the TMTO ratio:</t>

<figure><sourcecode type="artwork"><![CDATA[
TMTO(alpha) = 1 + 2*rho*(1-alpha)^2 / alpha
]]></sourcecode></figure>

<texttable>
      <ttcol align='left'>rho</ttcol>
      <ttcol align='left'>alpha=0.5</ttcol>
      <ttcol align='left'>alpha=0.25</ttcol>
      <ttcol align='left'>alpha=0.1</ttcol>
      <ttcol align='left'>alpha=0.01</ttcol>
      <c>1</c>
      <c>2x</c>
      <c>5x</c>
      <c>17x</c>
      <c>197x</c>
      <c>4</c>
      <c>5x</c>
      <c>19x</c>
      <c>65x</c>
      <c>785x</c>
      <c>16</c>
      <c>17x</c>
      <c>73x</c>
      <c>257x</c>
      <c>3,137x</c>
</texttable>

<t>K <bcp14>MUST</bcp14> be at least N ($\rho \ge 1$) for meaningful TMTO resistance.
Values of $\rho \ge 4$ are <bcp14>RECOMMENDED</bcp14>.</t>

</section>
<section anchor="per-step-recomp"><name>Per-Step Recomputation Cost</name>

<t><strong>Theorem 2 (Address Uniformity).</strong> In the random oracle model,
the addresses $a_{t,j} = \text{XOF}(\text{cursor}_t, j) \bmod N$
used for pointer-chase reads satisfy:</t>

<t><list style="numbers" type="1">
  <t><strong>Independence.</strong> For distinct pairs $(t_1, j_1) \ne (t_2, j_2)$,
the addresses $a_{t_1,j_1}$ and $a_{t_2,j_2}$ are pairwise
independent, except with probability at most
$\binom{Kd}{2} / 2^{257}$ (birthday bound on cursor collisions
in the 256-bit hash space).</t>
  <t><strong>Uniformity.</strong> Each address $a_{t,j}$ has statistical distance
at most $N / 2^{64}$ from the uniform distribution over
$[0, N)$. For $N \le 2^{48}$, this bound is at most $2^{-16}$.</t>
</list></t>

<t>Consequently, for any adversary subset of stored blocks of size
$\alpha \cdot N$, a random read misses the stored set with
probability $(1 - \alpha) \pm N/2^{64}$.</t>

<t><strong>Proof.</strong> In the random oracle model, $H$ maps distinct inputs
to independent, uniformly random 256-bit outputs. Define
$X_{t,j} = H(\text{cursor}<em>t | \text{I2OSP}(j, 4))$. The
inputs are distinct across $j$ (for fixed $t$) by the index
suffix, and across $t$ (for any $j$) whenever
$\text{cursor}_t \ne \text{cursor}</em>{t'}$. Since
$\text{cursor}<em>t = H(\text{cursor}</em>{t-1} | \cdots)$ is itself
a hash output, cursor collision probability across all $K$ steps
is at most $\binom{K}{2} / 2^{256}$, which is negligible. Given
distinct inputs, the outputs $X_{t,j}$ are independent uniform
256-bit strings, establishing claim (1).</t>

<t>For claim (2): XOF truncates $X_{t,j}$ to its first 8 bytes,
yielding a uniform value $U$ in $[0, 2^{64})$. The address is
$U \bmod N$. The number of integers in $[0, 2^{64})$ mapping
to any particular residue $r \in [0, N)$ is either
$\lfloor 2^{64}/N \rfloor$ or $\lceil 2^{64}/N \rceil$. The
maximum deviation from the ideal probability $1/N$ is at most
$1/2^{64}$, giving statistical distance at most $N/2^{64}$ over
the full distribution. For $N \le 2^{48}$, this is at most
$2^{-16}$, which is negligible for all recommended profiles.</t>

<t><strong>Theorem 3 (Spatial Cascade TMTO).</strong> In the random oracle model,
under Theorem 2, consider an adversary that maintains $\alpha \cdot N$
arena blocks in working memory ($0 &lt; \alpha &lt; 1$) and stores all $K$
transcript values. The adversary's expected computation per step is:</t>

<figure><sourcecode type="artwork"><![CDATA[
C_step >= d * (1 + (1-alpha) * 2*rho / alpha)
]]></sourcecode></figure>

<t>where $\rho = K/N$ is the write density.</t>

<t><strong>Proof.</strong> The proof proceeds in three parts.</t>

<t><em>Part 1: Write chain cost.</em> When a read at step $t$ targets a
block $w$ not in the adversary's working memory, the adversary
must reconstruct $w$'s current state. Block $w$ was written
$\rho$ times on average (each of $K$ steps writes to a uniformly
random block by Theorem 2). The adversary knows the cursor at
every step (stored), so replaying one write requires one hash
evaluation given the block's previous state and the cursor.
Tracing $w$'s temporal write chain from initialization to the
current epoch costs $\rho$ hash evaluations.</t>

<t><em>Part 2: Spatial cascade.</em> Each write to block $w$ at step
$t'$ depends on the causal hashes of $A[w-1]$ and $A[w+1]$ at
time $t'$ (<xref target="spatial-binding"/>). These are historical states:
the causal hash of $w$'s neighbor at the moment $w$ was written,
not the neighbor's current state. Even if $w-1$ is currently in
the adversary's working memory, its state at time $t'$ is not
recoverable from its current state (hash chains are
irreversible). Therefore, to replay $w$'s write chain, the
adversary must also replay the full temporal chain of $w-1$ (so
that $w-1$'s state at each of $w$'s write times is available).</t>

<t>Block $w-1$'s temporal chain depends on $w-2$'s historical
causal hashes (its own spatial neighbor). If $w-2$ is not stored,
this cascades further: $w-2 \to w-3 \to \cdots$. The cascade
extends outward in one direction until reaching a block that is
in the adversary's working memory; that block's full temporal
chain is available (the adversary maintains it by construction).</t>

<t>The same cascade extends in the opposite direction:
$w+1 \to w+2 \to \cdots$. The cascade width in each direction
follows a geometric distribution with success probability
$\alpha$ (each successive neighbor is stored with probability
$\alpha$, independently by Theorem 2's uniformity guarantee on
write addresses). The expected cascade width in one direction
is $(1-\alpha)/\alpha$. For all recommended profiles
($N \ge 2^{20}$), this is negligible relative to $N$ for any
$\alpha &gt; 2^{-19}$; ring wrap-around does not affect the bound
in practice. Each block in the cascade requires
$\rho$ hash evaluations to replay its temporal chain.</t>

<t><em>Part 3: Expected per-step cost.</em> At each of the $K$ steps,
the Prover makes $d$ reads. Each read targets a uniformly
random block, which is absent from the adversary's working
memory with probability $(1-\alpha)$. Each miss triggers a
spatial cascade of expected total width $2(1-\alpha)/\alpha$
blocks, each costing $\rho$ hash evaluations.</t>

<t>The expected computation per step is:</t>

<figure><sourcecode type="artwork"><![CDATA[
C_step = d + d*(1-alpha) * (2*(1-alpha)/alpha) * rho
       = d * (1 + 2*rho*(1-alpha)^2 / alpha)
]]></sourcecode></figure>

<t>For $(1-\alpha) \approx 1$ (small $\alpha$), this simplifies to
$d \cdot (1 + 2\rho/\alpha)$. The TMTO ratio (adversary cost
divided by honest cost $d$) is:</t>

<figure><sourcecode type="artwork"><![CDATA[
TMTO(alpha) = 1 + 2*rho*(1-alpha)^2 / alpha
]]></sourcecode></figure>

<texttable>
      <ttcol align='left'>rho</ttcol>
      <ttcol align='left'>alpha=0.5</ttcol>
      <ttcol align='left'>alpha=0.25</ttcol>
      <ttcol align='left'>alpha=0.1</ttcol>
      <ttcol align='left'>alpha=0.01</ttcol>
      <c>1</c>
      <c>2x</c>
      <c>5x</c>
      <c>17x</c>
      <c>197x</c>
      <c>4</c>
      <c>5x</c>
      <c>19x</c>
      <c>65x</c>
      <c>785x</c>
      <c>16</c>
      <c>17x</c>
      <c>73x</c>
      <c>257x</c>
      <c>3,137x</c>
</texttable>

<t>For $\alpha &lt; 1/(2\rho)$, the TMTO ratio exceeds $2\rho^2$,
making space reduction more expensive than honest execution
with full storage.</t>

</section>
<section anchor="cascade-latency"><name>Sequential Cascade Latency</name>

<t><strong>Theorem 4 (Sequential Cascade Latency).</strong> The spatial cascade
of Theorem 3 adds to the adversary's sequential critical path.
An adversary resolving a cascade of width $L$ blocks incurs at
least $L \cdot \rho$ sequential hash evaluations that cannot be
parallelized.</t>

<t><strong>Proof.</strong> To replay block $w$'s temporal chain, the adversary
needs the causal hashes of $w-1$ at each of $w$'s write times.
These causal hashes are outputs of $w-1$'s own temporal chain.
Therefore, $w-1$'s full temporal chain ($\rho$ sequential hash
evaluations) must complete before $w$'s chain can begin. By the
same argument, $w-2$'s chain must complete before $w-1$'s, and
so on. For a cascade of width $L$ blocks, the critical path is
$L$ sequential temporal chains of $\rho$ links each, totaling
$L \cdot \rho$ sequential hash evaluations. Parallel hardware
does not reduce this latency because each chain link depends on
the output of the previous link (hash chaining) and the
completion of the adjacent block's chain (spatial dependency).</t>

<t>This result is significant because it means spatial entanglement
converts a work penalty into a latency penalty: the adversary
not only performs more total computation but takes more wall-clock
time, directly undermining the sequential execution guarantee.</t>

</section>
<section anchor="checkpoint-dominance"><name>Checkpoint Dominance</name>

<t><strong>Theorem 5 (Checkpoint Dominance).</strong> Under spatial entanglement,
partial-arena checkpoints are strictly suboptimal. For any
adversary using checkpoints of $\alpha \cdot N$ blocks ($\alpha &lt; 1$)
at interval $C$ steps, the space-time product $S \times T$ satisfies:</t>

<figure><sourcecode type="artwork"><![CDATA[
S * T >= (2*rho*(1-alpha) + alpha) * S_full * T_full
]]></sourcecode></figure>

<t>where $S_{full} \times T_{full}$ is the space-time product for
full-arena checkpoints. For $\rho \ge 1$, this exceeds
$S_{full} \times T_{full}$, with the gap increasing linearly
in $\rho$.</t>

<t><strong>Proof.</strong> A full-checkpoint adversary stores all $N$ blocks at
interval $C$, giving storage $S_{full} = (K/C) \cdot N \cdot B$
and replay cost $T_{full} = Q \cdot C \cdot d / 2$ per proof
generation. The product $S_{full} \cdot T_{full}$ is independent
of $C$ (the standard time-space tradeoff).</t>

<t>A partial-checkpoint adversary stores $\alpha N$ blocks at
interval $C$. Storage: $S = \alpha \cdot S_{full}(C)$. When
replaying from a partial checkpoint, each of the $C/2$ replayed
steps incurs spatial cascade overhead per Theorem 3. Replay
cost per challenge: $T = T_{full}(C) \cdot (1 + 2\rho(1-\alpha)/\alpha)$.</t>

<t>The product:</t>

<figure><sourcecode type="artwork"><![CDATA[
S * T = alpha * S_full * T_full * (1 + 2*rho*(1-alpha)/alpha)
      = S_full * T_full * (alpha + 2*rho*(1-alpha))
      = S_full * T_full * (2*rho + alpha*(1 - 2*rho))
]]></sourcecode></figure>

<t>For $\rho \ge 1$: the coefficient $(1 - 2\rho) \le -1$, so the
product is minimized at $\alpha = 1$ (full checkpoints), where
it equals $S_{full} \times T_{full}$. Any $\alpha &lt; 1$ strictly
increases the product. For $\alpha \to 0$, the ratio approaches
$2\rho$, meaning the adversary's space-time product is $2\rho$
times worse than with full checkpoints.</t>

<t><strong>Corollary.</strong> Spatial entanglement forces the adversary into an
all-or-nothing checkpointing strategy: either store the complete
arena at each checkpoint or forgo checkpointing entirely. There
is no useful middle ground.</t>

</section>
<section anchor="pebbling-game"><name>Dynamic Pebbling Game</name>

<t>PoSME's causal DAG is dynamic: edges are created during
execution based on data-dependent addressing. In the random
oracle model (Theorem 2), each step creates d edges to
uniformly random targets. The pebbling game is:</t>

<t><list style="numbers" type="1">
  <t>N block nodes (arena) and K step nodes.</t>
  <t>At step t, the game reveals d random read addresses.</t>
  <t>To execute step t, the adversary must have pebbles on all
d read addresses and on the write target's spatial neighbors
(stored or recomputed via spatial cascade).</t>
  <t>The adversary maintains auxiliary state (cursors, write
index) of at most K * 32 bytes.</t>
</list></t>

<t>Without spatial entanglement, the per-miss recomputation cost
is $\rho$ (linear write chain), giving a TMTO ratio of
$1 + (1-\alpha) \cdot (2\rho + 1)$. With spatial entanglement,
Theorem 3 establishes the tighter bound
$1 + 2\rho(1-\alpha)^2/\alpha$, and Theorem 4 proves this
overhead is sequential (cannot be parallelized). Theorem 5
further shows that partial-arena checkpoints are strictly
dominated by full-arena checkpoints.</t>

</section>
</section>
<section anchor="asic-resistance"><name>ASIC Resistance</name>

<t>PoSME is anchored in a physics-bounded latency floor, distinct
from the bandwidth-hard approach <xref target="RenDevadas2017"/>. While
computation throughput improves exponentially with transistor
scaling, random-access memory latency is constrained by the
fundamental thermodynamics of charge-sensing in capacitors.</t>

<t>The per-hop bottleneck is determined by the mandatory bank
conflict (<xref target="bank-collision"/>), which forces the DRAM controller
to execute a full Row Precharge ($t_{RP}$) and RAS-to-CAS Delay
($t_{RCD}$) for every sequential read. These timings are
physical constants of DRAM cell operation that do not scale
with logic shrinks. Even an adversary with wafer-scale
on-die integration (<xref target="wafer-scale"/>) faces a latency floor
constrained by signal propagation across the die and the
settling time of the memory cells.</t>

<t>Consequently, the ASIC advantage is not a function of "better
hardware," but rather the physical limit of signal propagation
and charge sensing. By forcing intra-step bank collisions,
PoSME ensures that even the most optimized controller spends
the majority of its wall-clock time in a stalled state,
waiting for the physical laws of DRAM to resolve the next
address.</t>

<section anchor="hw-params"><name>Hardware Latency Parameters</name>

<t>The following table summarizes random-access latency for memory
technologies relevant to PoSME's ASIC resistance analysis. All
latencies are for random reads with a bank conflict (row miss),
which is the bottleneck PoSME forces via <xref target="bank-collision"/>.</t>

<texttable>
      <ttcol align='left'>Technology</ttcol>
      <ttcol align='left'>Random Read Latency</ttcol>
      <ttcol align='left'>Capacity</ttcol>
      <ttcol align='left'>Arena Threshold</ttcol>
      <c>CPU L3 cache (SRAM)</c>
      <c>3-12 ns</c>
      <c>16-96 MiB</c>
      <c>Below Standard profile</c>
      <c>DDR5-5600 ($t_{RP}+t_{RCD}$) <xref target="JESD79-5"/></c>
      <c>26-28 ns</c>
      <c>16-256 GiB</c>
      <c>Honest Prover baseline</c>
      <c>HBM3 ($t_{RP}+t_{RCD}$) <xref target="JESD238"/></c>
      <c>14-17 ns</c>
      <c>16-48 GiB (per stack)</c>
      <c>1.6-2.0x advantage over DDR5</c>
      <c>Custom ASIC SRAM</c>
      <c>1-5 ns</c>
      <c>64-512 MiB (die area limited)</c>
      <c>5-28x advantage over DDR5</c>
      <c>Wafer-scale SRAM</c>
      <c>1-5 ns (local), 10-20 ns (cross-die)</c>
      <c>1-40 GiB</c>
      <c>1.4-28x advantage over DDR5</c>
</texttable>

<t>The "Arena Threshold" column indicates when the arena exceeds
the technology's practical capacity, forcing fallback to slower
memory. For the Standard profile (64 MiB arena), the arena fits
in large SRAM; for Enhanced (256 MiB) and Maximum (2 GiB), even
wafer-scale SRAM is capacity-constrained.</t>

<t>The ASIC advantage ratio for a given adversary memory technology
is:</t>

<figure><sourcecode type="artwork"><![CDATA[
R_ASIC = t_honest / t_adversary
]]></sourcecode></figure>

<t>where $t_{\text{honest}}$ is the per-hop latency on commodity
DDR5 (~27 ns) and $t_{\text{adversary}}$ is the adversary's
per-hop latency. For HBM3, $R_{\text{ASIC}} \approx 1.7$x. For
on-die SRAM at arena-exceeding sizes (requiring partial SRAM +
fallback), $R_{\text{ASIC}}$ depends on the SRAM hit rate, which
is bounded by the arena size exceeding SRAM capacity.</t>

</section>
<section anchor="wafer-scale"><name>Wafer-Scale Threshold</name>

<t>The ultimate latency floor for an adversary is on-die signal
propagation. Optimal ASIC designs that integrate massive
SRAM (1-5 ns access) could achieve a 5-28x advantage over
commodity DDR5. Wafer-scale integration, as demonstrated by the
Cerebras Wafer-Scale Engine, is the existence proof for this
threshold; however, cross-die signal propagation (10-20 ns)
narrows the advantage for large arenas that span multiple die
regions. PoSME's security is durable because spatial
entanglement (Theorem 3) imposes a TMTO recomputation penalty
that scales as $1/\alpha$, ensuring that any latency-based
speedup is countered by the prohibitive cost of discarding state.
Furthermore, the cascade latency (Theorem 4) is sequential,
so the adversary cannot hide recomputation behind parallelism.</t>

</section>
<section anchor="sram-packing"><name>ASIC SRAM-Packing Vulnerability Analysis</name>

<t>A well-funded adversary can engineer a custom ASIC that integrates
massive, high-density on-die SRAM blocks directly adjacent to
custom computational execution cores on a single silicon die.
Within this unified die area, signal propagation delays across
vias and local metal interconnect operate at the speed of light
in silicon (~6.7 cm/ns), completely bypassing the external
pin-count, bus-width, and motherboard trace latency constraints
associated with discrete DRAM or HBM3 interfaces. Such an
adversary eliminates the off-chip memory latency that PoSME
exploits for honest-execution parity.</t>

<t>However, monolithic on-die SRAM is constrained by three
physical limits:</t>

<t><list style="numbers" type="1">
  <t><strong>Die area:</strong> 6T-SRAM bit cells occupy approximately
0.021-0.050 um^2 per bit at leading-edge nodes (5 nm and
below). Including peripheral circuitry (row/column decoders,
sense amplifiers, power distribution), effective SRAM area
is approximately 20-40% larger than the raw bit-cell array.
Fabricating 512 MiB of on-die SRAM requires approximately
100-230 mm^2 of total die area, consuming a substantial
fraction of a reticle-limited die (~800 mm^2 maximum).</t>
  <t><strong>Yield rate:</strong> Total defect count scales with die area
(Poisson yield model). Leading-edge designs currently
integrate up to approximately 200 MiB of on-die SRAM (e.g.,
large GPU register files and L2 caches); beyond this scale,
yield losses are likely to dominate fabrication economics,
requiring increasing redundancy overhead that further
consumes die area.</t>
  <t><strong>Economic cost:</strong> At leading-edge process nodes (5 nm and
below), wafer costs exceed $20,000 per wafer. A single die
integrating 2 GiB of SRAM would exceed a single reticle and
is likely to yield poorly, resulting in per-die costs orders
of magnitude above commodity DRAM modules providing equivalent
capacity.</t>
</list></t>

<t>PoSME counters the SRAM-packing attack vector by defining
standard operational parameter profiles (<xref target="param-profiles"/>)
whose allocation footprints scale intentionally beyond these
physical, economic, and yield-rate limits of monolithic on-die
SRAM fabrication. For the Enhanced profile (256 MiB arena) and
Maximum profile (2 GiB arena), the arena size forces the
adversarial ASIC to offload memory states to external commodity
memory architectures (DDR5 or HBM3), re-introducing the physical
latency bottleneck that the SRAM-packing design sought to
eliminate. Formally, let $S_{\text{SRAM}}$ denote the maximum
economically viable on-die SRAM capacity. For any arena size
$N \cdot B &gt; S_{\text{SRAM}}$, the adversary's per-hop latency
reverts to $t_{\text{external}} \ge 14$ ns (HBM3) rather than
$t_{\text{SRAM}} \approx 1\text{-}5$ ns, bounding the ASIC
advantage ratio to:</t>

<figure><sourcecode type="artwork"><![CDATA[
R_ASIC <= t_honest / t_external    (for N*B > S_SRAM)
]]></sourcecode></figure>

<t>For DDR5-to-HBM3, this yields $R_{\text{ASIC}} \le 2.0$x.
Parameter profiles <bcp14>SHOULD</bcp14> be selected such that $N \cdot B$
exceeds the anticipated $S_{\text{SRAM}}$ threshold for the
target threat model.</t>

</section>
</section>
<section anchor="sequentiality"><name>Sequentiality</name>

<t>Intra-step: The d reads form a pointer-chasing chain; read j+1's
address depends on read j's result.</t>

<t>Inter-step: T_t feeds into address generation for step t+1.</t>

<t>Together: K * d sequential memory accesses, each bottlenecked
by DRAM latency.</t>

</section>
</section>
<section anchor="wire-format"><name>Wire Format</name>

<t>The PoSME proof is encoded in CBOR <xref target="RFC8949"/> per <xref target="RFC8610"/>:</t>

<figure><sourcecode type="cddl"><![CDATA[
posme-proof = {
    1 => posme-params,
    2 => bstr .size 32,           ; final-transcript (T_K)
    3 => bstr .size 32,           ; root-chain-commitment
    4 => [+ step-proof],          ; challenged-steps
}

posme-params = {
    1 => uint,                    ; arena-blocks (N)
    2 => uint,                    ; total-steps (K)
    3 => uint,                    ; reads-per-step (d)
    4 => uint,                    ; challenges (Q)
    5 => uint,                    ; recursion-depth (R)
    6 => uint,                    ; bank-count (B)
}

step-proof = {
    1 => uint,                    ; step-id
    2 => bstr .size 32,           ; cursor-in
    3 => bstr .size 32,           ; cursor-out
    4 => bstr .size 32,           ; root-before
    5 => bstr .size 32,           ; root-after
    6 => [+ bstr .size 32],       ; root-chain-paths
    7 => [+ read-witness],        ; reads
    8 => write-witness,           ; write
    9 => [* writer-proof],        ; recursive provenance
    10 => uint,                   ; timing-entropy (delta_t)
}

read-witness = {
    1 => uint,                    ; address
    2 => bstr .size 32,           ; data
    3 => bstr .size 32,           ; causal-hash
    4 => [+ bstr .size 32],       ; merkle-path
}

write-witness = {
    1 => uint,                    ; address
    2 => bstr .size 32,           ; old-data
    3 => bstr .size 32,           ; old-causal
    4 => bstr .size 32,           ; new-data
    5 => bstr .size 32,           ; new-causal
    6 => [+ bstr .size 32],       ; merkle-path
    7 => read-witness,            ; neighbor-prev (w-1)
    8 => read-witness,            ; neighbor-next (w+1)
}

writer-proof = {
    1 => uint,                    ; type (0=init, 1=step, 2=leaf)
    ? 2 => uint,                  ; writer-step-id
    ? 3 => step-proof,            ; recursive step proof
    ? 4 => [+ bstr .size 32],     ; merkle-path
}
]]></sourcecode></figure>

</section>
<section anchor="parameters"><name>Parameters</name>

<section anchor="proof-size-opt"><name>Proof Size Optimization</name>

<t>The recursion depth R and challenge count Q present a direct tradeoff
between security margin and proof size. Table 6 provides concrete MiB-
per-proof costs for implementers.</t>

<texttable>
      <ttcol align='left'>Recursion (R)</ttcol>
      <ttcol align='left'>Challenges (Q)</ttcol>
      <ttcol align='left'>Blocks (B)</ttcol>
      <ttcol align='left'>Size (MiB)</ttcol>
      <c>2</c>
      <c>64</c>
      <c>81</c>
      <c>3.9</c>
      <c>2</c>
      <c>128</c>
      <c>81</c>
      <c>7.9</c>
      <c><strong>3</strong></c>
      <c><strong>64</strong></c>
      <c><strong>657</strong></c>
      <c><strong>32.1</strong></c>
      <c>3</c>
      <c>128</c>
      <c>657</c>
      <c>64.2</c>
</texttable>

<t>While R=3 yields significantly larger proofs, it provides
exponentially higher fabrication resistance by checking the witnesses
of the writers' writers. For bandwidth-constrained environments (e.g.,
light clients), R=2 with Q=128 offers a compact ~8 MiB proof while
maintaining high confidence.</t>

</section>
<section anchor="recommended-params"><name>Recommended Parameters</name>

<t>PoSME's security properties have different parameter dependencies.
TMTO resistance (<xref target="tmto"/>) depends on the write density rho = K/N
and is independent of arena size. ASIC resistance can be achieved
through arena size exceeding the
adversary's fastest memory (<xref target="asic-resistance"/>). Applications <bcp14>SHOULD</bcp14> select parameters
based on their threat model.</t>

<section anchor="n-vs-rho"><name>Design Trade-off: N vs rho</name>

<t>Arena size N and write density rho = K/N are independent knobs
controlling different security properties:</t>

<t><list style="symbols">
  <t>N controls latency-bound ASIC resistance: the arena <bcp14>SHOULD</bcp14> exceed
the adversary's fastest accessible memory (L3 cache, SRAM).
Larger N requires more Prover RAM.</t>
  <t>rho controls TMTO resistance: penalty =
1 + 2*rho*(1-alpha)^2/alpha for an adversary storing alpha*N
blocks (Theorem 3). Higher rho requires more steps (longer wall
time) but no additional RAM.</t>
</list></t>

</section>
<section anchor="param-profiles"><name>Parameter Profiles</name>

<t>Four standard parameter profiles are defined. All profiles
share fixed parameters: block size B = 64 bytes, reads per step
d = 8, bank count B_banks = 16, hash function H = BLAKE3.</t>

<texttable>
      <ttcol align='left'>Profile</ttcol>
      <ttcol align='left'>N</ttcol>
      <ttcol align='left'>Arena</ttcol>
      <ttcol align='left'>rho</ttcol>
      <ttcol align='left'>K</ttcol>
      <ttcol align='left'>Q</ttcol>
      <ttcol align='left'>R</ttcol>
      <ttcol align='left'>Peak RAM</ttcol>
      <ttcol align='left'>TMTO (alpha=0.1)</ttcol>
      <ttcol align='left'>Use Case</ttcol>
      <c>Minimal</c>
      <c>2^19</c>
      <c>32 MiB</c>
      <c>4</c>
      <c>4*N</c>
      <c>64</c>
      <c>2</c>
      <c>~64 MiB</c>
      <c>65x</c>
      <c>Constrained environments, logging micro-services</c>
      <c>Standard</c>
      <c>2^20</c>
      <c>64 MiB</c>
      <c>4</c>
      <c>4*N</c>
      <c>64</c>
      <c>2</c>
      <c>~128 MiB</c>
      <c>65x</c>
      <c>Sybil resistance, lightweight provenance</c>
      <c>Enhanced</c>
      <c>2^22</c>
      <c>256 MiB</c>
      <c>4</c>
      <c>4*N</c>
      <c>128</c>
      <c>3</c>
      <c>~512 MiB</c>
      <c>65x</c>
      <c>High-assurance content provenance</c>
      <c>Maximum</c>
      <c>2^25</c>
      <c>2 GiB</c>
      <c>4</c>
      <c>4*N</c>
      <c>128</c>
      <c>3</c>
      <c>~4 GiB</c>
      <c>65x</c>
      <c>Enterprise/desktop content authenticity workflows</c>
</texttable>

<t>The Minimal profile (32 MiB) is intended for highly constrained
execution environments where memory is scarce but a baseline
sequential execution proof is still required. Implementations
<bcp14>SHOULD</bcp14> use the Standard profile or higher unless resource
constraints prevent it. The Standard and Enhanced profiles
exceed consumer L3 caches (16-96 MiB as of 2025) and provide
latency-bound ASIC resistance via arena size. The Maximum
profile (2 GiB) exceeds all current on-die SRAM capacities
(see <xref target="sram-packing"/>) and is <bcp14>RECOMMENDED</bcp14> for enterprise and
desktop content authenticity workflows where the Prover has
sufficient RAM.</t>

</section>
<section anchor="memory-budget"><name>Memory Budget</name>

<t>The Prover's peak memory comprises three components:</t>

<texttable>
      <ttcol align='left'>Component</ttcol>
      <ttcol align='left'>Size</ttcol>
      <ttcol align='left'>Notes</ttcol>
      <c>Arena</c>
      <c>N * 64 bytes</c>
      <c>Required for computation</c>
      <c>Merkle tree</c>
      <c>2 * N * 32 bytes</c>
      <c>Required for root updates</c>
      <c>Root chain</c>
      <c>(K + 1) * 32 bytes</c>
      <c>Sequential; <bcp14>MAY</bcp14> be streamed to disk</c>
</texttable>

<t>The root chain is written sequentially during pass 1 and read
sequentially during pass 2. Implementations <bcp14>MAY</bcp14> stream the root
chain to persistent storage to reduce peak RAM by K * 32 bytes,
at the cost of additional I/O.</t>

<t>Peak RAM by profile (with root chain streaming):</t>

<texttable>
      <ttcol align='left'>Profile</ttcol>
      <ttcol align='left'>Arena + Merkle</ttcol>
      <ttcol align='left'>Root chain (disk)</ttcol>
      <ttcol align='left'>Peak RAM</ttcol>
      <c>Minimal</c>
      <c>64 MiB</c>
      <c>64 MiB</c>
      <c>~64 MiB</c>
      <c>Standard</c>
      <c>128 MiB</c>
      <c>128 MiB</c>
      <c>~128 MiB</c>
      <c>Enhanced</c>
      <c>512 MiB</c>
      <c>512 MiB</c>
      <c>~512 MiB</c>
      <c>Maximum</c>
      <c>4 GiB</c>
      <c>4 GiB</c>
      <c>~4 GiB</c>
</texttable>

</section>
</section>
<section anchor="param-validation"><name>Parameter Validation</name>

<t>Verifiers <bcp14>MUST</bcp14> reject proofs with parameters below these minimums:</t>

<texttable>
      <ttcol align='left'>Parameter</ttcol>
      <ttcol align='left'>Minimum</ttcol>
      <ttcol align='left'>Rationale</ttcol>
      <c>N</c>
      <c>2^18</c>
      <c>Below this, arena is too small for meaningful pointer-chase depth</c>
      <c>K</c>
      <c>N</c>
      <c>Below N, most blocks are never written; TMTO is trivial</c>
      <c>K/N (rho)</c>
      <c>4</c>
      <c>Below this, TMTO penalty &lt; 5x at alpha=0.5</c>
      <c>d</c>
      <c>4</c>
      <c>Below this, causal fan-out is insufficient</c>
      <c>Q</c>
      <c>64</c>
      <c>Below this, detection probability &lt; 2^{-64}</c>
      <c>R</c>
      <c>2</c>
      <c>Below this, causal verification is shallow</c>
</texttable>

</section>
<section anchor="performance"><name>Performance Estimates</name>

<t>The following properties are machine-independent:</t>

<texttable>
      <ttcol align='left'>Property</ttcol>
      <ttcol align='left'>Standard</ttcol>
      <ttcol align='left'>Maximum</ttcol>
      <c>TMTO penalty (alpha=0.1)</c>
      <c>65x</c>
      <c>65x</c>
      <c>ASIC resistance mechanism</c>
      <c>Physics-Bound Floor</c>
      <c>Physics-Bound Floor</c>
      <c>Proof size</c>
      <c>~3.9 MiB</c>
      <c>~64 MiB</c>
</texttable>

<t>Reference timings (Apple M-series, DDR5; will vary by hardware):</t>

<texttable>
      <ttcol align='left'>Profile</ttcol>
      <ttcol align='left'>Per-step</ttcol>
      <ttcol align='left'>Wall time</ttcol>
      <ttcol align='left'>Prover peak RAM</ttcol>
      <c>Minimal (32 MiB)</c>
      <c>~1200 ns</c>
      <c>~3 seconds</c>
      <c>~64 MiB</c>
      <c>Standard (64 MiB)</c>
      <c>~1500 ns</c>
      <c>~6 seconds</c>
      <c>~128 MiB</c>
      <c>Enhanced (256 MiB)</c>
      <c>~2200 ns</c>
      <c>~37 seconds</c>
      <c>~512 MiB</c>
      <c>Maximum (2 GiB)</c>
      <c>~3200 ns</c>
      <c>~430 seconds</c>
      <c>~4 GiB</c>
</texttable>

<t>Verifier time is independent of profile (depends on Q, d, R, N):</t>

<texttable>
      <ttcol align='left'>Metric</ttcol>
      <ttcol align='left'>Desktop</ttcol>
      <ttcol align='left'>Enhanced/Maximum</ttcol>
      <c>Desktop</c>
      <c>~2 ms</c>
      <c>~6 ms</c>
      <c>Mobile</c>
      <c>20-100 ms</c>
      <c>60-300 ms</c>
</texttable>

<t>A reference benchmark with pre-compiled binaries is provided
as ancillary material (anc/README.md).</t>

</section>
</section>
<section anchor="side-channel"><name>Side-Channel and Platform Engineering Considerations</name>

<section anchor="access-disclosure"><name>Data-Dependent Access Pattern Disclosure</name>

<t>PoSME features a data-dependent memory access pattern: at each
step, the addresses read from the arena are determined by the
values previously read (pointer-chasing). This architecture
inherently leaks the access execution history via multiple
observable channels:</t>

<t><list style="symbols">
  <t><strong>Timing side-channels:</strong> The sequence of memory access
latencies (including cache hits, bank conflicts, and DRAM
refresh collisions) reveals the addresses accessed.</t>
  <t><strong>Cache-state monitoring:</strong> An adversary sharing a physical
CPU (e.g., a co-located process on a multi-tenant cloud
server) can observe L1/L2/L3 cache eviction patterns via
Flush+Reload, Prime+Probe, or similar attacks to reconstruct
the Prover's access sequence.</t>
  <t><strong>Electromagnetic and power analysis:</strong> The physical memory
bus activity pattern is correlated with the data-dependent
address sequence.</t>
</list></t>

<t>These channels are fundamental to PoSME's design; they cannot
be eliminated without abandoning the pointer-chasing
construction that provides the sequential latency guarantee.</t>

</section>
<section anchor="security-boundary"><name>Security Boundary Framework</name>

<t>Under PoSME's targeted threat model (<xref target="threat-model"/>), the
data-dependent access leakage does NOT constitute a
vulnerability. The executing local user (the Prover) is
actively attempting to prove their own sequential process to
an external Verifier. The Prover is not attempting to conceal
a static secret cryptographic root-key from a co-located
malicious tenant.</t>

<t>The proof itself discloses read addresses and Merkle paths for
the Q challenged steps (<xref target="proof-gen"/>). A side-channel
adversary co-located on the same physical CPU could observe the
complete K-step access trace, which is strictly more
information than the Q-step subset in the proof. However, this
additional information does not compromise security under the
intended threat model: the seed is public, the arena contents
are deterministically derived from the seed and the execution
transcript, and the full access trace is a deterministic
function of these public values. An observer who knows the
seed and transcript can reconstruct the full trace without
side-channel access.</t>

<t>The threat model assumes the Prover controls the execution
environment. If the Prover's inputs contain no secret material
(which is the case for the provenance use case, where the seed
is public), then side-channel observation reveals no
information beyond what is already publicly derivable.</t>

</section>
<section anchor="deployment-restriction"><name>Deployment Restriction</name>

<t><strong>WARNING:</strong> If PoSME is deployed outside of its intended
provenance and proof-of-process boundaries, the data-dependent
memory access pattern creates exploitable side-channels.
Specifically:</t>

<t>Implementations <bcp14>MUST NOT</bcp14> use PoSME to process, derive, wrap,
or protect high-value long-term secret cryptographic keys.</t>

<t>Implementations <bcp14>MUST NOT</bcp14> deploy PoSME as a key derivation
function, password hash, or any construction where the input
to the arena initialization or step function contains secret
material that must be protected from co-located observers.</t>

<t>If PoSME is executed within a multi-tenant virtualization
layer, shared cloud instance, or any environment where an
adversary may share physical CPU or memory resources with the
Prover, the Prover <bcp14>MUST</bcp14> assume that the full memory access
trace is observable by the adversary. In such environments,
PoSME <bcp14>MUST NOT</bcp14> be used to process secret inputs.</t>

</section>
</section>
<section anchor="security-considerations"><name>Security Considerations</name>

<section anchor="work-vs-time"><name>Work vs. Time</name>

<t>PoSME proves sequential memory execution, not elapsed time. An
adversary with faster memory (lower latency) completes the same
computation in less wall-clock time. The ASIC advantage is bounded
by the ratio of the adversary's memory latency to the honest
Prover's (see <xref target="asic-resistance"/>), but is nonzero. Applications
requiring temporal guarantees <bcp14>MUST</bcp14> combine PoSME with an external
time-binding mechanism such as hardware-attested timestamps.
Note that no universal composability (UC) proof is provided for
PoSME (see <xref target="assumptions"/>); the security of any such combination
requires a dedicated composition analysis and cannot be inferred
from the standalone properties proven in this document.</t>

<t>Hardware-independent time-binding is impossible:
deterministic computation produces identical output regardless of
hardware speed, and self-reported timing is forgeable.</t>

</section>
<section anchor="seed-requirements"><name>Seed Requirements</name>

<t>The seed <bcp14>MUST</bcp14> be externally fixed or derived from an unpredictable
source. A Prover-controlled seed enables grinding for favorable
arena initializations with reduced effective working sets.</t>

</section>
<section anchor="verify-complexity"><name>Verification Complexity</name>

<t>We conjecture that O(1) verification under hash-only assumptions
is not achievable for sequential pointer-chasing computations
of the type PoSME specifies. The verification complexity in this
document is O(Q * d^R * log N). O(log^2 K) verification is
believed achievable via FRI/STARK-based commitment (requiring
field arithmetic but no trusted setup) and is left as a future
optimization. A formal impossibility proof for constant-size
hash-only verification of PoSME remains open.</t>

</section>
<section anchor="verifier-limits"><name>Verifier Resource Limits</name>

<t>Verifiers <bcp14>SHOULD</bcp14> implement rate limiting and <bcp14>MUST</bcp14> reject proofs
with parameters exceeding configured thresholds before allocating
resources for verification.</t>

</section>
<section anchor="open-problems"><name>Open Problems</name>

<t>The following problems remain open:</t>

<t><list style="numbers" type="1">
  <t><strong>Machine-checked proofs.</strong> The TMTO bounds in Theorems 3-5
rely on pen-and-paper arguments. A machine-checked formalization
(e.g., in Lean or Coq) of the spatial cascade lower bound and
the checkpoint dominance result would strengthen confidence
in the security claims.</t>
  <t><strong>Optimal eviction policy.</strong> Theorem 5 establishes that
partial-arena checkpoints are dominated by full-arena
checkpoints. However, the adversary's optimal online eviction
policy (which blocks to retain in working memory during
sequential execution) has not been formally characterized.
The analysis in Theorem 3 assumes independent miss
probabilities; correlated access patterns or adaptive eviction
may yield tighter or looser bounds.</t>
  <t><strong>Succinct verification.</strong> Verification complexity remains
$O(Q \cdot d^R \cdot \log N)$. Reducing this to
$O(\log^2 K)$ via FRI/STARK-based commitment (requiring
field arithmetic but no trusted setup) is left as future work.</t>
  <t><strong>Host-as-critical-path for small arenas.</strong> ASIC resistance
at cache-resident arena sizes (where the arena fits within
on-die SRAM) requires mechanisms where the host's computation
gates the next prover step rather than supplying ancillary
entropy. This is deferred to future work.</t>
  <t><strong>Spatial entanglement width.</strong> The current construction uses
2 spatial neighbors (w-1, w+1). Wider entanglement (e.g.,
w-2, w-1, w+1, w+2) would increase the cascade branching
factor and tighten the TMTO bound, at the cost of additional
hash evaluations per step. The optimal neighbor count has not
been analyzed.</t>
  <t><strong>Composability.</strong> PoSME is analyzed as a standalone primitive.
No universal composability (UC) framework or simulation-based
proof is provided. A UC-secure formulation would enable
modular composition with timestamping, consensus, or
authentication protocols without requiring per-application
composition arguments.</t>
  <t><strong>Tighter soundness reduction.</strong> The factor-$K$ reduction loss
in Theorem 1 arises from a union-bound guess of the divergence
step. A tighter reduction (e.g., $O(\log K)$ via binary search
or $O(1)$ via rewinding) would improve the concrete security
margin for large $K$.</t>
</list></t>

</section>
</section>
<section anchor="implementation"><name>Implementation Considerations</name>

<section anchor="impl-bank"><name>Bank Mapping and Conflicts</name>

<t>The effectiveness of intra-step bank collisions (<xref target="bank-collision"/>) 
depends on the accuracy of the <spanx style="verb">force_bank_mapping</spanx> logic. Memory 
controllers typically use specific physical address bits for bank 
selection (e.g., bits 13-16 on many DDR4/DDR5 platforms).</t>

<t>Prover implementations <bcp14>SHOULD</bcp14> use platform-specific knowledge or 
calibration loops to identify these bits. If the exact mapping is 
unknown, the Prover <bcp14>MAY</bcp14> use a XOR-sum of multiple candidate bit 
ranges to increase the probability of a physical bank conflict. 
Verifiers do not check physical mapping accuracy; they only check
the logical consistency of the derived addresses according to the
protocol parameters.</t>

</section>
<section anchor="impl-timing"><name>Timing Counters</name>

<t>Provers <bcp14>MUST</bcp14> use the highest-resolution monotonic hardware counter 
available to capture <spanx style="verb">delta_t</spanx>.</t>

<t><list style="symbols">
  <t><strong>x86_64:</strong> The <spanx style="verb">RDTSC</spanx> or <spanx style="verb">RDTSCP</spanx> instructions.</t>
  <t><strong>AArch64:</strong> The <spanx style="verb">CNTPCT_EL0</spanx> system register.</t>
</list></t>

<t>The resulting <spanx style="verb">delta_t</spanx> <bcp14>SHOULD NOT</bcp14> be normalized or filtered. Raw 
cycle counts are required to preserve the stochastic jitter profile 
arising from DRAM refresh cycles ($t_{REFW}$) and OS-level noise.</t>

</section>
<section anchor="impl-cache"><name>Cache Management</name>

<t>To ensure the arena computation is bottlenecked by DRAM latency 
rather than CPU cache hits, the arena size $N$ <bcp14>SHOULD</bcp14> be configured 
to exceed the Prover's L3 cache capacity. For Standard and Maximum 
profiles, the arena sizes (32 MiB to 2 GiB) are specifically chosen 
to exceed the 16-96 MiB caches typical of commodity processors.</t>

<t>Provers <bcp14>MAY</bcp14> use cache-bypass instructions (e.g., <spanx style="verb">MOVNTI</spanx> on x86) 
for arena writes to further enforce DRAM-bounded execution.</t>

</section>
</section>
<section anchor="iana-considerations"><name>IANA Considerations</name>

<t>This document has no IANA actions.</t>

</section>


  </middle>

  <back>


<references title='References' anchor="sec-combined-references">

    <references title='Normative References' anchor="sec-normative-references">



<reference anchor="RFC8610">
  <front>
    <title>Concise Data Definition Language (CDDL): A Notational Convention to Express Concise Binary Object Representation (CBOR) and JSON Data Structures</title>
    <author fullname="H. Birkholz" initials="H." surname="Birkholz"/>
    <author fullname="C. Vigano" initials="C." surname="Vigano"/>
    <author fullname="C. Bormann" initials="C." surname="Bormann"/>
    <date month="June" year="2019"/>
    <abstract>
      <t>This document proposes a notational convention to express Concise Binary Object Representation (CBOR) data structures (RFC 7049). Its main goal is to provide an easy and unambiguous way to express structures for protocol messages and data formats that use CBOR or JSON.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="8610"/>
  <seriesInfo name="DOI" value="10.17487/RFC8610"/>
</reference>
<reference anchor="RFC8949">
  <front>
    <title>Concise Binary Object Representation (CBOR)</title>
    <author fullname="C. Bormann" initials="C." surname="Bormann"/>
    <author fullname="P. Hoffman" initials="P." surname="Hoffman"/>
    <date month="December" year="2020"/>
    <abstract>
      <t>The Concise Binary Object Representation (CBOR) is a data format whose design goals include the possibility of extremely small code size, fairly small message size, and extensibility without the need for version negotiation. These design goals make it different from earlier binary serializations such as ASN.1 and MessagePack.</t>
      <t>This document obsoletes RFC 7049, providing editorial improvements, new details, and errata fixes while keeping full compatibility with the interchange format of RFC 7049. It does not create a new version of the format.</t>
    </abstract>
  </front>
  <seriesInfo name="STD" value="94"/>
  <seriesInfo name="RFC" value="8949"/>
  <seriesInfo name="DOI" value="10.17487/RFC8949"/>
</reference>
<reference anchor="RFC2119">
  <front>
    <title>Key words for use in RFCs to Indicate Requirement Levels</title>
    <author fullname="S. Bradner" initials="S." surname="Bradner"/>
    <date month="March" year="1997"/>
    <abstract>
      <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
    </abstract>
  </front>
  <seriesInfo name="BCP" value="14"/>
  <seriesInfo name="RFC" value="2119"/>
  <seriesInfo name="DOI" value="10.17487/RFC2119"/>
</reference>
<reference anchor="RFC8174">
  <front>
    <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
    <author fullname="B. Leiba" initials="B." surname="Leiba"/>
    <date month="May" year="2017"/>
    <abstract>
      <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
    </abstract>
  </front>
  <seriesInfo name="BCP" value="14"/>
  <seriesInfo name="RFC" value="8174"/>
  <seriesInfo name="DOI" value="10.17487/RFC8174"/>
</reference>
<reference anchor="RFC8017">
  <front>
    <title>PKCS #1: RSA Cryptography Specifications Version 2.2</title>
    <author fullname="K. Moriarty" initials="K." role="editor" surname="Moriarty"/>
    <author fullname="B. Kaliski" initials="B." surname="Kaliski"/>
    <author fullname="J. Jonsson" initials="J." surname="Jonsson"/>
    <author fullname="A. Rusch" initials="A." surname="Rusch"/>
    <date month="November" year="2016"/>
    <abstract>
      <t>This document provides recommendations for the implementation of public-key cryptography based on the RSA algorithm, covering cryptographic primitives, encryption schemes, signature schemes with appendix, and ASN.1 syntax for representing keys and for identifying the schemes.</t>
      <t>This document represents a republication of PKCS #1 v2.2 from RSA Laboratories' Public-Key Cryptography Standards (PKCS) series. By publishing this RFC, change control is transferred to the IETF.</t>
      <t>This document also obsoletes RFC 3447.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="8017"/>
  <seriesInfo name="DOI" value="10.17487/RFC8017"/>
</reference>



    </references>

    <references title='Informative References' anchor="sec-informative-references">



<reference anchor="RFC9106">
  <front>
    <title>Argon2 Memory-Hard Function for Password Hashing and Proof-of-Work Applications</title>
    <author fullname="A. Biryukov" initials="A." surname="Biryukov"/>
    <author fullname="D. Dinu" initials="D." surname="Dinu"/>
    <author fullname="D. Khovratovich" initials="D." surname="Khovratovich"/>
    <author fullname="S. Josefsson" initials="S." surname="Josefsson"/>
    <date month="September" year="2021"/>
    <abstract>
      <t>This document describes the Argon2 memory-hard function for password hashing and proof-of-work applications. We provide an implementer-oriented description with test vectors. The purpose is to simplify adoption of Argon2 for Internet protocols. This document is a product of the Crypto Forum Research Group (CFRG) in the IRTF.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="9106"/>
  <seriesInfo name="DOI" value="10.17487/RFC9106"/>
</reference>
<reference anchor="RFC7914">
  <front>
    <title>The scrypt Password-Based Key Derivation Function</title>
    <author fullname="C. Percival" initials="C." surname="Percival"/>
    <author fullname="S. Josefsson" initials="S." surname="Josefsson"/>
    <date month="August" year="2016"/>
    <abstract>
      <t>This document specifies the password-based key derivation function scrypt. The function derives one or more secret keys from a secret string. It is based on memory-hard functions, which offer added protection against attacks using custom hardware. The document also provides an ASN.1 schema.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="7914"/>
  <seriesInfo name="DOI" value="10.17487/RFC7914"/>
</reference>
<reference anchor="RFC6962">
  <front>
    <title>Certificate Transparency</title>
    <author fullname="B. Laurie" initials="B." surname="Laurie"/>
    <author fullname="A. Langley" initials="A." surname="Langley"/>
    <author fullname="E. Kasper" initials="E." surname="Kasper"/>
    <date month="June" year="2013"/>
    <abstract>
      <t>This document describes an experimental protocol for publicly logging the existence of Transport Layer Security (TLS) certificates as they are issued or observed, in a manner that allows anyone to audit certificate authority (CA) activity and notice the issuance of suspect certificates as well as to audit the certificate logs themselves. The intent is that eventually clients would refuse to honor certificates that do not appear in a log, effectively forcing CAs to add all issued certificates to the logs.</t>
      <t>Logs are network services that implement the protocol operations for submissions and queries that are defined in this document.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="6962"/>
  <seriesInfo name="DOI" value="10.17487/RFC6962"/>
</reference>

<reference anchor="C2PA" target="https://c2pa.org/specifications/specifications/2.1/specs/C2PA_Specification.html">
  <front>
    <title>C2PA Technical Specification v2.1</title>
    <author >
      <organization>Coalition for Content Provenance and Authenticity</organization>
    </author>
    <date year="2024"/>
  </front>
</reference>
<reference anchor="Boneh2018" target="https://doi.org/10.1007/978-3-319-96884-1_25">
  <front>
    <title>Verifiable Delay Functions</title>
    <author initials="D." surname="Boneh" fullname="Dan Boneh">
      <organization></organization>
    </author>
    <author initials="J." surname="Bonneau" fullname="Joseph Bonneau">
      <organization></organization>
    </author>
    <author initials="B." surname="Bunz" fullname="Benedikt Bunz">
      <organization></organization>
    </author>
    <author initials="B." surname="Fisch" fullname="Ben Fisch">
      <organization></organization>
    </author>
    <date year="2018"/>
  </front>
  <seriesInfo name="CRYPTO" value="2018"/>
</reference>
<reference anchor="Biryukov2016" target="https://doi.org/10.1109/EuroSP.2016.31">
  <front>
    <title>Argon2: New Generation of Memory-Hard Functions for Password Hashing and Other Applications</title>
    <author initials="A." surname="Biryukov" fullname="Alex Biryukov">
      <organization></organization>
    </author>
    <author initials="D." surname="Dinu" fullname="Daniel Dinu">
      <organization></organization>
    </author>
    <author initials="D." surname="Khovratovich" fullname="Dmitry Khovratovich">
      <organization></organization>
    </author>
    <date year="2016"/>
  </front>
  <seriesInfo name="IEEE EuroS&amp;P" value="pp. 292-302"/>
</reference>
<reference anchor="CohenPietrzak2018" target="https://doi.org/10.1007/978-3-319-78375-8_15">
  <front>
    <title>Simple Proofs of Sequential Work</title>
    <author initials="B." surname="Cohen" fullname="Bram Cohen">
      <organization></organization>
    </author>
    <author initials="K." surname="Pietrzak" fullname="Krzysztof Pietrzak">
      <organization></organization>
    </author>
    <date year="2018"/>
  </front>
  <seriesInfo name="EUROCRYPT 2018, LNCS" value="10821, pp. 451-467"/>
</reference>
<reference anchor="AlwenBlockPietrzak2017" target="https://doi.org/10.1007/978-3-319-56617-7_1">
  <front>
    <title>Depth-Robust Graphs and Their Cumulative Memory Complexity</title>
    <author initials="J." surname="Alwen" fullname="Joel Alwen">
      <organization></organization>
    </author>
    <author initials="J." surname="Blocki" fullname="Jeremiah Blocki">
      <organization></organization>
    </author>
    <author initials="K." surname="Pietrzak" fullname="Krzysztof Pietrzak">
      <organization></organization>
    </author>
    <date year="2017"/>
  </front>
  <seriesInfo name="EUROCRYPT 2017, LNCS" value="10212, pp. 3-32"/>
</reference>
<reference anchor="RenDevadas2017" target="https://doi.org/10.1007/978-3-319-70500-2_16">
  <front>
    <title>Bandwidth Hard Functions for ASIC Resistance</title>
    <author initials="L." surname="Ren" fullname="Ling Ren">
      <organization></organization>
    </author>
    <author initials="S." surname="Devadas" fullname="Srinivas Devadas">
      <organization></organization>
    </author>
    <date year="2017"/>
  </front>
  <seriesInfo name="TCC 2017, LNCS" value="10677, pp. 466-492"/>
</reference>
<reference anchor="JESD79-5" target="https://www.jedec.org/standards-documents/docs/jesd79-5d">
  <front>
    <title>DDR5 SDRAM Standard</title>
    <author >
      <organization>JEDEC Solid State Technology Association</organization>
    </author>
    <date year="2020"/>
  </front>
  <seriesInfo name="JEDEC" value="JESD79-5D"/>
</reference>
<reference anchor="JESD238" target="https://www.jedec.org/standards-documents/docs/jesd238b01">
  <front>
    <title>High Bandwidth Memory (HBM3) DRAM</title>
    <author >
      <organization>JEDEC Solid State Technology Association</organization>
    </author>
    <date year="2022"/>
  </front>
  <seriesInfo name="JEDEC" value="JESD238B01"/>
</reference>
<reference anchor="Boneh2016" target="https://doi.org/10.1007/978-3-662-53887-6_8">
  <front>
    <title>Balloon Hashing: A Memory-Hard Function Providing Provable Protection Against Sequential Attacks</title>
    <author initials="D." surname="Boneh" fullname="Dan Boneh">
      <organization></organization>
    </author>
    <author initials="H." surname="Corrigan-Gibbs" fullname="Henry Corrigan-Gibbs">
      <organization></organization>
    </author>
    <author initials="S." surname="Schechter" fullname="Stuart Schechter">
      <organization></organization>
    </author>
    <date year="2016"/>
  </front>
  <seriesInfo name="ASIACRYPT" value="2016"/>
</reference>
<reference anchor="Chia2024" target="https://docs.chia.net/green-paper-abstract">
  <front>
    <title>The Chia Network Green Paper</title>
    <author >
      <organization>Chia Network</organization>
    </author>
    <date year="2024"/>
  </front>
</reference>
<reference anchor="Spacemesh2023" target="https://github.com/spacemeshos/protocol">
  <front>
    <title>The Spacemesh Protocol</title>
    <author >
      <organization>Spacemesh Team</organization>
    </author>
    <date year="2023"/>
  </front>
</reference>
<reference anchor="Wesolowski2019" target="https://doi.org/10.1007/978-3-030-17659-4_13">
  <front>
    <title>Efficient Verifiable Delay Functions</title>
    <author initials="B." surname="Wesolowski" fullname="Benjamin Wesolowski">
      <organization></organization>
    </author>
    <date year="2019"/>
  </front>
  <seriesInfo name="EUROCRYPT" value="2019"/>
</reference>


    </references>

</references>


<?line 1831?>

<section numbered="false" anchor="acknowledgements"><name>Acknowledgements</name>

<t>The author thanks the authors of Argon2 and scrypt for the
design principles that informed PoSME's memory-hard
foundations. Thanks to participants in the CFRG for
constructive review feedback on earlier versions of this
document.</t>

</section>
<section numbered="false" anchor="changes-from-cfrg" removeInRFC="true"><name>Changes from draft-condrey-cfrg-posme-02</name>

<t>This document replaces draft-condrey-cfrg-posme, resetting the
version counter to -00 under the Independent Submission Stream.</t>

<t><list style="symbols">
  <t>Migrated from IRTF (CFRG) to Independent Submission Stream;
changed submissiontype to "independent" and category to
"Experimental".</t>
  <t>Added Applicability Statement scoping PoSME as a specialized
hardware-discriminator for content provenance, not a
general-purpose PHF or KDF.</t>
  <t>Corrected scrypt hardware characterization: sequential
Salsa20/8 latency, not external bandwidth, is the primary
bottleneck on commodity architectures.</t>
  <t>Added ASIC SRAM-packing vulnerability analysis with
mathematical mitigation rationale for arena sizing.</t>
  <t>Formalized "bad locality" requirement: addressing function
<bcp14>MUST</bcp14> behave as a pseudo-random permutation defeating hardware
prefetch and caching.</t>
  <t>Added explicit OS2IP / endianness type conversion declarations
for octet-string-to-integer index derivation.</t>
  <t>Added top-level Side-Channel and Platform Engineering
Considerations section with data-dependent access disclosure,
threat model boundary, and implementer warning.</t>
  <t>Defined formal Standard Parameter Profiles table from 32 MiB
(Minimal) to 2 GiB (Maximum).</t>
  <t>Corrected CPU Jitter entropy baseline: ~1/3 bits per time
delta at OSR=3 (not 1 bit flat).</t>
  <t>Added embedded microcontroller entropy degradation warning.</t>
  <t>Audited all RFC 2119/8174 modal verbs for correctness.</t>
</list></t>

<section numbered="false" anchor="prior-changes" removeInRFC="true"><name>Prior history (draft-condrey-cfrg-posme)</name>

<section numbered="false" anchor="changes-from-00-to-02"><name>Changes from -00 to -02</name>

<t><list style="symbols">
  <t>Removed Compact profile pending further analysis of cache-resident-arena security.</t>
  <t>Removed Jitter Entanglement section pending further analysis of host-as-critical-path constructions.</t>
  <t>Promoted Address Uniformity from conjecture to Theorem 2, with full ROM proof.</t>
  <t>Widened XOF output from 4 bytes to 8 bytes to eliminate modular bias for non-power-of-2 N.</t>
  <t>Replaced hand-wavy "Trophic Cascade" TMTO claims with rigorous cascade-width analysis (Theorem 3), proving per-miss cost of Theta(rho/alpha).</t>
  <t>Added Theorem 4 (Sequential Cascade Latency): spatial cascade adds to critical path.</t>
  <t>Added Theorem 5 (Checkpoint Dominance): partial-arena checkpoints strictly suboptimal under spatial entanglement.</t>
  <t>Replaced misleading alpha=0 TMTO table with honest comparison across meaningful alpha values.</t>
  <t>Tightened ASIC resistance framing to a single physics-bounded latency floor.</t>
  <t>Reconciled Related Work against arena initialization.</t>
  <t>Rewrote Open Problems to reflect resolved and remaining items.</t>
</list></t>

</section>
</section>
</section>


  </back>

<!-- ##markdown-source:
H4sIAAAAAAAAA92963oTWdIu+H9dxdqgmZIopbBkMGCa/sYYKGjAULar6+un
qIa0lLazkJTqzJSN27iuZa5lrmzijYh1yJRs6Nmz58fU011lSZnrECtWnA9J
kpizbbtpJsV4ns6ybTsp0+M6GRfzSZldJIuimmXJxoap83pKv956XxbFsaX/
HWT/WmbzOk+n9m02K8oL+/xLNl7WeTG33ffFwdvnvVsmPToqMxqfP5txWmcn
9OS2zb4sTL4ot21dLqt6tLHxaGNkquXRLK8qGqC+WNBc+XySLTL617w2n7OL
86KcbBtrEzvj+ZLTtJzw5yosJXNr4B/G6bKiL0/T6pQ/T2kB8/FFclQs5/Lq
zsGrXVtmVV7V6XycGYP/Tj6m02JOK7jIKrPIMWldjOUj/0nrqk8JGPdu0eeq
KOsyO67c79XFLHw06bI+LUpZ9/FyOhUgP0vP8ondFSDTb5Y2m2MD9NqzAX9R
LUt5Nn6qKE/Sef7vFDvctr+WeZ2V1ZviJB/bV/MxP+JAHv/IP4zzmiB/kM7t
s5yOgb8rsxMeaTed5sdFOc9TeZTgU+OcfqFVZRN7UBPgKv4pm6X5lLAEG/g/
zmWOKeYYjIuZMfOinNHqzjLseP/F7sOt4Yb789G9R9vG5PPj1jOPhhtb+ueD
R8N7+ufWo60R/twdvd/Z5qkdCuIbe5iNT+f5mE73YJGN82P6k1HvbDQY3pLH
0/Ikq+n507peVNt3745Hi3RAELxbxW9U7Y80AH9V3cVEHxvDD07r2VSGDweL
fxIcDc6KAMnroE3i5Ajfakt35iybA78sIZfdoTeBrjgQfn1C0N22o43RPfr4
lDDvdLQxfNjc9N+zklaRHk0z+yybphf2xXI+5gVfs9tJkfNmhxuD4cbGg7uP
HjxMNpPN4aPk0dbDh/eS4cfR/fU7idF0LuvR39agaQNV42fjcf5WVNniFD/P
s3S5ZrC/rR8sejoe7mk2zyb559o+Xc7/vWa0p+tGC4+2hrIv8mq8bofrhgnP
ukMbPpTrSudDZISQ2wFyd/8f7w/f0YngGUD6aV5eLD8XZ/R5q3m4O+VJMR9t
273s3P5EmysFl4nKCmlNXhKpCyfOyPU+rSqQRPuSqFs+P2HUekeYVdqdxWLq
0Pk7sGO48eju82VZHLwfYGmDzeG38GJnmn3x21kDuZ11B9B8vIVmeTYlsjRf
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
CVswShKXVbY+OkoXTLdrOedawIibRDMIE7lnXdV67QsUDQMu0DaMV2oMdN6Z
0sf6ET0KoX0pW+BHG6P7PSdMQh4yN1J7aRIQsV0+GjUlN43uPV8fAFmCrkbR
GtNyjpImVZbZy8tGOMGVrIuAHJWNlShnj0Rs9P9ORJLjjqqDEKmS4pGSqRWI
8FtBiafLCeyil7cFRZIj/uyMfDwGG7WJVrmQYpLKpHGMlFPjRmmQLSvuRrjr
PjrpmehgUQutaBErRxu5a5cjxqCOimnSqjuK5uCbKd2Ga0yNa0mv7sVJH+33
o97jQq+ifsdfbfc1J2S0Bgg24cf27c4/2DRNExIf4RLOk7z67K5s1Hwp9xW0
bKPEtrYZQ0wDMWhJ/kxbZbjjZ0YrN4wXISsQLzZNanwL0QXqXlW1VMeSJFSO
Tea09oXjMiTVN5Jj+q6vlovRiVj1q7vv4JmLXvVoLy2zw6ZlVchw324yPznc
H915NeDeBQR7DR64VrkK3CwwKveH511NFhS4S/grsJwmBwmsIfwV+EWDC9zz
5F/+6yi+6MteNvl7Os0nXllmiebMf0WXyvW0qaQEdZn9wYI0K2xaVyfoKuwj
Fo+jZE4uZ3LFwnwKIl7ivrpAV0QGI5IICQQPfawz3DV9JXLcUKWwUoCmVfi6
WQBa9HsM+FrFGxltry/B+C77t0Q4PKiP3ofHIuHkXBLoLOcml19Ziu9yyqiw
1Xhl/LyTbP+CUi+IQwu1Zej1yZrXNGPwOJ3DQCtsM6J+eO1nJ4zE7yEHZuyY
nq9r9BcuH7V170rohgowa+Zb6fUNmwI9pOghlRKYtTzXzuSVFP5236+kAET6
J6A54wpq8Kx6hcddNzyGqPjoDni0XcGDBlibAqeILltaQafNEkO7QJpUk6yk
A4I0KLjmW1mi2m9wbWAgad9fs+/af/vsnS7UTmK6kDRzCOhwNj6mG0IYegbN
BUWMNLuiTXh8a1hEpqOSCtI8vjp+uPg+iuMlL6YeGxsSJ//nppX+8NV1BEgD
weW9+/69rfi9tdQohIGju30044P41XXEyUkieDi8d29zI37RkyvfVUuyX1bM
DZ7QR0aLn7mJ6D7KAzOs30rhOvQbFqEk7OPu9bgXHv5zZGcKlpnw5LfFkRze
aCMZIt6JsxI2kk39G1GXvkk8Ecb5+BQ9qlwpsgx+u0WOFB7uApVLmUXXhclw
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

-->

</rfc>

