SSM-Clock Stamp – Time Semantics & Anchors (1.6)

Goal. Explain how time is represented in an SSM-Clock Stamp, and how daily anchors bind a stamped set to public time—without changing any past stamps.


Declarative time in the stamp (what it means)

  • The timestamp in the line is chosen by the stamper: iso_utc = "YYYY-MM-DDThh:mm:ssZ".
  • Angles are derived deterministically from that choice:
    theta_deg = wrap360( (unix_seconds(iso_utc) / 86400) * 360 )rasi_idx = floor(theta_deg / 30)
  • This yields a human-checkable clock state (angles/sectors), but it is not a trusted wall-clock oracle by itself.

Local order vs. public time (two layers)

  • Local, tamper-evident order:
    chain_k = H_chain( ascii(chain_{k-1} + "|" + stamp_core) ) with chain_0 = "0"*64
    This proves the ordering of records in a chain; any deletion/reordering breaks subsequent chain_k.
  • Public, no-later-than time: publish a daily roll-up of the day’s stamps:
    rollup_D = sha256( ascii(Stamp_1 "|" ... "|" Stamp_n) ) using canonical sort by (iso_utc, stamp_core, chain).
    The moment rollup_D is publicly witnessed (e.g., posted), the set gains a “no-later-than T_pub” bound.

Preferred wording (clarity in claims)

  • Use “no-later-than T” (or “not-after T”) when referring to anchors.
  • Avoid “not-before T” unless you additionally assert a lower bound (which the basic daily anchor does not provide).

Why anchors are additive (no mutation)

  • Anchors are computed from already-issued stamp lines and exported as a separate ASCII digest.
  • You can add anchors later, at any cadence (e.g., daily), without re-issuing or editing older stamps.

Stronger practice (optional, recommended)

  • Publish the same rollup_D to multiple independent channels (redundant witnesses).
  • Keep a small, signed text note that lists the exact day range and the repository/ledger reference where auditors can re-derive rollup_D.
  • For long chains, also keep per-day ledgers listing the exact stamp lines used in the roll-up (pure ASCII).

Acceptance (auditor checklist, anchors)

  1. Canonically sort the day’s stamps by (iso_utc, stamp_core, chain).
  2. Join as the literal ASCII string: "Stamp_1|...|Stamp_n" (single | between full lines; no leading/trailing |).
  3. Compute rollup_D' = sha256( ascii(joined) ).
  4. Pass if rollup_D' equals the published rollup_D. This yields a public no-later-than bound for that set.

Notes on scope

  • Anchors augment time claims; they do not alter file digests, angles, or chain math.
  • Faster anchor cadence (e.g., hourly) shrinks any potential backdating window:
    max_backdating_window_sec <= anchor_period_sec.

Navigation
Back: SSM-Clock Stamp – Canonical Formatting Rules (1.5)
Next: SSM-Clock Stamp – Observed-time Mode (1.7)