Skip to content

docs(theory): provenance threat model (foundational doc for Step 2)#90

Merged
hyperpolymath merged 1 commit into
mainfrom
docs/provenance-threat-model
May 14, 2026
Merged

docs(theory): provenance threat model (foundational doc for Step 2)#90
hyperpolymath merged 1 commit into
mainfrom
docs/provenance-threat-model

Conversation

@hyperpolymath
Copy link
Copy Markdown
Owner

Summary

Per V-L1-B1: the provenance chain's value proposition lived only in the README. The V-L2-C* implementation issues just made multiple binding decisions (which fields to hash, how to encode the timestamp, whether self-loops are allowed) that need a single reference. This is that reference.

docs/theory/provenance-threat-model.adoc covers:

  1. Adversary models: read-only, sidecar-append, sidecar-rewrite, clock-skew (the last is orthogonal and composes with the first three).
  2. What the chain proves under each: field-by-field with explicit "defeated by" pathways for each gap. Explicit about where protection is zero (sidecar-rewrite locally) and where conditional (sidecar-append vs forged actor only if signatures are added).
  3. Out of scope: DoS, side channels, target-DB bypass, retroactive provenance, identity binding.
  4. Assumptions: sidecar locality, optional append-only layer, SHA-256 strength, clock source, single writer.
  5. Open questions: four — each marked as a future ADR (per-entry signatures, external anchoring, trusted clock policy, snapshot redaction).

Cross-references V-L2-C1..C4 (just merged in #88) and points at the specific source files for each relevant invariant.

Closes

Test plan

  • File exists at docs/theory/provenance-threat-model.adoc with all five required sections
  • References real source-file paths (src/abi/mod.rs::ProvenanceEntry, etc.)
  • V-L2-C1..C4 (just merged) implementations are explained in terms of this model
  • Follow-up ADR-0004 ("binding choices recorded") can now reference this doc

Doc-only; no code changes.

Closes #25.

Until now the provenance chain's value proposition lived only in the
README ("tamper-evident SHA-256 hash chain so you can prove who did
what and when") with no written model of what that actually proves
under which adversary. The V-L2-C* implementation issues just made
multiple binding decisions (which fields to hash, how to encode the
timestamp, whether self-loops are allowed) that all need a single
reference; this is it.

`docs/theory/provenance-threat-model.adoc` covers the five sections
required by V-L1-B1:

  1. Four adversary models — read-only, sidecar-append,
     sidecar-rewrite, clock-skew (the last is orthogonal and can
     compose with any of the first three).
  2. What the chain proves under each, field-by-field and with the
     specific "defeated by" pathway for each gap. Explicit about
     where the chain provides zero protection (sidecar-rewrite
     locally) and where it conditionally protects (sidecar-append
     against forged actor only if signatures are added).
  3. Five out-of-scope items: DoS, side channels, target-DB
     tampering bypassing interception, retroactive provenance,
     identity binding.
  4. Five assumptions: sidecar locality, optional append-only
     storage layer, SHA-256 strength, clock source, single writer.
  5. Four open questions, each marked as a future ADR
     (per-entry signatures, external anchoring, trusted clock
     policy, snapshot redaction).

Cross-references the V-L2-C1..C4 implementation and points at the
specific source files where the relevant invariants live.

No code changes; doc-only. Future ADR-0004 (the "binding choices"
ADR called for in this issue's acceptance criteria) is a follow-up
once this doc is reviewed.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
@hyperpolymath hyperpolymath merged commit 0a509a9 into main May 14, 2026
16 of 18 checks passed
@hyperpolymath hyperpolymath deleted the docs/provenance-threat-model branch May 14, 2026 20:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

V-L1-B1: write provenance threat model (foundational doc for Step 2)

1 participant