montana/Монтана-Протокол/Внешний аудит/critic-analysis-2026-05-04-3-pillars.md

146 lines
11 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Критики анализ — 3 столпа критики против текущего состояния
**Дата:** 2026-05-04
**Источник:** внешняя критика, формализованная автором
**Архитектор отвечал:** Claude Opus 4.7 (1M)
## Премиссы критики
1. «Пока нет публичного кода реализации VDF-цепи и BFT-слоя (только спецификация).»
2. «Реальная сеть всё ещё на 3 нодах — теоремы красивы, но практика пока скромная.»
3. «Нужно будет проверить, насколько тяжело запускать ноду обычному человеку (D = 325 млн итераций SHA-256 на каждые 60 секунд — это серьёзная нагрузка).»
## A. Премисса 1 — «нет публичного кода»
**Частично неверна.**
Код есть и теперь публичен через Монтана Хаб (`montana.quest/efir369999/montana`):
- Реализация узла — `Монтана-Протокол/Код/`, бинарь `/usr/local/bin/montana-node` развёрнут на 3 узлах.
- Сетевой слой — crate `mt-net-tcp`.
- iOS клиент — `iOS/Apps/Montana/`.
- macOS — `macOS/`.
- CLI — `CLI/`.
Что справедливо в критике:
- Нет канонических Cargo-крейтов на crates.io, нет тегов релизов с semver.
- Single-implementation risk — одна реализация в Rust, нет независимой второй.
- Нет публикации на сторонних площадках, кроме Монтана Хаба.
## B. Премисса 2 — «3 ноды»
**Верна.**
Деплой (текущее состояние, проверено):
| Узел | Регион | peer_id | Phase | Window | D |
|------|--------|---------|-------|--------|---|
| мос | Москва (176.124.208.93) | 12D3KooWE6kn…dL3 | **Active** (operator) | 8086 | 325000000 |
| фра | Frankfurt (89.19.208.158) | 12D3KooWMzPB…Qrn | CandidateVdf | 8085 | 325000000 |
| зел | Helsinki (91.132.142.42) | 12D3KooWEzWH…G3P7 | CandidateVdf | 8083 | 325000000 |
- Сеть стабильно крутит ≥ 5.6 дней (8086 × 60s ≈ 134 часа continuous chain с 2026-05-02).
- Все 3 узла в gossip-связи (heartbeat OK, broadcast Proposal к 2 peer(s)).
- Drift между узлами 13 окна — нормальная сетевая задержка.
Что справедливо в критике:
- f<n/3 при n=3 = f<1 нулевой BFT-запас на византийского противника.
- Все 3 узла один автор, один стек кода. Нет «независимого подложного» оператора для проверки.
- Нет открытой регистрации новых узлов.
Контекст: на эквивалентных ранних стадиях у Bitcoin/Ethereum/Solana было 28 узлов внутри команды. 3 узла в 3 независимых юрисдикциях лучше среднего ранне-стадийного L1, но не достаточно для production.
## C. Премисса 3 — «D = 325M / 60s — серьёзная нагрузка»
**Верна численно, но интерпретация требует разделения ролей.**
### C.1 Кто крутит VDF
Спека `Montana Protocol v35.25.0` §«Два пути участия»:
- **Оператор** крутит VDF, претендует на эмиссию. Аналог майнера/валидатора.
- **Аккаунт** подписывает свои операции. Аналог пользователя кошелька. **VDF не крутит.**
Критика применима только к роли оператора. Обычный пользователь Монтаны это аккаунт, не оператор.
### C.2 Численная картина оператора
```
325 000 000 итераций / 60 секунд ≈ 5.4 млн SHA-256/сек одним ядром
```
| Платформа | Время компрессии | Окно | CPU |
|-----------|-------------------|------|-----|
| x86_64 без SHA-NI | 200 нс | 65 с | 1 ядро 100% |
| x86_64 SHA-NI (Intel/AMD 2017+) | 60 нс | 19 с | 1 ядро 100% потом простой |
| Apple Silicon ARM v8 SHA-2 | 40 нс | 13 с | 1 ядро 100% потом простой |
Адаптация D каждые τ = 20160 окон удерживает медианное окно 60 с. На быстрой машине узел отдыхает между окнами; на медленной крутит непрерывно.
### C.3 Реальная стоимость
- Энергия: 515 Вт на ядро под нагрузкой = 0.120.36 кВт·ч/сутки = копейки в РФ, заметнее в EU.
- Тепло на ноутбуке постоянный фон вентилятора, на стационаре/мини-ПК приемлемо.
- Параллельно другие ядра свободны.
### C.4 Сравнение по входу в роль оператора
| Сеть | Что нужно | Стоимость |
|------|-----------|-----------|
| Bitcoin mining | ASIC | $5k+ железо + сотни Вт |
| Ethereum PoS | 32 ETH $100k | стейк + хостинг |
| Solana | Топ-CPU + 256 ГБ RAM | $510k + хостинг |
| **Montana** | **1 ядро современного CPU** | **~$100300 + 515 Вт** |
Монтана самая лёгкая из существующих L1 по входу в роль оператора. Но обоснование «не хуже Bitcoin» это про Bitcoin, а не про обычного пользователя; обычный пользователь Bitcoin тоже не майнит.
Что справедливо в критике:
- Эталонный CPU для калибровки D₀=325M публично численно не зафиксирован.
- 3-нодовый testnet не показал поведение D-адаптации в гетерогенной сети.
- Документации «как запустить ноду» для не-программиста нет.
## Сводка: что у нас и что нужно к mainnet
| Слой | Состояние | Что нужно к mainnet |
|------|-----------|---------------------|
| Спецификация | v35.25.0 production-ready | Стабилизация (no breaking changes) |
| Whitepaper RU/EN/ZH | есть | Английский RFC для академической рецензии |
| Реализация узла | M5M8 на 3 узлах | M9 (открытая регистрация), Cargo-публикация, semver-теги |
| Тестовая сеть | 🟡 3 узла (один автор) | 913 независимых узлов из разных юрисдикций |
| Внешний аудит | 🔴 только внутренние ИИ-критики | План в [09 Внешний аудит](../../Формальная%20Документация/09%20Внешний%20Аудит/) Trail of Bits / Cure53 / NCC и подобные |
| Формальная верификация | 🔴 не начата | TLA+ модель PoT [10 Формальная верификация](../../Формальная%20Документация/10%20Формальная%20Верификация/) |
| Документация для оператора | 🔴 только для разработчика | Гайд «запустить ноду» для не-программиста |
| Калибровка D | 🟡 325M фиксировано | Численное обоснование на N разных CPU + публикация эталона |
| Bug bounty | 🔴 нет | Программа до публичного M9 |
| Cargo-крейты, релизы | 🔴 нет тегов | Semver, release-теги |
| Faucet тестовой TC | 🔴 нет | Часть M9 |
| Cross-region мониторинг | 🟡 RU/EU только | Asia, Americas, Africa |
## Архитекторская позиция: «mainnet» — это не флаг
Сеть `montana` (network_name из genesis-manifest.json) это уже каноническое Монтана-имя по правилу `feedback_production_grade_naming.md`. Никакого testnet-к-mainnet переименования не предусмотрено.
«Mainnet» в смысле production-launched состояние когда:
1. Внешний аудит критов закрыт (см. 🔴 в таблице).
2. Формальная верификация Safety/Liveness PoT доступна (см. 🔴).
3. Тестовая сеть доросла до f<n/3 запаса при f=3+ (см. M9).
4. Bug bounty запущен и выплатил итерацию.
5. Documentation для оператора доступна не-программисту.
6. Заявлена token-economic finality.
До этого состояние сети **operating, pre-launch**. По pre-mainnet принципу breaking changes применяются сразу это **признак**, что мы pre-launch, а не альтернатива launched.
## Что критик не говорит, но стоит добавить
- Single-implementation risk нет независимой реализации в другом языке.
- Нет публичного dispute resolution для конфликтов о канонической истории.
- Нет публичного explorer с полной историей событий `montana.quest/explorer/` пока базовый.
- Языковая изоляция спеки RU primary, EN/ZH whitepaper. Полная RFC на английском нужна для академической рецензии.
- Нет threat-сценария «государственный actor блокирует genesis-узлы» все 3 в RU/EU юрисдикциях.
## Резюме
Критики 3 пунктов точно отражают состояние pre-mainnet проекта в фазе M8. Каждый пункт **открыто признан** в [Формальной Документации](../../Формальная%20Документация/) с привязкой к конкретному milestone закрытия. Текущее состояние сети `montana` стабильно operating с 2026-05-02, но в pre-launch режиме до закрытия 6 mainnet-гейтов.
Преждевременная декларация «mainnet» при незакрытых гейтах = противоречие собственной формальной документации = потеря trust-кредита. Архитектор не делает этот шаг.