Skip to content

spec: separate dataplane Merkle-root integrity from authority-layer signed receipts - #210

Merged
tcconnally merged 1 commit into
mainfrom
docs/issue-206-two-layer
Aug 4, 2026
Merged

spec: separate dataplane Merkle-root integrity from authority-layer signed receipts#210
tcconnally merged 1 commit into
mainfrom
docs/issue-206-two-layer

Conversation

@tcconnally

Copy link
Copy Markdown
Contributor

Summary

Canonizes the two-layer integrity model as a written spec:

  • New docs/spec-two-layer-integrity.md — defines the dataplane layer (per-org event hash chain + retained checkpoints; plutus verify proves the store did not silently change) and the authority layer (AAR receipts binding actor, boundary, evidence, action, result, committed as opaque validated references). Each layer is verifiable independently of the other; neither implies the other. Failure-case table makes the two distinguishable outcomes explicit: tampered store + valid receipts → storage verdict broken, authority verdict intact; valid store + revoked/absent signature → storage intact, authority failed. Composition and non-goals included.
  • docs/ledger-integrity.md — layer-boundary callout at the top pointing to the spec (plus a one-word pre-existing MD049 emphasis-style fix so the touched file lints clean).

Gates (run locally, actual output)

  • git diff --check → clean
  • npx markdownlint-cli --disable MD013 MD033 MD024 MD025 MD060 -- docs/spec-two-layer-integrity.md docs/ledger-integrity.md → exit 0 (LINT-OK)

Acceptance criteria

  • Spec section defines the two layers and their independence
  • Verifier can check storage-root integrity without replaying signatures (plutus verify / verify-checkpoints take no receipt material) and vice versa (AAR authority checks take no chain root)
  • Failure cases: tampered store with valid receipts, and valid store with revoked/absent signature, are distinguishable outcomes (table in spec)
  • Docs lint passes

Closes #206

…igned receipts

New spec doc (docs/spec-two-layer-integrity.md) canonizing the two-layer
model: the dataplane layer (per-org event hash chain + retained checkpoints,
plutus verify) proves the store did not silently change; the authority layer
(AAR receipts binding actor, boundary, evidence, action, result) proves who
authorized what. Each layer verifies independently of the other, neither
implies the other, and the two failure cases — tampered store with valid
receipts, and valid store with revoked/absent signature — are distinguishable
outcomes. ledger-integrity.md gets a layer-boundary callout pointing to the
spec (plus one pre-existing MD049 emphasis-style fix so the touched file
lints clean).

Closes #206
@tcconnally
tcconnally merged commit 8c26688 into main Aug 4, 2026
8 checks passed
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.

spec: separate dataplane Merkle-root integrity from authority-layer signed receipts

1 participant