# TIME_BANK — Код Банка Времени **Версия:** 3.0 **Дата:** Январь 2026 --- ## Философия ``` Montana = Организм TIME_BANK = Орган верификации эмиссии монет времени ``` **TIME_BANK верифицирует:** - Прошло ровно 10 минут (600 секунд) - Участники присутствовали N секунд - Применяет халвинг - Подтверждает эмиссию **TIME_BANK НЕ печатает** монеты из воздуха — он **подтверждает время**. --- ## Структура модулей ``` код/ ├── protocol.py # Константы протокола ├── halving.py # Логика халвинга ├── temporal_coordinates.py # τ₁, τ₂, τ₃, τ₄ ├── presence_cache.py # Кэш присутствия ├── presence_proof.py # ML-DSA-65 подписи ├── time_bank.py # Основной класс └── README.md # Этот файл ``` --- ## Использование ### Базовое использование ```python from time_bank import get_time_bank # Получить singleton TIME_BANK bank = get_time_bank() # Начать присутствие bank.start(address="user_123", addr_type="telegram") # Регистрировать активность bank.activity(address="user_123") # Завершить присутствие bank.end(address="user_123") # Проверить баланс balance = bank.balance(address="user_123") ``` ### Статистика ```python stats = bank.stats() print(f"τ₂ count: {stats['t2_count']}") print(f"τ₃ count: {stats['tau3_count']}") print(f"τ₄ count: {stats['tau4_count']}") print(f"Халвинг: {stats['halving_coefficient']:.4f}x") print(f"Год: {stats['current_year']}") ``` ### Presence Proofs ```python # Получить последние 10 proofs proofs = bank.get_presence_proofs(limit=10) for proof in proofs: print(f"T2 #{proof['t2_index']}") print(f"Hash: {proof['proof_hash'][:32]}...") print(f"Active: {proof['active_addresses']} addresses") ``` --- ## Интеграция с Montana TIME_BANK работает как **отдельный орган**, но интегрирован с: - **ML-DSA-65** — пост-квантовые подписи - **MontanaDB** — хранилище балансов - **3-Mirror** — синхронизация узлов - **Юнона (бот)** — интерфейс пользователя ### Пример интеграции с ботом ```python from time_bank import get_time_bank bank = get_time_bank() @bot.message_handler(commands=['start']) async def start_presence(message): user_id = str(message.from_user.id) bank.start(user_id, "telegram") await bot.reply("⏱️ Присутствие начато!") @bot.message_handler(commands=['balance']) async def show_balance(message): user_id = str(message.from_user.id) balance = bank.balance(user_id) await bot.reply(f"💰 Баланс: {balance} Ɉ") ``` --- ## Важные особенности ### 1. Динамическая эмиссия ```python # Эмиссия зависит от участников total_seconds = sum(user.seconds for user in users) emission = total_seconds × halving_coefficient ``` ### 2. Банк вычитает себя ```python # Банк подтверждает 600 секунд bank_seconds = 600 # Вычитает свои секунды emission = (total + bank - bank) × halving = total × halving ``` ### 3. Халвинг каждые τ₄ ```python # τ₄ = 0: 1.0x # τ₄ = 1: 0.5x (÷2) # τ₄ = 2: 0.25x (÷2) # τ₄ = 3: 0.125x (÷2) ``` --- ## Лицензия Montana Protocol v1.0 Copyright © 2026 Alejandro Montana