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

392 lines
13 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.

# Финальная Архитектура 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*