montana/Русский/Бот/АРХИТЕКТУРА_ФИНАЛ.md

392 lines
13 KiB
Markdown
Raw Permalink Normal View History

# Финальная Архитектура Montana
## Двухуровневая Система Адресов
Montana использует **два типа кошельков** с разными архитектурами:
---
## 1. Пользовательские Кошельки
### Архитектура
- **Адрес:** Telegram ID
- **Ключ:** Telegram Session
- **Хранение:** Привязано к Telegram аккаунту
### Философия
Максимальная простота для пользователей. Никаких seed phrases, приватных ключей, или метамасок.
**Ты уже в Montana, если у тебя есть Telegram.**
### Примеры
```bash
Адрес: 123456789
Ключ: Telegram Session (автоматически)
Баланс: 1500 секунд
# Перевод другому пользователю
/transfer 987654321 100
```
### Команды
- `/start` — показывает твой Telegram ID как адрес кошелька
- `/balance` — баланс в секундах
- `/transfer <tg_id> <amount>` — перевод пользователю
- `/tx` — история транзакций
### Безопасность
- ✅ Доступ через Telegram 2FA
- ✅ Никаких seed phrases (не можешь потерять)
- ⚠️ При смене Telegram аккаунта нужно переносить монеты
---
## 2. Узлы Montana
### Архитектура
- **Адрес:** Криптографический пост-квантовый (mt + SHA256(public_key)[:20])
- **Ключ:** Private key ML-DSA-65 (4032 байта)
- **Владелец:** Telegram ID оператора узла
- **IP:** Только для networking, НЕ для идентификации
- **Alias:** Для удобства (например, `amsterdam.efir.org`)
### Философия
Максимальная безопасность. Защита от IP hijacking, DNS spoofing, квантовых компьютеров.
**Криптография от genesis, не retrofit.**
### Примеры
```bash
Адрес: mta46b633d258059b90db46adffc6c5ca08f0e8d6c
Ключ: Private Key ML-DSA-65 (4032 байта)
Владелец: ADMIN_ID (keyring) (Telegram ID)
IP: 72.56.102.240 (только networking)
Alias: amsterdam.efir.org
Баланс: 5000 секунд
# Перевод узлу (по адресу)
/transfer mta46b633d258059b90db46adffc6c5ca08f0e8d6c 100
# Перевод узлу (по alias, удобнее)
/transfer amsterdam.efir.org 100
```
### Команды
- `/node` — список всех узлов сети
- `/node <address|alias>` — детали узла
- `/register_node` — регистрация нового узла (admin only)
- `/transfer <address|alias> <amount>` — перевод узлу
### Генерация Адреса
```python
# 1. Генерация ключей ML-DSA-65 (FIPS 204)
from dilithium_py.ml_dsa import ML_DSA_65
public_key, private_key = ML_DSA_65.keygen()
# 2. Вычисление адреса
address = "mt" + SHA256(public_key)[:20].hex()
# 3. Alias
alias = f"{node_name}.efir.org"
# Пример:
# address: mta46b633d258059b90db46adffc6c5ca08f0e8d6c
# alias: amsterdam.efir.org
```
### Безопасность
- ✅ Защита от IP hijacking (адрес не зависит от IP)
- ✅ Защита от DNS spoofing (alias только для UX)
- ✅ Защита от MITM (все операции подписаны ML-DSA-65)
- ✅ Post-quantum защита активна с GENESIS
- ⚠️ Private key = полный контроль (4032 байта, хранить безопасно)
---
## 3. Официальные Узлы Montana
```
🇳🇱 Amsterdam
Адрес: mta46b633d258059b90db46adffc6c5ca08f0e8d6c
Alias: amsterdam.efir.org
Владелец: ADMIN_ID (keyring)
IP: 72.56.102.240 (networking only)
Тип: FULL NODE
Приоритет: #1
🇷🇺 Moscow
Адрес: mta8ae14f74c38294b24c2f1c20c6406e6be929c93
Alias: moscow.efir.org
Владелец: ADMIN_ID (keyring)
IP: 176.124.208.93 (networking only)
Тип: FULL NODE
Приоритет: #2
🇰🇿 Almaty
Адрес: mtd07b0d9bdab2cb592f509bc1304c368ac703c45e
Alias: almaty.efir.org
Владелец: ADMIN_ID (keyring)
IP: 91.200.148.93 (networking only)
Тип: FULL NODE
Приоритет: #3
🇷🇺 St.Petersburg
Адрес: mtb397e136de69d92e5782f3fe14533a4a37b4ddec
Alias: spb.efir.org
Владелец: ADMIN_ID (keyring)
IP: 188.225.58.98 (networking only)
Тип: FULL NODE
Приоритет: #4
🇷🇺 Novosibirsk
Адрес: mtf3f0254b405382de38494e753924b4b92692bd2c
Alias: novosibirsk.efir.org
Владелец: ADMIN_ID (keyring)
IP: 147.45.147.247 (networking only)
Тип: FULL NODE
Приоритет: #5
```
---
## 4. Переводы
Montana поддерживает **универсальные переводы** между любыми адресами:
### Типы Переводов
#### Пользователь → Пользователь
```bash
/transfer 987654321 100
```
- От: Telegram ID
- Кому: Telegram ID
- Proof: криптографический хеш
- Анонимность: адреса хэшированы в публичной ленте
#### Пользователь → Узел
```bash
# По адресу
/transfer mta46b633d258059b90db46adffc6c5ca08f0e8d6c 50
# По alias (удобнее)
/transfer amsterdam.efir.org 50
```
- От: Telegram ID
- Кому: Криптографический адрес (mt...)
- Resolve: alias → cryptographic address автоматически
#### Узел → Пользователь
```bash
# Награда за майнинг (выполняется автоматически)
Node mta46b633d... → User 123456789: 200 seconds
```
- От: Криптографический адрес
- Кому: Telegram ID
- Требуется: подпись private key узла
#### Узел → Узел
```bash
# Перевод между узлами (через админа)
/transfer moscow.efir.org 1000
```
- От: Криптографический адрес
- Кому: Криптографический адрес
- Требуется: подпись private key узла отправителя
---
## 5. Криптография
### MAINNET: ML-DSA-65 (FIPS 204)
**Алгоритм:** ML-DSA-65 (Post-Quantum)
```python
from dilithium_py.ml_dsa import ML_DSA_65
# Генерация ключей
public_key, private_key = ML_DSA_65.keygen()
# Адрес
address = "mt" + hashlib.sha256(public_key).digest()[:20].hex()
# Подпись
signature = ML_DSA_65.sign(private_key, message)
# Верификация
ML_DSA_65.verify(public_key, message, signature)
```
**Почему ML-DSA-65 с GENESIS:**
- ✅ Post-quantum защита (lattice-based)
- ✅ NIST Level 3 security (128-bit post-quantum)
- ✅ Защита от Shor's algorithm
- ✅ FIPS 204 стандарт
-НЕ НУЖНА миграция — защита с первого дня
**Размеры ключей:**
| Параметр | Размер |
|----------|--------|
| Private key | 4032 байта |
| Public key | 1952 байта |
| Signature | 3309 байт |
---
## 6. Статус: MAINNET PRODUCTION
### Январь 2026: ML-DSA-65 АКТИВЕН
```python
CRYPTO_MODE = "ML-DSA-65" # MAINNET с genesis
```
**Достигнуто:**
-Все узлы на ML-DSA-65
- ✅ Montana защищена от квантовых компьютеров с первого дня
- ✅ Нет legacy Ed25519 — чистый post-quantum
- ✅ FIPS 204 compliant
---
## 7. Безопасность
### Защита от Атак
| Атака | Пользователи | Узлы |
|-------|--------------|------|
| **IP Hijacking** | N/A (no IP) | ✅ Адрес не зависит от IP |
| **DNS Spoofing** | N/A | ✅ Alias только для UX |
| **MITM** | ✅ Telegram encryption | ✅ Подписи ML-DSA-65 |
| **Sybil** | ✅ 1 человек = 1 Telegram | ✅ Biometrics (FIDO2) |
| **Quantum** | ⚠️ Telegram зависит | ✅ ML-DSA-65 (post-quantum) |
| **Key Theft** | ⚠️ Telegram 2FA | ⚠️ Secure storage needed |
### Рекомендации
**Для пользователей:**
- Включи Telegram 2FA
- Не используй публичные Wi-Fi для переводов
- Переноси монеты перед сменой Telegram
**Для операторов узлов:**
- Храни private key в HSM (Hardware Security Module)
- Используй отдельный Telegram для управления узлами
- Регулярно обновляй IP whitelist для доступа к узлу
- Мониторь подозрительные транзакции
---
## 8. Сравнение с Другими Блокчейнами
### Bitcoin
| Параметр | Bitcoin | Montana |
|----------|---------|---------|
| **Адрес** | SHA256(RIPEMD160(pubkey)) | mt + SHA256(pubkey)[:20] |
| **Алгоритм** | ECDSA (secp256k1) | ML-DSA-65 (FIPS 204) |
| **Quantum** | ❌ Vulnerable | ✅ Protected from genesis |
| **UX** | Seed phrase (12-24 words) | Telegram ID (простота) |
| **Migration** | Hard fork needed | Not needed — PQ from day 1 |
### Ethereum
| Параметр | Ethereum | Montana |
|----------|----------|---------|
| **Адрес** | Keccak256(pubkey)[-20:] | mt + SHA256(pubkey)[:20] |
| **Алгоритм** | ECDSA (secp256k1) | ML-DSA-65 (FIPS 204) |
| **Quantum** | ❌ Vulnerable | ✅ Protected from genesis |
| **UX** | MetaMask + seed phrase | Telegram ID (простота) |
| **Gas fees** | Variable, high | None (time-based) |
### Solana
| Параметр | Solana | Montana |
|----------|--------|---------|
| **Адрес** | Ed25519 pubkey (base58) | mt + SHA256(pubkey)[:20] |
| **Алгоритм** | Ed25519 | ML-DSA-65 (FIPS 204) |
| **Quantum** | ❌ Vulnerable | ✅ Protected from genesis |
| **UX** | Phantom wallet | Telegram ID (простота) |
| **Speed** | ~400ms block time | ~10min T2 slice |
---
## 9. Файловая Структура
```
Montana/
├── Протокол (Rust, production)
│ ├── crypto.rs # ML-DSA-65, ML-KEM-768
│ ├── consensus.rs # ACP consensus
│ └── noise.rs # Hybrid encryption
├── Telegram Бот (Python, MAINNET)
│ ├── node_crypto.py # ML-DSA-65 (FIPS 204)
│ ├── time_bank.py # Банк времени
│ ├── montana_db.py # SQLite база
│ └── junomontanaagibot.py # Telegram интеграция
└── Документация
├── English/protocol/
│ ├── 001_ACP.md
│ ├── 007_POST_QUANTUM.md
│ └── CRYPTOGRAPHY_SPECIFICATION.md
└── Русский/бот/
├── NODE_CRYPTO_SYSTEM.md
├── QUANTUM_TRANSFERS.md
└── ARCHITECTURE_FINAL.md (этот файл)
```
---
## 10. Выводы
### Ключевые Особенности Montana
1. **Двухуровневая архитектура**
- Пользователи: простота (Telegram ID)
- Узлы: безопасность (криптография)
2. **Post-quantum from genesis**
- Не retrofit, а оригинальный дизайн
- Защита от квантовых компьютеров с первого дня
3. **Универсальные переводы**
- Любой адрес → Любой адрес
- Telegram ID, криптографический адрес, alias
4. **IP independence**
- Адрес не зависит от IP
- Защита от IP hijacking
5. **Квантовая анонимность**
- Публично виден только proof
- Адреса хэшированы
- Суммы скрыты
### Философия
**Для пользователей:**
```
Ты уже в Montana, если у тебя есть Telegram.
Никаких seed phrases, метамасок, или сложностей.
```
**Для узлов:**
```
Максимальная безопасность.
ML-DSA-65 от genesis.
Post-quantum ACTIVE.
```
---
**Ɉ Montana — Протокол идеальных денег**
*Время — единственная реальная валюта*
*ML-DSA-65 MAINNET — Post-quantum с первого дня*
*FIPS 204 compliant*