add canonical sigchain bundle format

This commit is contained in:
Eric Wendland 2026-07-19 03:16:14 +02:00
commit decff4b995
14 changed files with 1515 additions and 42 deletions

View file

@ -36,7 +36,12 @@ SSHSIGCHAIN v1 is redesigned before deployment:
- cached ancestors are never replaced by older heads and incomparable verified
histories fail as forks; and
- a policy-change head is witnessed under the preceding policy before the new
policy governs descendants.
policy governs descendants;
- canonical `.sscb` bundles deterministically store records, separately
discloseable payloads, claims, and receipts without embedding root trust;
- JSONL is noncanonical human-facing interchange; and
- distribution backends return untrusted bundle bytes through one interface,
with a static HTTP profile that requires no server application.
The generic core defines backend interfaces and deterministic policy behavior,
not Nostr, HTTP, blockchain, or transparency-log clients. Those adapters belong
@ -60,5 +65,6 @@ draft. No migration parser or version alias is retained.
Rollback protection still depends on persistent local accepted heads and the
operator's anchor policy. A Nostr relay, mutable HTTP URL, blockchain, or
transparency service has only the guarantees its receipt verifier and deployment
actually establish. Concrete publication, durable accepted-head storage, and
actually establish. Canonical bundle conversion and verification exist, while
automatic HTTP/Iroh fetching, durable accepted-head storage, and
cross-implementation vectors remain follow-up work.