Skip to content

Pattern 13 demo: your Merkle construction is one step ahead of shipped v1.2 (tiny compat note) #4

Description

@topeuph-ai

Hi Cüneyt,

I finally sat down with pattern13_prml_commit_reveal.py — thank you for building it. The three-tamper-scenarios structure (each layer catching what the ones below can't) explains the composition better than our prose ever did, and the REAL-vs-MODELLED header is exactly the kind of honesty labelling more demos should have.

One small compatibility note, flagged mostly because it's interesting: your Merkle tree uses leaf/node domain separation (0x00/0x01 prefixes, RFC 6962 style). The shipped valichord_attestation v1.2 hashes pairs bare — sha256(left + right), no tags — so the same samples produce a different root in the demo than in the library. The fun part: domain separation is already on our v2 consideration list from an internal audit last week, so you independently reached for the stronger construction before we shipped it. The demo isn't wrong so much as early.

Two easy ways to square it, either of which I'm happy to do as a PR if useful:

  1. A one-line note in the demo/README that the Merkle here anticipates the v2 construction (bare-pair hashing in v1.2), or
  2. We publish a small conformance vector for the v1.2 Merkle root — your own PRML medicine, applied to us — so any re-implementation can check itself.

When v2 lands with the prefixes, your demo becomes exact with no changes. Which feels like the right ending.

The lm-eval bridge as flagship looks great, by the way — good to see the ITE-6 Statement idea from the June thread shipped and runnable.

Best,
Ceri

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions