SSM-Clock Stamp – Dual-source Parity (3.5)

Purpose. Increase confidence by deriving the same daily anchor from two independent sources and expecting them to match exactly.

Two independent builds (should)

  • Ledger anchor — derive Stamp_i from a local append-only ledger, then re-sort canonically (not ledger order).
  • Sidecar anchor — discover Stamp_i by scanning sidecar locations and parsing the exact lines, then re-sort canonically.

Deterministic outputs (per source)

  • After canonical selection and ordering (see 3.1–3.2), compute the roll-up for each source:
    rollup_D_ledger = sha256( ascii(Stamp_1 "|" ... "|" Stamp_n) )
    rollup_D_sidecars = sha256( ascii(Stamp_1 "|" ... "|" Stamp_n) )
  • Also record counts: count_ledger, count_sidecars.
  • Expectation: rollup_D_ledger == rollup_D_sidecars and count_ledger == count_sidecars.

If they differ (investigate)
Common causes: missing sidecars, stale ledger export, accidental edits, or non-canonical sort/join. Use this quick checklist:

  1. Rebuild both sets strictly by UTC day key from iso_utcYYYY-MM-DD.
  2. Re-run canonical sort by (iso_utc, stamp_core, chain) where
    stamp_core = "SSMCLOCK1|" + iso_utc + "|" + rasi_idx + "|" + theta_deg + "|" + sha256(file).
  3. Re-join literally with a single | between full lines: "Stamp_1|...|Stamp_n" (no leading/trailing |).
  4. Re-hash: sha256( ascii(joined) ).
  5. Diff the sets (ASCII): compare line-by-line; list missing_in_ledger and missing_in_sidecars.
  6. Rewalk chain in the ledger (see 2.4) to detect deletions/reorders; ensure each differing line has a consistent chain history.

Outcome flag (optional reporting)

  • PARITY_OK=true if both digest and count match; otherwise false with the smallest witness diff (e.g., first missing line).

Why dual-source parity matters

  • It gives auditors two independent constructions of the same public claim.
  • When both yield identical rollup_D, confidence improves at negligible cost.

Navigation
Back: SSM-Clock Stamp – Anchor Publication (3.4)
Next: SSM-Clock Stamp – Verification Procedure (3.6)