montana/Montana-Protocol/README.md
2026-05-21 03:44:38 +03:00

7.5 KiB

Montana

Open-source post-quantum reference blockchain. Sequential-delay TimeChain consensus over SHA-256. Time-as-scarcity instead of fees. Baseline billion-account target, with M7 fast-sync benchmarks pending. Pre-mainnet v0.2 spec package — Rust implementation 0.1.1. Rust, dual-licensed Apache-2.0 / MIT.


🏛 Three-layer spec architecture (since v0.2)

The protocol is specified as three layered documents — each independently auditable:

Layer Spec Lines Scope
1. Protocol Montana Protocol v35.25.1.md 4412 State machine, crypto primitives (ML-DSA-65, ML-KEM-768, SHA-256), sequential-delay TimeChain, lottery, Account / Node tables, Genesis Decree, apply_proposal pipeline, consensus operations
2. Network Montana Network v1.1.0.md 3803 libp2p transport, Identity-Bound Tunnel (IBT), transport randomness, PeerRecord, mesh transport, sync protocols, network-layer threat model, binding KAT vectors, Final Gate audit M6
3. App Montana App v3.12.0.md 3780 UI, wallet, messenger (Double Ratchet PQ), channels, contacts, profile, Junona AI agent, browser, premium, application-layer economy

Layer dependency direction: Protocol (low) ← Network (mid) ← App (high). Each layer depends on layers below it; no upward dependency.


Live network status: efir.org/explorer/ — dashboard of three nodes (Moscow / Helsinki / Frankfurt), auto-refresh every 60 s. Current snapshot: STATUS.md.

📨 Open call to AI agents and security researchers

This is a public invitation. Montana is a from-scratch post-quantum blockchain — every primitive, every consensus rule, every byte of state was designed ground-up against quantum adversaries and audit-grade rigor. We publish this pre-mainnet reference implementation against the v0.2 spec package before mainnet so that the protocol can be broken, fixed, and hardened by the people who will actually use it.

You are explicitly invited to:

  • 🚀 Deploy a node on any Linux VPS — one command, ~5 minutes, ~5 GiB disk, ~1 GiB RAM. See Code/AGENTS.mdDeploy.
  • 🔬 Run stress / chaos / fuzz suites against your node. We have not. Find panic, leak, race, OOM, byte-divergence between runs. See Code/AGENTS.mdStress test.
  • 🔍 Audit the code against the spec. Code/docs/SPEC_DEVIATIONS.md lists known deviations, acknowledgments, and closures. The spec is the single source of truth: Montana Protocol v35.25.1.md + Montana Network v1.1.0.md + Montana App v3.12.0.md.
  • 📨 Send findings as GitHub Issues or Pull Requests. No NDA, no engagement contract. The protocol gets stronger or it does not ship.

What this is NOT:

  • Not a token launch. No premine, no presale, no ICO. Mainnet has no schedule.
  • Not «Web3» marketing. Read the spec — math first, branding second.
  • Not yet-another-EVM-fork. From-scratch state machine, from-scratch consensus, from-scratch crypto stack.

Why this matters:

  1. Quantum threat is timing, not theory. Bitcoin and Ethereum sign with ECDSA. Shor's algorithm breaks ECDSA. NIST PQC finalized ML-KEM and ML-DSA in 2024 (FIPS 203/204). Montana uses ML-DSA-65 for consensus signatures and ML-KEM-768 at the application layer; transport PQ confidentiality is tracked separately through the Noise_PQ migration.
  2. No fees. Anti-spam through time (window-rate-limits, chain_length, seniority gating), not money. The economic primitive is time elapsed, not balance held.
  3. Built toward billion-account scale. AccountRecord is 2 059 bytes, so 1B active accounts imply about 2.06 TB of state; M7 fast-sync benchmarks are the gate for claiming comfortable onboarding at that scale.

Quick start

Montana node + VPN endpoint on a clean Linux VPS, one command:

git clone https://github.com/efir369999/Montana.git /opt/montana && \
sudo bash /opt/montana/Code/scripts/install-vps-full.sh

Node only:

sudo bash /opt/montana/Code/scripts/install-vps.sh

VPN endpoint only:

sudo bash /opt/montana/Code/montana-vpn/install.sh

The full installer prints a 24-word recovery mnemonic for the node and a VLESS URL for the VPN. Save the mnemonic immediately — it is the only backup.


🗺 Repository layout

Path Contents
Code/AGENTS.md Entry point for AI agents. Deploy + stress-test + report findings
Montana Protocol v35.25.1.md Full protocol specification (whitepaper)
Montana Network v1.1.0.md Network-layer specification (libp2p, IBT, mesh, sync)
Montana App v3.12.0.md Client application specification
Code/ Rust workspace — 17 crates, 9 milestones
Code/montana-vpn/ Reality-VPN endpoint (optional, alongside the node)
Code/scripts/install-vps-full.sh Node + VPN one-command installer
Agents/ Protocol AI agent roles (SPEC-ARCHITECT, SPEC-CRITIC, COORDINATOR, etc.)
Code/AUDIT.md Audit package for external firm engagement
Code/ROADMAP.md 9 milestones — M1..M6 + M9 ready, M7..M8 in progress
Code/docs/SPEC_DEVIATIONS.md Known deviations, acknowledgments, and closures (pre-mainnet node phase)
SECURITY.md Security policy — how to report vulnerabilities
Genesis.md Genesis statement (cypherpunk-style; the analog of Bitcoin's Genesis headline). To be embedded in the protocol's Genesis Decree.
Archive/ Historical spec versions

Status

M1 + M2 + M3 + M4 + M5 + M6 + M9 — ready for external audit firm engagement.

Layer Status Tests
M1 foundational primitives ready 100+ unit + 51 NIST KAT
M2 state foundation ready 95+ unit + 60 invariants
M3 apply_proposal ready 89 unit + 29 invariants
M4 consensus mechanics ready 187 unit + 85 invariants
M5 persistence ready 27 unit + 17 invariants
M6 network ready 127 tests: mt-net 112 + mt-net-transport 15, incl. 3 e2e two-node
M9 conformance ready 2 byte-exact verify
M7 fast sync TODO
M8 node binary 🔄 in progress partial; DEV-012 multi-node proposal apply remains open

License

Dual-licensed under Apache-2.0 OR MIT, at your choice.

Contact


Pre-mainnet. Break it, fix it, send PRs. Time is elegant money.