Skip to content

feat(record): Merkle proof shape — RFC-6962 tree replaces the linear fold#10

Merged
NetworkTheoryAppliedResearchInstitute merged 1 commit into
mainfrom
feat/drops-merkle
Jul 13, 2026
Merged

feat(record): Merkle proof shape — RFC-6962 tree replaces the linear fold#10
NetworkTheoryAppliedResearchInstitute merged 1 commit into
mainfrom
feat/drops-merkle

Conversation

@NetworkTheoryAppliedResearchInstitute

Copy link
Copy Markdown
Contributor

Transplant of local b50ebdf onto main (gofmt temp-file debris stripped). Settles the Merkle-vs-linear question before any durable log exists: ~log2(n) inclusion/consistency proofs (the problem-8 floor), exhaustive property suite (every size/pair ≤33, tamper/replay rejection), v1 domain tags.

Bottom of a 4-PR stack: this → record-federation → covenant-relations → governance-seed. Merge bottom-up; children need a branch update after each squash.

…fold

Executes the Merkle-now decision (Jodson, 2026-07-12), the stack plan's
highest-rework item, inside the only cheap window it will ever have: no
durable logs, no external consumers, no live witnesses.

- Head is now the RFC-6962 Merkle tree head over leaf IDs (leaves keep
  drops/leaf/v0; interior nodes carry drops/node/v1 — the 0x00/0x01
  discipline in canon-domain form, so leaves never replay as nodes).
- Inclusion proofs are audit paths: ~log2(size) hashes however large the
  log grows. This is the open-problem-8 floor made real — an entry-level
  phone verifies its covenant in a million-entry log with ~20 hashes.
- Consistency proofs are RFC-6962 subproofs; Log.ProveConsistency serves
  the witness's extension evidence, and Witness.Countersign consumes the
  proof instead of raw leaves.
- LogID moves to its own drops/logid/v1 tag (the chain-fold arity is gone);
  checkpoint and witness payloads bump to v1. Entry/leaf/content stay v0 —
  byte-identical derivations keep their tags.
- Exhaustive property suite: every leaf of every tree size to 33, every
  consistency pair to 33, tamper/truncation/padding/replay rejection, and
  the Log-level tie-in over a real appended log.

The un-checkpointed-order residual is unchanged (exactly CT's), and the
witness amnesia residual is unchanged; neither is papered over.

Signed-off-by: Jodson Graves <info@ntari.org>
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.

1 participant