SSM-Clock Stamp – Verification Procedure (3.6)

Purpose. Let any observer verify a published daily anchor for a UTC day using only plain ASCII rules.

Inputs

  • Anchor note with date, rollup_sha256 (and optionally count).
  • All stamp lines for that UTC date (from ledger or sidecars).

Procedure (deterministic, copy-ready)

  1. Collect the set (same UTC day).
    Include every full line whose iso_utc yields the day key YYYY-MM-DD of the anchor date. Identity is the entire line as recorded:
    SSMCLOCK1|iso_utc|rasi_idx|theta_deg|sha256(file)|chain[|kv:...]
  2. Canonical ordering.
    Sort by the tuple (iso_utc, stamp_core, chain) where
    stamp_core = "SSMCLOCK1|" + iso_utc + "|" + rasi_idx + "|" + theta_deg + "|" + sha256(file)
  3. Literal join.
    Build the exact ASCII string "Stamp_1|...|Stamp_n" — literal | between full lines; no leading/trailing |.
  4. Compute roll-up.
    rollup_D' = sha256( ascii(Stamp_1 "|" ... "|" Stamp_n) )
    Output must be lowercase 64-hex.
  5. Compare to the note.
    Require rollup_D' == rollup_sha256.
    If the note includes count, also require n == count.

Verdict (anchor)

  • Valid anchor: digests match (and count, if provided). Treat the anchor’s publication time as the public no-later-than bound for all included stamps.
  • Invalid anchor: report digest mismatch or count mismatch; rebuild selection/order/join exactly per steps above.

Notes

  • If n = 0, the correct digest is sha256( ascii("") ).
  • Do not reformat inner fields (e.g., theta_deg digits, hex case). All comparisons are ASCII byte-wise.

Navigation
Back: SSM-Clock Stamp – Dual-source Parity (3.5)
Next: SSM-Clock Stamp – Failure Modes & Guidance (3.7)