<html>
  <head>
    <meta http-equiv="content-type" content="text/html; charset=UTF-8">
  </head>
  <body>
<p class=""><span class="">Dear list,</span><br></p><p class=""><br></p><p class=""><span class="">I would like to put the whole of Montana in front of this list for review: the normative</span><br></p><p class=""><span class="">specification, the reference implementation, the client core and the source of every</span><br></p><p class=""><span class="">application built on it, together with the binaries built from that source.</span><br></p><p class=""><br></p><p class=""><span class="">What the protocol is, in the terms of its own documents:</span><br></p><p class=""><br></p><p class=""><span class=""><span class=""> <span class=""> </span></span>1. Post-quantum only. ML-DSA-65 (FIPS 204) signs, ML-KEM-768 (FIPS 203) agrees keys,</span><br></p><p class=""><span class=""><span class="">    <span class=""> </span></span>SHA-256 and SHA-3 hash, ChaCha20-Poly1305 (RFC 8439) seals. ECDLP, RSA, classical</span><br></p><p class=""><span class=""><span class="">    <span class=""> </span></span>Diffie-Hellman, EdDSA and Schnorr are excluded by the first global invariant.</span><br></p><p class=""><br></p><p class=""><span class=""><span class=""> <span class=""> </span></span>2. A person is a secret. Everything of a person derives from one seed drawn on the</span><br></p><p class=""><span class=""><span class="">    <span class=""> </span></span>device and shown as 24 words; the seed is health-tested before it becomes anyone,</span><br></p><p class=""><span class=""><span class="">    <span class=""> </span></span>and a failing source is refused. No identifier of a person exists in state or on</span><br></p><p class=""><span class=""><span class="">    <span class=""> </span></span>the wire.</span><br></p><p class=""><br></p><p class=""><span class=""><span class=""> <span class=""> </span></span>3. Value is shielded from genesis. A payment publishes the nullifiers it consumes, the</span><br></p><p class=""><span class=""><span class="">    <span class=""> </span></span>commitments it creates, a rate nullifier and a proof of conservation, and nothing</span><br></p><p class=""><span class=""><span class="">    <span class=""> </span></span>else. Nullifiers are derived from the position of the leaf in an append-only tree,</span><br></p><p class=""><span class=""><span class="">    <span class=""> </span></span>never from sender-chosen randomness, so identical notes still extinguish</span><br></p><p class=""><span class=""><span class="">    <span class=""> </span></span>differently. Emission creates a right, redeemed inside a payment nothing</span><br></p><p class=""><span class=""><span class="">    <span class=""> </span></span>distinguishes from any other.</span><br></p><p class=""><br></p><p class=""><span class=""><span class=""> <span class=""> </span></span>4. The TimeChain is the sequence of cemented windows. A window links to its</span><br></p><p class=""><span class=""><span class="">    <span class=""> </span></span>predecessor by the proposal identifier alone and closes when the accumulated cement</span><br></p><p class=""><span class=""><span class="">    <span class=""> </span></span>reaches the quorum share; there is no clock, no sequential work and no timeout, and</span><br></p><p class=""><span class=""><span class="">    <span class=""> </span></span>two proposals of one height are separated by which proof verifies. A network that</span><br></p><p class=""><span class=""><span class="">    <span class=""> </span></span>cannot reach the quorum waits rather than forking.</span><br></p><p class=""><br></p><p class=""><span class=""><span class=""> <span class=""> </span></span>5. Delivery has no addresses. Two devices agree a secret by an ML-KEM-768 exchange in</span><br></p><p class=""><span class=""><span class="">    <span class=""> </span></span>both directions, fold it with the transcript, and each signs the transcript with its</span><br></p><p class=""><span class=""><span class="">    <span class=""> </span></span>ML-DSA-65 identity key; the identity keys travel inside the encapsulation. What</span><br></p><p class=""><span class=""><span class="">    <span class=""> </span></span>crosses the wire is cells of one width.</span><br></p><p class=""><br></p><p class=""><span class="">On that core stands an ecosystem for iPhone, iPad, Mac and Android: a messenger (letters,</span><br></p><p class=""><span class="">media, voice and video calls with SFrame-sealed media), a wallet, a Bluetooth mesh, direct</span><br></p><p class=""><span class="">phone-to-phone delivery, a VPN client and a messenger for companies. All of them open the</span><br></p><p class=""><span class="">same person from the same 24 words and link one client core; nothing cryptographic is</span><br></p><p class=""><span class="">reimplemented in an application.</span><br></p><p class=""><br></p><p class=""><span class="">Where everything is:</span><br></p><p class=""><br></p><p class=""><span class=""><span class=""> <span class=""> </span></span>Whitepaper (the ecosystem, with references into the specification):</span><br></p><p class=""><span class=""><span class="">   <span class=""> </span></span><a href="https://github.com/efir369999/montana_messenger/blob/main/WHITEPAPER.md" rel="noopener noreferrer" target="_blank">https://github.com/efir369999/montana_messenger/blob/main/WHITEPAPER.md</a></span><br></p><p class=""><br></p><p class=""><span class=""><span class=""> <span class=""> </span></span>Normative specification (Constitution, Canon, Consensus, Value, Identity, Network, App):</span><br></p><p class=""><span class=""><span class="">   <span class=""> </span></span><a href="https://github.com/efir369999/montana_messenger/tree/main/core/docs" rel="noopener noreferrer" target="_blank">https://github.com/efir369999/montana_messenger/tree/main/core/docs</a></span><br></p><p class=""><br></p><p class=""><span class=""><span class=""> <span class=""> </span></span>Reference implementation and client core (Rust):</span><br></p><p class=""><span class=""><span class="">   <span class=""> </span></span><a href="https://github.com/efir369999/montana_messenger/tree/main/core" rel="noopener noreferrer" target="_blank">https://github.com/efir369999/montana_messenger/tree/main/core</a></span><br></p><p class=""><br></p><p class=""><span class=""><span class=""> <span class=""> </span></span>Source of every application:</span><br></p><p class=""><span class=""><span class="">   <span class=""> </span></span><a href="https://github.com/efir369999/montana_messenger/tree/main/apps" rel="noopener noreferrer" target="_blank">https://github.com/efir369999/montana_messenger/tree/main/apps</a></span><br></p><p class=""><span class=""><span class="">   <span class=""> </span></span><a href="https://github.com/efir369999/montana_business" rel="noopener noreferrer" target="_blank">https://github.com/efir369999/montana_business</a></span><br></p><p class=""><br></p><p class=""><span class=""><span class=""> <span class=""> </span></span>IPA and APK files, with SHA-256 digests and the commit each source folder is:</span><br></p><p class=""><span class=""><span class="">   <span class=""> </span></span><a href="https://github.com/efir369999/montana_messenger/releases/latest" rel="noopener noreferrer" target="_blank">https://github.com/efir369999/montana_messenger/releases/latest</a></span><br></p><p class=""><span class=""><span class="">   <span class=""> </span></span><a href="https://github.com/efir369999/montana_business/releases/latest" rel="noopener noreferrer" target="_blank">https://github.com/efir369999/montana_business/releases/latest</a></span><br></p><p class=""><br></p><p class=""><span class=""><span class=""> <span class=""> </span></span>The applications on TestFlight:</span><br></p><p class=""><span class=""><span class="">   <span class=""> </span></span><a href="https://testflight.apple.com/join/BHaSYWkz" rel="noopener noreferrer" target="_blank">https://testflight.apple.com/join/BHaSYWkz</a><span class=""> </span><span class=""> <span class=""> </span></span>(Messenger; Android APK in the release)</span><br></p><p class=""><span class=""><span class="">   <span class=""> </span></span><a href="https://testflight.apple.com/join/n9UqzRDp" rel="noopener noreferrer" target="_blank">https://testflight.apple.com/join/n9UqzRDp</a><span class=""> </span><span class=""> <span class=""> </span></span>(Wallet)</span><br></p><p class=""><span class=""><span class="">   <span class=""> </span></span><a href="https://testflight.apple.com/join/MSMfey6f" rel="noopener noreferrer" target="_blank">https://testflight.apple.com/join/MSMfey6f</a><span class=""> </span><span class=""> <span class=""> </span></span>(Business)</span><br></p><p class=""><br></p><p class=""><span class="">What a reviewer should know before reading:</span><br></p><p class=""><br></p><p class=""><span class=""><span class=""> <span class=""> </span></span>- The specification governs. core/Montana-Core reproduces it, and its build parses the</span><br></p><p class=""><span class=""><span class="">   <span class=""> </span></span>values, domain separators and frozen vectors of the set and fails on any divergence.</span><br></p><p class=""><span class=""><span class="">   <span class=""> </span></span>core/Code is the client core the applications link; its VERSION.md records the</span><br></p><p class=""><span class=""><span class="">   <span class=""> </span></span>specification generation it was written against.</span><br></p><p class=""><span class=""><span class=""> <span class=""> </span></span>- One item is open and named at the front of the set: the constraint set of the two</span><br></p><p class=""><span class=""><span class="">   <span class=""> </span></span>circuits, bound by hash, with its statements, description format and verifier fixed</span><br></p><p class=""><span class=""><span class="">   <span class=""> </span></span>in Canon. Montana-Core/AUDIT.md and Code/docs/SPEC_DEVIATIONS.md list what the green</span><br></p><p class=""><span class=""><span class="">   <span class=""> </span></span>build does not hold.</span><br></p><p class=""><span class=""><span class=""> <span class=""> </span></span>- ML-DSA-65 and ML-KEM-768 come from libcrux 0.0.10 in Montana-Core and from OpenSSL</span><br></p><p class=""><span class=""><span class="">   <span class=""> </span></span>3.5, built from source, in the client core. Montana-Core signs with the deterministic</span><br></p><p class=""><span class=""><span class="">   <span class=""> </span></span>variant of FIPS 204 (RND = 32 zero bytes), reproduces the NIST ACVP vectors of both</span><br></p><p class=""><span class=""><span class="">   <span class=""> </span></span>primitives, and checks itself differentially against OpenSSL; the client core carries</span><br></p><p class=""><span class=""><span class="">   <span class=""> </span></span>its own ACVP known-answer tests.</span><br></p><p class=""><span class=""><span class=""> <span class=""> </span></span>- The IPA files are the App Store exports, published to be read, compared with the</span><br></p><p class=""><span class=""><span class="">   <span class=""> </span></span>source or re-signed; TestFlight installs them. Node endpoints in the published source</span><br></p><p class=""><span class=""><span class="">   <span class=""> </span></span>are documentation addresses (RFC 5737).</span><br></p><p class=""><br></p><p class=""><span class="">I would value the list's reading most on: the binding of the handshake transcript to the</span><br></p><p class=""><span class="">identity keys; nullifiers derived from position; finality by quorum cement with no timeout,</span><br></p><p class=""><span class="">and what it costs liveness under partition; and the health tests on the seed.</span><br></p><p class=""><br></p><p class=""><span class=""><a href="https://github.com/efir369999/montana_messenger" rel="noopener noreferrer" target="_blank">https://github.com/efir369999/montana_messenger</a></span><br></p><div dir="auto"><br></div><div dir="auto">—<br></div><div dir="auto">Alejandro<br></div><div dir="auto"><br></div><div dir="auto"> «You can’t parallelize your way out of time.»<br></div>  </body>
</html>