154 lines
6.3 KiB
Markdown
154 lines
6.3 KiB
Markdown
|
|
# Интеграция Криптографической Системы Узлов Montana
|
|||
|
|
|
|||
|
|
## ✅ Выполнено
|
|||
|
|
|
|||
|
|
### 1. Создана криптографическая система ([node_crypto.py](node_crypto.py))
|
|||
|
|
- ML-DSA-65 генерация ключей
|
|||
|
|
- Адрес формата: `mt + SHA256(public_key)[:20].hex()`
|
|||
|
|
- Подпись и верификация транзакций
|
|||
|
|
- Защита от IP hijacking, DNS spoofing, MITM атак
|
|||
|
|
|
|||
|
|
### 2. Обновлена документация
|
|||
|
|
- **[NODE_CRYPTO_SYSTEM.md](NODE_CRYPTO_SYSTEM.md)** — полная спецификация криптографической системы
|
|||
|
|
- **[NODE_WALLET_SYSTEM.md](NODE_WALLET_SYSTEM.md)** — переписан под криптографические адреса
|
|||
|
|
- **[QUANTUM_TRANSFERS.md](QUANTUM_TRANSFERS.md)** — обновлены примеры переводов
|
|||
|
|
|
|||
|
|
### 3. Интегрировано в бот ([junona_bot_simple.py](junona_bot_simple.py))
|
|||
|
|
- Импорт изменен: `from node_crypto import get_node_crypto_system`
|
|||
|
|
- Команда `/node` работает с криптографическими адресами и alias
|
|||
|
|
- Команда `/register_node` генерирует криптографические ключи
|
|||
|
|
- Команда `/transfer` поддерживает:
|
|||
|
|
- Telegram ID (пользователи)
|
|||
|
|
- Криптографические адреса mt... (узлы)
|
|||
|
|
- Alias вида `amsterdam.efir.org` (узлы)
|
|||
|
|
|
|||
|
|
### 4. Протестирована система ([test_node_crypto.py](test_node_crypto.py))
|
|||
|
|
- ✅ Генерация ключей работает
|
|||
|
|
- ✅ Подписи валидируются
|
|||
|
|
- ✅ Атаки блокируются
|
|||
|
|
- ✅ 6 узлов зарегистрированы (5 официальных + 1 тестовый)
|
|||
|
|
|
|||
|
|
## 🔐 Криптографические Адреса Официальных Узлов
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
🇳🇱 Amsterdam mta46b633d258059b90db46adffc6c5ca08f0e8d6c
|
|||
|
|
alias: amsterdam.efir.org
|
|||
|
|
IP: 72.56.102.240 (networking only)
|
|||
|
|
|
|||
|
|
🇷🇺 Moscow mta8ae14f74c38294b24c2f1c20c6406e6be929c93
|
|||
|
|
alias: moscow.efir.org
|
|||
|
|
IP: 176.124.208.93 (networking only)
|
|||
|
|
|
|||
|
|
🇰🇿 Almaty mtd07b0d9bdab2cb592f509bc1304c368ac703c45e
|
|||
|
|
alias: almaty.efir.org
|
|||
|
|
IP: 91.200.148.93 (networking only)
|
|||
|
|
|
|||
|
|
🇷🇺 St.Petersburg mtb397e136de69d92e5782f3fe14533a4a37b4ddec
|
|||
|
|
alias: spb.efir.org
|
|||
|
|
IP: 188.225.58.98 (networking only)
|
|||
|
|
|
|||
|
|
🇷🇺 Novosibirsk mtf3f0254b405382de38494e753924b4b92692bd2c
|
|||
|
|
alias: novosibirsk.efir.org
|
|||
|
|
IP: 147.45.147.247 (networking only)
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 📋 Примеры Использования
|
|||
|
|
|
|||
|
|
### Просмотр узла
|
|||
|
|
```bash
|
|||
|
|
# По криптографическому адресу
|
|||
|
|
/node mta46b633d258059b90db46adffc6c5ca08f0e8d6c
|
|||
|
|
|
|||
|
|
# По alias (удобнее)
|
|||
|
|
/node amsterdam.efir.org
|
|||
|
|
|
|||
|
|
# Список всех узлов
|
|||
|
|
/node
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### Перевод узлу
|
|||
|
|
```bash
|
|||
|
|
# По криптографическому адресу
|
|||
|
|
/transfer mta46b633d258059b90db46adffc6c5ca08f0e8d6c 100
|
|||
|
|
|
|||
|
|
# По alias (удобнее)
|
|||
|
|
/transfer amsterdam.efir.org 100
|
|||
|
|
|
|||
|
|
# Пользователю (как раньше)
|
|||
|
|
/transfer 123456789 100
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### Регистрация нового узла
|
|||
|
|
```bash
|
|||
|
|
# Генерирует криптографические ключи автоматически
|
|||
|
|
/register_node tokyo "🇯🇵 Tokyo" 1.2.3.4 123456789 light
|
|||
|
|
|
|||
|
|
# Результат:
|
|||
|
|
# ✅ Узел зарегистрирован
|
|||
|
|
# Адрес: mtb9498a702435b2443bd8461574b80d8ed435159b
|
|||
|
|
# Alias: tokyo.efir.org
|
|||
|
|
# ⚠️ Private Key: [сохрани в безопасном месте!]
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 🛡️ Безопасность
|
|||
|
|
|
|||
|
|
### Защита от атак
|
|||
|
|
- ✅ **IP Hijacking** — адрес не зависит от IP
|
|||
|
|
- ✅ **DNS Spoofing** — alias только для удобства
|
|||
|
|
- ✅ **Man-in-the-Middle** — все операции подписаны ML-DSA-65
|
|||
|
|
- ✅ **Подделка транзакций** — требуется private key
|
|||
|
|
|
|||
|
|
### Важно
|
|||
|
|
- IP адрес используется **только для networking**
|
|||
|
|
- Криптографический адрес (mt...) — **истинный идентификатор кошелька**
|
|||
|
|
- Alias — **только для удобства**, не влияет на безопасность
|
|||
|
|
- Private key — **полный контроль над узлом**
|
|||
|
|
|
|||
|
|
## 🚀 Статус: MAINNET PRODUCTION
|
|||
|
|
|
|||
|
|
**Январь 2026:** ML-DSA-65 АКТИВЕН
|
|||
|
|
|
|||
|
|
- ✅ Все узлы на ML-DSA-65 (FIPS 204)
|
|||
|
|
- ✅ Montana защищена от квантовых компьютеров с первого дня
|
|||
|
|
- ✅ Нет legacy — чистый post-quantum
|
|||
|
|
|
|||
|
|
### Дополнительные функции
|
|||
|
|
- [ ] Signature verification для переводов между узлами
|
|||
|
|
- [ ] Multi-sig кошельки для узлов
|
|||
|
|
- [ ] Hardware Security Module (HSM) для ключей
|
|||
|
|
- [ ] Web dashboard для мониторинга узлов
|
|||
|
|
- [ ] Автоматические награды за аптайм
|
|||
|
|
|
|||
|
|
## 📁 Файлы
|
|||
|
|
|
|||
|
|
### Созданы
|
|||
|
|
- `node_crypto.py` — криптографическая система
|
|||
|
|
- `test_node_crypto.py` — тесты
|
|||
|
|
- `NODE_CRYPTO_SYSTEM.md` — документация
|
|||
|
|
- `CRYPTO_INTEGRATION_COMPLETE.md` — этот файл
|
|||
|
|
|
|||
|
|
### Обновлены
|
|||
|
|
- `junona_bot_simple.py` — интеграция в бот
|
|||
|
|
- `NODE_WALLET_SYSTEM.md` — переписан под крипто
|
|||
|
|
- `QUANTUM_TRANSFERS.md` — обновлены примеры
|
|||
|
|
|
|||
|
|
### Deprecated
|
|||
|
|
- `node_wallet.py` — старая система (IP-based)
|
|||
|
|
- `data/nodes/node_wallets.json` — старые кошельки
|
|||
|
|
|
|||
|
|
## 🎯 Результат
|
|||
|
|
|
|||
|
|
Montana теперь имеет **криптографически безопасную** систему узлов:
|
|||
|
|
- Защита от IP hijacking
|
|||
|
|
- Post-quantum готовность (миграция на ML-DSA-65)
|
|||
|
|
- Удобные alias для пользователей
|
|||
|
|
- Полная совместимость с Telegram кошельками пользователей
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
**Ɉ Montana — Протокол идеальных денег**
|
|||
|
|
|
|||
|
|
*Криптографическая защита от genesis*
|
|||
|
|
|
|||
|
|
*ML-DSA-65 MAINNET — Post-quantum от genesis*
|