# ПРОТОКОЛ TIME_BANK v3.0 — Банк Времени Montana ## Версия: 3.0 ## Дата: 2026-01-20 ## Автор: Alejandro Montana --- ## 1. ГЛАВНЫЙ ПРИНЦИП **ПРИСУТСТВИЕ = ВЗАИМОДЕЙСТВИЕ** > Пока ты общаешься с Юноной — ты присутствуешь. > Пока узел работает — Атлант присутствует. > > **1 Ɉ = 1 секунда доказанного присутствия.** --- ## 2. ДВА ТИПА ПРИСУТСТВИЯ ### 2.1 Пользователь (Telegram) ``` Присутствие = Взаимодействие с ботом Сообщение/Команда/Кнопка → activity(telegram_id) → +1 Ɉ/сек ``` **Активность:** - Отправил сообщение → присутствует - Вызвал команду → присутствует - Нажал кнопку → присутствует - Молчит > 1 минуты (τ₁) → пауза **Код в боте:** ```python # Каждое взаимодействие = присутствие time_bank.activity(str(user_id), "telegram") ``` ### 2.2 Атлант (Сервер/Узел) ``` Атлант ВСЕГДА присутствует (пока работает) Старт бота → atlant_presence_loop() → +1 Ɉ/сек (постоянно) ``` **Логика:** - Атлант = сервер, на котором работает бот - Пока бот работает → Атлант присутствует - Пинг каждые 60 сек поддерживает активность **Код в боте:** ```python async def atlant_presence_loop(): atlant_address = f"atlant_{node_name}" time_bank.start(atlant_address, "atlant") while _is_polling: time_bank.activity(atlant_address, "atlant") await asyncio.sleep(60) time_bank.end(atlant_address) ``` --- ## 3. ВРЕМЕННЫЕ КООРДИНАТЫ ### Иерархия времени Montana | Уровень | Интервал | Описание | |---------|----------|----------| | τ₁ | 1 минута | Подпись присутствия (ML-DSA-65) | | τ₂ (T2) | 10 минут | Слайс, подтверждение баланса | | τ₃ | 14 дней | Checkpoint | | τ₄ | 4 года | Epoch, Халвинг ÷2 | ### T2 — Основной цикл ``` [0 сек] ─────────────────────────── [600 сек] T2 = 10 минут Pending секунды ─── ПОДТВЕРЖДЕНИЕ ──→ Баланс (в кэше) (в БД) ``` **Каждые 10 минут:** 1. Все накопленные `t2_seconds` конвертируются в баланс 2. Баланс записывается в БД 3. Счётчик `t2_seconds` сбрасывается --- ## 4. МЕХАНИЗМ НАЧИСЛЕНИЯ ### 4.1 Поток данных ``` Пользователь Атлант │ │ │ сообщение работает ▼ ▼ activity(tg_id) activity(atlant_id) │ │ └──────────┬──────────────────────┘ │ ▼ ┌─────────────┐ │ PresenceCache │ │ entries[addr] │ │ t2_seconds++ │ └──────┬──────┘ │ каждую секунду (_tick) │ если активен < 3 мин ▼ ┌─────────────┐ │ T2 (10 мин) │ │ _finalize_t2 │ └──────┬──────┘ │ ▼ ┌─────────────┐ │ DB │ │ balance += N │ └─────────────┘ ``` ### 4.2 Код начисления (time_bank.py) ```python def _tick(self): """Каждую секунду""" for address, entry in self.presence.all().items(): inactive = now - entry["last_activity"] if inactive < INACTIVITY_LIMIT_SEC: # < 3 мин entry["presence_seconds"] += 1 entry["t2_seconds"] += 1 else: entry["is_active"] = False # Пауза def _finalize_t2(self): """Каждые 10 минут""" for address, entry in self.presence.all().items(): if entry["t2_seconds"] > 0: coins = int(entry["t2_seconds"] * halving_coefficient) self.db.credit(address, coins) entry["t2_seconds"] = 0 ``` --- ## 5. КОНСТАНТЫ ПРОТОКОЛА ```python class Protocol: VERSION = "3.0" # Время INACTIVITY_LIMIT_SEC = 1 * 60 # τ₁ = 1 минута без активности = пауза T2_DURATION_SEC = 10 * 60 # 10 минут = слайс TAU3_DURATION_SEC = 14 * 24 * 3600 # 14 дней = checkpoint TAU4_DURATION_SEC = 4 * 365 * 86400 # 4 года = epoch # Начисление COINS_PER_SECOND = 1 # 1 секунда = 1 Ɉ # Сеть NODES_COUNT = 5 # 5 узлов Montana ``` --- ## 6. ХАЛВИНГ **Эмиссия делится на 2 каждые τ₄ (4 года)** | Epoch (τ₄) | Годы | Коэффициент | 1 сек = | |------------|------|-------------|---------| | 0 | 0-4 | 1.0 | 1 Ɉ | | 1 | 4-8 | 0.5 | 0.5 Ɉ | | 2 | 8-12 | 0.25 | 0.25 Ɉ | | 3 | 12-16 | 0.125 | 0.125 Ɉ | ```python def halving_coefficient(tau4_count: int) -> float: return 1.0 / (2 ** tau4_count) ``` --- ## 7. БАЛАНС В БОТЕ ### Команда /balance ``` Ɉ **Твой кошелек Montana** **Адрес:** `123456789` _(твой Telegram ID — адрес кошелька и ключ)_ 💰 **Баланс:** 1200 Ɉ ⏳ **Накапливается:** +45 Ɉ ───────────────────────── 💎 **Всего:** 1245 Ɉ ⏱ Следующее подтверждение через 7:32 ``` **Два типа баланса:** - `confirmed` — подтверждённый (в БД) - `pending` — накапливается в текущем T2 (в кэше) --- ## 8. АДРЕСА ### Типы адресов | Тип | Формат | Пример | |-----|--------|--------| | Пользователь | Telegram ID | `8552053404` | | Атлант | `atlant_{node_name}` | `atlant_amsterdam` | | Узел | `mt + SHA256(pubkey)[:40]` | `mt1a2b3c4d...` | --- ## 9. КРИПТОГРАФИЯ ### ML-DSA-65 Presence Proof Каждую τ₁ (1 минуту) узел подписывает доказательство присутствия: ``` MONTANA_PRESENCE_V1:{timestamp}:{prev_hash}:{pubkey}:{t2_index} ``` **Цепочка proofs:** ``` Proof #1 → hash₁ ↓ Proof #2 (prev=hash₁) → hash₂ ↓ Proof #3 (prev=hash₂) → hash₃ ``` --- ## 10. СТАТИСТИКА /stats ``` Ɉ **📊 Montana Protocol — Статистика** **⏱ Временные Координаты** ├ τ₂ (текущий slice): #1234 ├ τ₃ (checkpoints): #5 ├ τ₄ (epoch): #0 └ Год Montana: 0 **💰 Эмиссия** ├ Коэффициент халвинга: 1.0× └ 1 секунда присутствия = 1 Ɉ **🌐 Сеть** ├ Активное присутствие: 3 └ Всего кошельков: 15 ``` --- ## 11. ФИЛОСОФИЯ > **Время — единственный ресурс, распределённый одинаково между всеми.** > > 24 часа у каждого. Montana оцифровывает это присутствие. > > Присутствие = Взаимодействие. > Атлант = Сервер, который держит сеть. > > **1 Ɉ = 1 секунда твоей жизни, доказанной присутствием.** --- ## 12. СТАТУС РЕАЛИЗАЦИИ ``` ✅ v3.0 — PRODUCTION ├ Присутствие пользователей (Telegram) ├ Присутствие Атлантов (серверы) ├ T2 подтверждение (10 мин) ├ Халвинг (4 года) ├ ML-DSA-65 Presence Proof └ SQLite хранилище ``` --- **Подпись протокола:** ``` ПРОТОКОЛ: TIME_BANK v3.0 ДАТА: 2026-01-20 АВТОР: Alejandro Montana СТАТУС: MAINNET PRODUCTION 金元Ɉ ```