<?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-cfrg-posme-02" category="info" submissionType="IRTF" 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="09"/>

    <area>Security</area>
    <workgroup>Crypto Forum Research Group</workgroup>
    <keyword>memory-hard</keyword> <keyword>sequential execution</keyword> <keyword>causal hash</keyword> <keyword>latency-bound</keyword> <keyword>ASIC resistance</keyword>

    <abstract>


<?line 176?>

<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 196?>

<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
resist ASIC acceleration by requiring significant memory resources.
While scrypt was designed to be bounded by the latency of its core
functions, many MHFs are practically constrained by memory bandwidth
when comparing commodity hardware to specialized ASICs.</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="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"/> 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. BLAKE3 is MANDATED
to ensure post-quantum resistance in sequential chains.</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="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.</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>
<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^24, K=4*N=2^26:</t>

<texttable>
      <ttcol align='left'>Operation</ttcol>
      <ttcol align='left'>Count</ttcol>
      <c>Root chain verifications</c>
      <c>128 * 2 * 26 = ~6.7K hashes</c>
      <c>Arena Merkle verifications</c>
      <c>128 * 512 * 24 = ~1.6M hashes</c>
      <c>Cursor replays</c>
      <c>128 * 512 * 8 = ~524K hashes</c>
      <c>Total</c>
      <c>~2.1M 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="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> Any adversary producing
(T_K', C_roots', proof') with T_K' != T_K that passes VERIFY
has advantage at most K * epsilon_cr, where epsilon_cr is the
collision-finding advantage against H.</t>

<t><strong>Proof sketch.</strong> If verification passes with T_K' != T_K, there
exists a step c where T_{c-1}' = T_{c-1} but T_c' != T_c (the
first divergence). At step c, the Verifier checks that T_c =
H(T_{c-1} || c || cursor || root_c). If the adversary's
inputs differ from the honest inputs but produce the same T_c,
this is a collision in H. If the adversary's inputs differ and
produce a different T_c, then T_c' != T_c, contradicting
acceptance. The adversary has K steps at which to attempt this,
giving the union bound K * epsilon_cr.</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. 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="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-5ns access) could achieve a 10-45x advantage over
commodity DDR5. Wafer-scale integration, as demonstrated by the
Cerebras Wafer-Scale Engine, is the existence proof for this
threshold. 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>
<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 must 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>Three 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>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</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</c>
      <c>Maximum</c>
      <c>2^24</c>
      <c>1 GiB</c>
      <c>4</c>
      <c>4*N</c>
      <c>128</c>
      <c>3</c>
      <c>~2 GiB</c>
      <c>65x</c>
      <c>Consensus, mining</c>
</texttable>

<t>The Standard and Enhanced profiles exceed consumer L3 caches
(16-36 MiB as of 2024) and provide latency-bound ASIC resistance
via arena size and HBM latency bounds. The Maximum profile (1 GiB)
exceeds all current L3 caches and limits GPU throughput via the
capacity-bandwidth bound.</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>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>2 GiB</c>
      <c>2 GiB</c>
      <c>~2 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>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 (1 GiB)</c>
      <c>~2750 ns</c>
      <c>~185 seconds</c>
      <c>~2 GiB (disk)</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="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.</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>
</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 (64 MiB to 1 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="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="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 1395?>

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

<t>The author thanks the CFRG for foundational work on memory-hard
functions. The authors of Argon2 are acknowledged for the 
design principles that inspired PoSME's custom skip-link 
initialization.</t>

</section>
<section numbered="false" anchor="changes-from-00" removeInRFC="true"><name>Changes from -00</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>


  </back>

<!-- ##markdown-source:
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

-->

</rfc>

