SSM-Clock Stamp – Anchor Verification (2.5)

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, date and count.
  • 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_utcYYYY-MM-DD.
  • Include all stamps whose iso_utc shares the target day.

Canonical ordering (deterministic)
Sort included stamps by the tuple:

  1. iso_utc (ascending, string compare on YYYY-MM-DDThh:mm:ssZ)
  2. stamp_core ascending, where
    stamp_core = "SSMCLOCK1|" + iso_utc + "|" + rasi_idx + "|" + theta_deg + "|" + sha256(file)
  3. 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_sha256 from the anchor note.
  • If the note provides count, also require n == count.

Empty set rule

  • If n = 0, define rollup_D' = sha256( ascii("") ) and count = 0.

Outcome

  • ANCHOR_OK=true if digest (and optional count) match; else false with 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)