Reset accumulators without losing truth or continuity
Purpose (in one line).
Long-running streams can reset (U,W) without breaking auditability: epochs are declared, stamps stay linear, and math remains deterministic.
Kernel reminder (context).
# alignment lane kernel
a_c := clamp(a_raw, -1+eps_a, +1-eps_a)
u := atanh(a_c)
U += w*u ; W += w
align := tanh( U / max(W, eps_w) )
Definitions.
- Scope. The continuity domain for stamps and digest replay (e.g., URL, stream id, topic, or device).
- Epoch. A declared boundary within a scope at which accumulators reset.
- epoch_id. Stable, human-readable token for the current epoch; monotonic within a scope.
Norms (MUST / SHOULD / MAY)
1) Declaration on the wire (MUST).
- When an epoch starts, stamp the first post-reset item and declare
epoch_idon that item and all subsequent items in the epoch.
2) Reset semantics (MUST).
# at epoch boundary
U := 0
W := 0
# kernel order remains: clamp -> atanh -> accumulate -> tanh
3) Manifest stability (MUST).
- Epoch creation MUST NOT change
eps_a,eps_w, orw. Any change → newmanifest_id.
4) Receiver parity (SHOULD).
# recompute per epoch independently
# expect continuity of stamps (truth), not of (U,W) values across the boundary
5) Epoch id monotonicity (SHOULD).
epoch_idstrictly increases (lexical or numeric) within a scope.
6) Gap handling (MAY).
- After outages/backfills, you may start a new epoch; the
prevchain must remain linear.
Serialization & discovery
Profile-level field (wire).
# include on every item of the epoch
SSMNET-Epoch: <epoch_id>
Checkpoint (optional).
/.well-known/ssmnet/checkpoint
# MAY expose: { HEAD: <hex>, epoch_id: <epoch_id> }
Evidence bundle (optional).
# example contents
epochs.txt # lists epoch_id, first index/time, last digest seen
Examples (illustrative)
Epoch rollover by size/time.
# last item of epoch_id=2025W44
... | sha256=<HEX_A>|prev=<HEX_Z> -> yields HEAD=<HEX_A>
# first item of epoch_id=2025W45
SSMNET-Epoch: 2025W45
prev=<HEX_A> # linear continuity across epochs
U := 0 ; W := 0 # math reset (documented by epoch declaration)
Operational rotation (daily epochs).
epoch_id := YYYYMMDD
# manifests unchanged; disclosure unchanged; stamps continue linearly
Prohibited behaviors
- MUST NOT silently reset
(U,W)without declaring a newepoch_id. - MUST NOT change
eps_a,eps_w, orwat an epoch boundary (that’s a policy change → rotatemanifest_id). - MUST NOT fork the
prevchain at an epoch boundary; continuity remains single-link linear.
Audit expectations
Auditors can:
1) Walk stamps across epochs (linear prev).
2) Verify per-epoch lane parity within tolerances:
- batch vs stream: ≤ 1e-6
- shard-merge: ≤ 1e-12
3) Confirm kernel parameters match the manifest before/after the boundary.
Minimal receiver algorithm (epoch-aware, L2/L3)
state:
HEAD := "NONE"
epoch_active := null
U := 0 ; W := 0
for each item e in order:
# 1) integrity & continuity
DIGEST := SHA256(serialize_declared_subset(e) [+ raw_body_bytes_if_declared])
require e.stamp.sha256 == DIGEST
require e.stamp.prev == HEAD or e.stamp.prev == "NONE" # genesis
HEAD := DIGEST
# 2) epoch handling
if e.epoch_id != epoch_active:
epoch_active := e.epoch_id
U := 0 ; W := 0
# 3) parity (when align is public)
if align_public(e.manifest_id):
a_c := clamp(a_raw, -1+eps_a, +1-eps_a)
u := atanh(a_c)
U += w*u ; W += w
align_local := tanh( U / max(W, eps_w) )
require e.band == cutpoint_map(align_local, e.manifest_id)
# 4) accept (or flag + append stamped incident on failure)
One-line takeaway for Section 2
“A small, deterministic lane + manifest-based bands + a declared subset + a one-line stamp = meaning that travels and can be replayed by anyone.”
Navigation
Previous: SSM-NET — Disclosure & Intermediaries (2F–2G)
Next: SSM-NET — Manifests: purpose, fields, rotation (3A–3C)