Purpose. Optional, non-breaking practices to raise assurance around SSM-Clock Stamp without changing the base one-line format. Everything remains plain ASCII and verifiable offline.
(a) Policy pinning — freeze rules/tooling for the day
Publish fixed digests alongside anchors so auditors know exactly what code/policy produced stamps.
- Compute:
policy_sha256 = sha256( ascii(policy_text) )tool_sha256 = sha256(file_bytes_of_stamper)config_sha256 = sha256( ascii(config_blob) ) - Include these in your daily note (optional fields).
Benefit: reproducible math/format decisions tied to a day.
(b) Daily chain tip — compact ledger witness
Expose the end-of-day tip to detect later forks without revealing the ledger.
- Field:
witness_chain_tip = <64-hex>(the finalchain_kthat day)
Benefit: any rewrite diverges from the published tip.
(c) Optional signature — authorship / non-repudiation
Sign the exact stamp bytes (or the published anchor note).
- Sign:
sig = Ed25519_sign(privkey, ascii(SSMCLOCK1|...|chain[|kv:...])) - Verify:
Ed25519_verify(pubkey, ascii(SSMCLOCK1|...|chain[|kv:...]), sig)
Benefit: adds identity without touching core verification.
(d) Coarse public epoch — anomaly lens
Publish coarse counts derived from the clock to spot distribution oddities.
- Example:
epoch10 = floor(theta_deg / 10) - Share:
epoch10_counts = {0:n0,1:n1,...,35:n35}
Benefit: cheap analytics to flag missing/odd clusters.
(e) Algorithm agility — future-proof hashing
Use per-stamp keys in the optional tail; anchors stay fixed.
- Tail:
kv:algo ∈ {sha256, sha3_256, blake2b-256}andkv:chain_algo ∈ {sha256, sha3_256, blake2b-256} - Anchor remains:
rollup_D = sha256( ascii(Stamp_1 "|" ... "|" Stamp_n) )
Benefit: evolve crypto while preserving cross-system parity.
(f) Merkle roll-up — large sets (additional witness)
Publish a Merkle root alongside rollup_D (does not replace it).
- Leaves:
leaf_i = sha256( ascii(Stamp_i) ) - Root:
root = merkle( leaf_1, ..., leaf_n )usingsha256(left || right)
Benefit: efficient inclusion proofs; canonicalrollup_Dremains normative.
(g) Orphan audit counter — hygiene metric
Reveal count of sidecars without originals.
- Field:
orphans = count(sidecar_exists ^ original_missing)
Benefit: surfaces storage drift and restore needs.
(h) All-ASCII guardrails — portability
Eliminate Unicode drift before hashing/publishing.
- Replace typographic punctuation:
— -> -,’ -> ' - Hash exact ASCII inputs only:
ascii(x)
Benefit: byte-stable across platforms, editors, locales.
Minimal daily note (example, ASCII)
SSM-Clock Stamp (SSM-CS) -- Daily Anchor
date=YYYY-MM-DD
count=<n>
rollup_algo=sha256
rollup_sha256=<64-hex>
sort=iso_utc,stamp_core,chain
source=<ledger|sidecars>
witness_chain_tip=<64-hex>
policy_sha256=<64-hex>
Navigation
Back: SSM-Clock Stamp – Threat Scenarios & Attacker Playbook (6.2)
Next: SSM-Clock Stamp – Backdating Cost & Anchoring Cadence (6.4)