montana/Русский/Экономика/банк_времени/ТЕХНИЧЕСКАЯ_СПЕЦИФИКАЦИЯ.md

769 lines
26 KiB
Markdown
Raw Permalink Normal View History

# TIME_BANK — Банк Времени Montana
**Техническая Спецификация v3.0**
**Дата:** Январь 2026
**Автор:** Alejandro Montana
---
## Abstract
TIME_BANK — протокол эмиссии монет времени (金元Ɉ) на основе доказанного присутствия. Единственная валюта, где эмиссия ограничена **временем как физическим ресурсом**.
**Ключевая формула:**
```
1 секунда присутствия = 1 Ɉ × halving_coefficient
```
**Свойства:**
- Динамическая эмиссия (зависит от участников)
- Халвинг каждые τ₄ (4 года)
- Банк подтверждает время, вычитает свои секунды
---
# ЧАСТЬ I: ЭКОНОМИЧЕСКАЯ МОДЕЛЬ
## 1. Определение 金元Ɉ
**金元** (jīn yuán) — буквально "золотой юань".
**Ɉ** (Unicode U+0248) — Temporal Time Unit.
```
金元Ɉ = Время, доказанное присутствием
```
> *"Время — единственный ресурс, распределённый одинаково между всеми людьми."*
### 1.1 Фундаментальное свойство
```
lim(evidence → ∞) 1 Ɉ → 1 секунда
∀t: Trust(t) < 1
```
**Ɉ не равен секунде.** Ɉ асимптотически приближается к секунде по мере накопления доказательств.
| Доказательства | Точность | Доверие |
|----------------|----------|---------|
| 1 подпись | ±10 минут | ~0.1 |
| 1 τ₂ (10 мин) | ±1 минута | ~0.5 |
| 1 τ₃ (14 дней) | ±1 секунда | ~0.99 |
| 1 τ₄ (4 года) | ±0.1 секунды | ~0.9999 |
---
## 2. Временные координаты
Montana использует иерархию временных единиц:
| Единица | Длительность | Назначение |
|---------|--------------|------------|
| **τ₁** | 1 минута | Подпись присутствия (ML-DSA-65) |
| **τ₂** | 10 минут | Слайс (блок эмиссии) |
| **τ₃** | 14 дней | Чекпоинт (2,016 τ₂) |
| **τ₄** | 4 года | Эпоха (104 τ₃) — **ХАЛВИНГ** |
```
τ₄ содержит 104 × τ₃
τ₃ содержит 2,016 × τ₂
τ₂ содержит 10 × τ₁
```
**Иерархия:**
```
1 τ₄ = 104 τ₃ = 209,664 τ₂ = 2,096,640 τ₁
```
---
## 3. Механизм эмиссии
### 3.1 Принцип работы
**Банк Времени** — не участник, а **валидатор времени**:
```
Банк говорит: "Прошло ровно 10 минут (600 секунд)"
Банк всегда присутствует 600 секунд за τ₂
Банк вычитает свои секунды из эмиссии
```
### 3.2 Формула эмиссии
```python
# 1. Считаем всех участников (включая банк)
total_seconds = sum(user1, user2, ..., user_N) + bank_600_seconds
# 2. Банк вычитает себя
total_seconds -= bank_600_seconds
# 3. Применяем халвинг
emission = total_seconds × halving_coefficient(τ₄_count)
# Упрощённо:
emission = sum(только_пользователи) × halving_coefficient
```
### 3.3 Динамическая эмиссия
Эмиссия **не фиксированная**, а зависит от участников:
| Участники | Секунды за τ₂ | Эмиссия (τ₄=0) | Эмиссия (τ₄=1) |
|-----------|---------------|----------------|----------------|
| 1 | 600 | 600 Ɉ | 300 Ɉ |
| 10 | 6,000 | 6,000 Ɉ | 3,000 Ɉ |
| 100 | 60,000 | 60,000 Ɉ | 30,000 Ɉ |
| 1,000 | 600,000 | 600,000 Ɉ | 300,000 Ɉ |
**Чем больше участников, тем больше эмиссия.**
---
## 4. TIME_BANK Reserve — 21 млн минут
### 4.1 Фундаментальный принцип
**TIME_BANK имеет конечный резерв времени:**
```
BANK_TOTAL_MINUTES = 21,000,000 минут
BANK_TOTAL_SECONDS = 1,260,000,000 секунд
```
> *21 миллион минут — как 21 миллион Bitcoin. Конечный ресурс.*
### 4.2 Расход резерва
Банк **всегда тратит 10 минут за каждый T2**, подтверждая что прошло ровно 10 минут:
```python
# Каждый T2 (10 минут)
bank_seconds_spent += 600 # Банк тратит 10 минут из резерва
# Проверка исчерпания
if bank_seconds_spent >= BANK_TOTAL_SECONDS:
bank_exhausted = True # Oracle Mode
```
### 4.3 График исчерпания
| Параметр | Значение |
|----------|----------|
| Резерв | 21,000,000 минут |
| Расход/T2 | 10 минут |
| Всего T2 | 2,100,000 |
| Срок | **~40 лет** |
```
21,000,000 минут ÷ 525,600 мин/год = 39.95 лет
```
**По годам:**
| Год | Потрачено | Осталось | % резерва |
|-----|-----------|----------|-----------|
| 0 | 0 | 21,000,000 | 100% |
| 4 | 2,102,400 | 18,897,600 | 90% |
| 10 | 5,256,000 | 15,744,000 | 75% |
| 20 | 10,512,000 | 10,488,000 | 50% |
| 30 | 15,768,000 | 5,232,000 | 25% |
| 40 | 21,024,000 | 0 | 0% |
### 4.4 Oracle Mode
Когда резерв исчерпан (~40 лет), TIME_BANK переходит в **Oracle Mode**:
```
╔═══════════════════════════════════════════════════════════╗
║ ⏳ TIME_BANK RESERVE EXHAUSTED — ORACLE MODE ║
╚═══════════════════════════════════════════════════════════╝
Банк потратил все 21 млн минут
Теперь чистый оракул — продолжает верифицировать время
```
**В Oracle Mode банк:**
- ✅ Продолжает верифицировать T2 (подтверждать время)
- ✅ Участники продолжают получать монеты за присутствие
- ❌ Банк больше не "тратит" из резерва
- 📡 Становится чистым временным оракулом
### 4.5 Связь с халвингом
Резерв и халвинг — **независимые механизмы**:
| Механизм | Что ограничивает | Когда срабатывает |
|----------|------------------|-------------------|
| **Резерв 21M** | Время жизни банка как эмитента | ~40 лет |
| **Халвинг** | Эмиссию за секунду | Каждые 4 года (τ₄) |
```
Год 0-4: Резерв 100%, Халвинг 1.0x
Год 4-8: Резерв 90%, Халвинг 0.5x
Год 8-12: Резерв 75%, Халвинг 0.25x
...
Год 36-40: Резерв 10%, Халвинг 0.001x
Год 40+: Резерв 0%, Oracle Mode
```
### 4.6 Почему 21 миллион?
```
Bitcoin: 21,000,000 BTC — ограничено математикой
Montana: 21,000,000 минут — ограничено временем
21M — символ конечности.
Время банка конечно. Время участников — бесконечно.
```
---
## 5. Халвинг (Halving)
### 5.1 Механизм
Каждые **τ₄ (4 года)** эмиссия делится на 2:
```python
halving_coefficient(τ₄_count) = 1.0 / (2 ** τ₄_count)
```
### 5.2 График эмиссии
| Период | τ₄ | Коэффициент | За 1 секунду | Эмиссия за τ₂ (100 участников) |
|--------|-----|-------------|--------------|--------------------------------|
| 0-4 года | 0 | 1.0 | 1.0 Ɉ | 60,000 Ɉ |
| 4-8 лет | 1 | 0.5 | 0.5 Ɉ | 30,000 Ɉ |
| 8-12 лет | 2 | 0.25 | 0.25 Ɉ | 15,000 Ɉ |
| 12-16 лет | 3 | 0.125 | 0.125 Ɉ | 7,500 Ɉ |
| 16-20 лет | 4 | 0.0625 | 0.0625 Ɉ | 3,750 Ɉ |
### 5.3 Сравнение с Bitcoin
| Параметр | Bitcoin | 金元Ɉ |
|----------|---------|-------|
| Интервал халвинга | 210,000 блоков (~4 года) | τ₄ (ровно 4 года) |
| Механизм | Деление награды на 2 | Деление эмиссии на 2 |
| Детерминированность | Количество блоков | Физическое время |
| Ускорение | Можно (больше хешрейта) | **Невозможно** |
**Время нельзя ускорить, купить или подделать.**
---
## 6. Распределение
### 6.1 Параллельная эмиссия
Каждый участник получает монеты **параллельно** за своё присутствие:
```
User A: 450 сек × 1.0 = 450 Ɉ
User B: 600 сек × 1.0 = 600 Ɉ
User C: 150 сек × 1.0 = 150 Ɉ
───────────────────────────────
Эмиссия: 1,200 Ɉ
Распределено: 1,200 Ɉ
Резерв: 0 (нет резерва!)
```
**НЕТ лотереи, НЕТ резерва** — всё распределяется участникам.
### 6.2 Принцип "личного банка времени"
```
┌─────────────────────────────────────────────────────────────┐
│ ПАРАЛЛЕЛЬНАЯ ЭМИССИЯ │
├─────────────────────────────────────────────────────────────┤
│ User A │ Присутствовал 450 сек │ +450 Ɉ │
│ User B │ Присутствовал 600 сек │ +600 Ɉ │
│ User C │ Присутствовал 150 сек │ +150 Ɉ │
│ Банк │ 600 сек (вычитается) │ +0 Ɉ │
└─────────────────────────────────────────────────────────────┘
Каждый получает из своего "личного банка времени"
Сеть распределяет параллельно, не из общего пула
```
---
## 7. Свойства 金元Ɉ
### 7.1 Неподделываемость
```
Подделать Ɉ = Подделать время
Подделать время = Нарушить физику
∴ Ɉ неподделываем
```
### 7.2 Неинфлируемость
```
Эмиссия Ɉ ограничена временем
Все люди имеют одинаковое количество времени
Халвинг делит эмиссию на 2 каждые 4 года
∴ Ɉ распределён справедливо и предсказуемо
```
### 7.3 Верифицируемость
Каждый Ɉ имеет доказательство:
```
├── Подпись присутствия (ML-DSA-65)
├── Включение в presence_root (Merkle)
├── Подтверждение в таймчейне (хеш-цепь)
└── Аттестация сетью (P2P)
```
---
## 8. Формула ценности
```
V(Ɉ) = f(доказательства) × g(время) × h(участники) × k(халвинг)
где:
f(доказательства) → 1 при evidence → ∞
g(время) — монотонно возрастает
h(участники) — сетевой эффект
k(халвинг) — дефляционная компонента
```
**Ценность Ɉ растёт с:**
1. Количеством накопленных доказательств
2. Длительностью существования сети
3. Числом участников сети
4. Каждым халвингом (дефицит)
---
# ЧАСТЬ II: ТЕХНИЧЕСКАЯ РЕАЛИЗАЦИЯ
## 9. Архитектура TIME_BANK
### 9.1 Основные компоненты
```
┌─────────────────────────────────────────────────────────────┐
│ TIME_BANK v3.0 │
├─────────────────────────────────────────────────────────────┤
│ Protocol │ Константы протокола │
│ halving() │ Коэффициент халвинга │
│ TimeBank │ Основной класс эмиссии │
│ PresenceCache │ Кэш присутствия участников │
│ _finalize_t2() │ Завершение слайса, начисление монет │
│ Presence Proof │ ML-DSA-65 подписи присутствия │
└─────────────────────────────────────────────────────────────┘
```
### 9.2 Константы протокола
```python
class Protocol:
VERSION = "3.0"
# Сеть
NODES_COUNT = 5 # 5 узлов Montana
BANK_PRESENCE_PER_T2 = 600 # Банк всегда 600 сек
# TIME_BANK RESERVE — 21 млн минут (~40 лет)
BANK_TOTAL_MINUTES = 21_000_000 # 21 млн минут
BANK_TOTAL_SECONDS = 1_260_000_000 # 21M × 60
# Временные координаты
TAU1_INTERVAL_SEC = 60 # τ₁ = 1 минута
T2_DURATION_SEC = 10 * 60 # τ₂ = 10 минут
TAU3_DURATION_SEC = 14 * 24 * 60 * 60 # τ₃ = 14 дней
TAU4_DURATION_SEC = 4 * 365 * 24 * 60 * 60 # τ₄ = 4 года
# Иерархия
T2_PER_TAU3 = 2016 # τ₂ в τ₃
TAU3_PER_YEAR = 26 # τ₃ в году
TAU3_PER_TAU4 = 104 # τ₃ в τ₄
# Монеты
COINS_PER_SECOND = 1 # 1 секунда = 1 монета
INACTIVITY_LIMIT_SEC = 3 * 60 # 3 минуты без активности
```
---
## 10. Халвинг
### 10.1 Реализация
```python
def halving_coefficient(tau4_count: int) -> float:
"""
Коэффициент халвинга — деление на 2 каждые τ₄
Returns:
1.0 / (2 ** tau4_count)
Примеры:
halving_coefficient(0) → 1.0
halving_coefficient(1) → 0.5
halving_coefficient(2) → 0.25
halving_coefficient(3) → 0.125
"""
return 1.0 / (2 ** tau4_count)
```
### 10.2 Использование
```python
# В момент завершения τ₂
coef = halving_coefficient(self.tau4_count)
# Эмиссия с халвингом
emission = total_users_seconds × coef
# Распределение с халвингом
user_coins = user_seconds × coef
```
---
## 11. Presence Proof — Доказательство присутствия
### 11.1 Криптография ML-DSA-65
| Параметр | Значение |
|----------|----------|
| Алгоритм | ML-DSA-65 (Dilithium) |
| Стандарт | FIPS 204 |
| Уровень | NIST Level 3 (128-bit post-quantum) |
| Private Key | 4032 байт |
| Public Key | 1952 байт |
| Signature | 3309 байт |
### 11.2 Подпись присутствия
Каждую **τ₁ (1 минуту)** узел подписывает:
```python
# Формат сообщения
message = f"MONTANA_PRESENCE_V1:{timestamp}:{prev_hash}:{pubkey}:{t2_index}"
# POST-QUANTUM подпись
signature = ML_DSA_65.sign(private_key, message.encode())
# Hash для цепочки proofs
proof_hash = SHA256(f"{message}:{signature}")
```
### 11.3 Цепочка доказательств
```
┌─────────────────────────────────────────────────────────────┐
│ PRESENCE PROOF CHAIN │
├─────────────────────────────────────────────────────────────┤
│ Genesis │ prev_hash = "0000...0000" │
│ Proof #1 │ prev_hash = Genesis.hash │
│ Proof #2 │ prev_hash = Proof#1.hash │
│ ... │ ... │
└─────────────────────────────────────────────────────────────┘
```
---
## 12. Финализация τ₂
### 12.1 Алгоритм
```python
def _finalize_t2(self):
"""
Завершает T2, начисляет монеты с халвингом
Шаги:
1. Считаем сумму всех секунд присутствия
2. Банк вычитает свои 600 секунд
3. Применяем халвинг
4. Распределяем каждому
"""
# 1. Коэффициент халвинга
coef = halving_coefficient(self.tau4_count)
# 2. Сумма секунд участников
total_users_seconds = sum(user.t2_seconds for user in users)
# 3. Банк подтверждает 600 секунд
bank_seconds = 600
# 4. Эмиссия = сумма × халвинг
emission = total_users_seconds × coef
# 5. Распределяем каждому
for user in users:
coins = user.t2_seconds × coef
user.balance += coins
```
### 12.2 Проверка τ₃ и τ₄
```python
# Каждые 2016 τ₂ = τ₃ checkpoint
if t2_count % 2016 == 0:
tau3_count += 1
log("τ₃ CHECKPOINT")
# Каждые 104 τ₃ = τ₄ epoch — ХАЛВИНГ!
if tau3_count % 104 == 0:
tau4_count += 1
log("🔥 τ₄ HALVING — Эмиссия ÷ 2")
```
---
## 13. Интеграция с Montana
### 13.1 Философия
```
Montana = Организм
├── TIME_BANK = Орган (эмиссия монет времени)
├── ML-DSA-65 = Иммунная система (пост-квантовая защита)
├── 3-Mirror = Нервная система (синхронизация узлов)
├── Юнона (бот) = Лицо (интерфейс с пользователем)
└── Гиппокамп = Память (внешнее хранилище событий)
```
### 13.2 Юнона — Лицо Montana
**Бот отражает всё на "лице":**
```python
# Юнона показывает баланс
@bot.message_handler(commands=['balance'])
async def show_balance(message):
balance = time_bank.balance(user_id)
await bot.reply(f"💰 Баланс: {balance} Ɉ")
# Юнона показывает присутствие
@bot.message_handler(commands=['presence'])
async def show_presence(message):
info = time_bank.get(user_id)
await bot.reply(f"⏱️ Присутствие: {info['seconds']} сек")
# Юнона показывает халвинг
@bot.message_handler(commands=['halving'])
async def show_halving(message):
stats = time_bank.stats()
coef = stats['halving_coefficient']
await bot.reply(f"📊 Халвинг: {coef:.4f}x")
```
---
## 14. Защита от атак
| Атака | Механизм защиты | Статус |
|-------|-----------------|--------|
| Quantum | ML-DSA-65 post-quantum | ✅ |
| IP hijacking | Криптографические адреса | ✅ |
| Harvest now decrypt later | ML-DSA-65 с genesis | ✅ |
| Sybil | FIDO2 биометрия | ⚠️ Mock |
| Bot | Случайные интервалы проверки | ⚠️ Частично |
| Time manipulation | Физические ограничения | ✅ |
---
## 15. Сравнение с другими системами
| Система | Ограничение | Можно ускорить? | Справедливость |
|---------|-------------|-----------------|----------------|
| Bitcoin | Вычисления | ✅ Да (хешрейт) | Неравномерно |
| Ethereum | Stake | ✅ Да (купить) | Плутократия |
| 金元Ɉ | **Время** | ❌ **НЕТ** | **Равномерно** |
```
Золото ограничено в пространстве → добыча
Bitcoin ограничен вычислениями → майнинг
金元Ɉ ограничен временем → присутствие
```
**Время нельзя украсть, подделать или ускорить.**
---
## 16. Примеры использования
### 16.1 Начисление монет
```python
from time_bank import get_time_bank
bank = get_time_bank()
# Начать присутствие
bank.start(user_id="123456789", addr_type="telegram")
# Активность каждые N секунд
bank.activity(user_id="123456789")
# Каждые 600 секунд автоматически начисляются монеты
# (с учётом халвинга)
# Завершить присутствие
bank.end(user_id="123456789")
# Проверить баланс
balance = bank.balance(user_id="123456789")
print(f"Баланс: {balance} Ɉ")
```
### 16.2 Перевод монет
```python
# Перевод от Alice к Bob
result = bank.send(
from_addr="alice_123",
to_addr="bob_456",
amount=100
)
if result['success']:
print(f"TX: {result['proof']}")
```
### 16.3 Статистика
```python
stats = bank.stats()
print(f"Эмиссия/T2: {stats['emission_per_t2']} Ɉ")
print(f"Халвинг: {stats['halving_coefficient']:.4f}x")
print(f"τ₃: {stats['tau3_count']}")
print(f"τ₄: {stats['tau4_count']}")
print(f"Год: {stats['current_year']}")
```
---
## 16A. HTTP API для iOS/Web
### Эндпоинты
**Баланс** — Получить баланс по Telegram ID:
```
GET http://72.56.102.240/api/balance/{tg_id}
Response:
{
"tg_id": "123456789",
"balance": 1500,
"confirmed": 1500,
"pending": 0,
"slices": {
"tau1": 25.0, // 1500 / 60
"tau2": 2.5, // 1500 / 600
"tau3": 0.00124, // 1500 / 1209600
"tau4": 0.0000119 // 1500 / 126230400
},
"network": {
"total_reserve": 21000000,
"total_mined": 5000,
"remaining": 20995000
}
}
```
**Присутствие** — Регистрация секунд присутствия:
```
POST http://72.56.102.240/api/presence
Headers:
Content-Type: application/json
X-Device-ID: {tg_id}
Body:
{
"seconds": 60 // 1-3600
}
Response:
{
"success": true,
"added": 60,
"balance": 1560,
"tg_id": "123456789"
}
```
### Архитектура синхронизации
```
┌─────────────┐ POST /api/presence ┌──────────────────┐
│ iOS App │ ──────────────────────────▶│ Amsterdam Proxy │
│ (Montana) │ │ 72.56.102.240 │
└─────────────┘ └────────┬─────────┘
│ │
│ GET /api/balance/{tg_id} │ proxy
│ ▼
│ ┌──────────────────┐
└───────────────────────────────────▶│ TIME_BANK Server │
│ 176.124.208.93 │
│ :8081 │
└──────────────────┘
```
**Принцип:**
1. Устройство накапливает секунды локально
2. Каждые 30 сек отправляет дельту на сервер
3. Сервер кредитует секунды в TIME_BANK
4. Баланс синхронизируется по `tg_id` между устройствами
**Важно:** Баланс берётся **максимальный** — если на сервере больше, используется серверный; если локально больше, синхронизируется на сервер.
---
## 17. Дорожная карта
### v3.0 (текущая) ✅
- [x] Динамическая эмиссия
- [x] Халвинг через τ₄
- [x] ML-DSA-65 подписи
- [x] τ₃ checkpoints
- [x] Удалена лотерея 70/20/10
- [x] Удалён epoch coefficient
### v4.0 (планируется)
- [ ] FIDO2 биометрия (не Mock)
- [ ] Улучшенная защита от ботов
- [ ] Cross-chain bridges
- [ ] Смарт-контракты на Ɉ
---
## 18. Заключение
金元Ɉ — **первая валюта, основанная на времени как физическом ресурсе**.
**Ключевые преимущества:**
1. **Справедливость**у всех одинаковое количество времени
2. **Неподделываемость** — время нельзя подделать
3. **Предсказуемость** — халвинг каждые 4 года
4. **Пост-квантовая защита** — ML-DSA-65
5. **Децентрализация** — 5 узлов, 3-Mirror failover
**Философия:**
> Время — единственный ресурс, который нельзя украсть, купить или ускорить.
> 金元Ɉ оцифровывает это присутствие и делает его валютой.
---
```
Alejandro Montana
TIME_BANK v3.0
Январь 2026
Ничто_Nothing_无_金元Ɉ
```