Purpose. Validate a published daily roll-up (anchor) to obtain a public no-later-than bound for a set of SSM-Clock Stamp lines—without changing any stamps.
Inputs
- Anchor note containing
rollup_sha256(the published digest) and, ideally,dateandcount. - Stamp lines for that UTC day (from a ledger or sidecars).
Canonical selection (same-day set)
- Day key: for each stamp, derive the UTC day from
iso_utc→YYYY-MM-DD. - Include all stamps whose
iso_utcshares the target day.
Canonical ordering (deterministic)
Sort included stamps by the tuple:
iso_utc(ascending, string compare onYYYY-MM-DDThh:mm:ssZ)stamp_coreascending, wherestamp_core = "SSMCLOCK1|" + iso_utc + "|" + rasi_idx + "|" + theta_deg + "|" + sha256(file)chain(ascending)
Compute the anchor digest
- Join full stamp lines (after sorting) into a single ASCII string:
"Stamp_1|...|Stamp_n"(literal|, no leading/trailing separators) - Compute:
rollup_D' = sha256( ascii(joined) ) - Pass if
rollup_D' == rollup_sha256from the anchor note. - If the note provides
count, also requiren == count.
Empty set rule
- If
n = 0, definerollup_D' = sha256( ascii("") )andcount = 0.
Outcome
ANCHOR_OK=trueif digest (and optional count) match; elsefalsewith reason (digest mismatch,count mismatch).- The anchor’s publication time provides the public no-later-than bound for all included stamps.
Why this works
- Anchors are additive claims over already-immutable lines.
- Anyone can rebuild
rollup_D'from public rules; no keys, servers, or blockchain required.
Navigation
Back: SSM-Clock Stamp – Chain Continuity (2.4)
Next: SSM-Clock Stamp – Verdict Logic (2.6)