8.7 KiB
8.7 KiB
ПРОТОКОЛ TIME_BANK v3.0 — Банк Времени Montana
Версия: 3.0
Дата: 2026-01-20
Автор: Alejandro Montana
1. ГЛАВНЫЙ ПРИНЦИП
ПРИСУТСТВИЕ = ВЗАИМОДЕЙСТВИЕ
Пока ты общаешься с Юноной — ты присутствуешь. Пока узел работает — Атлант присутствует.
1 Ɉ = 1 секунда доказанного присутствия.
2. ДВА ТИПА ПРИСУТСТВИЯ
2.1 Пользователь (Telegram)
Присутствие = Взаимодействие с ботом
Сообщение/Команда/Кнопка → activity(telegram_id) → +1 Ɉ/сек
Активность:
- Отправил сообщение → присутствует
- Вызвал команду → присутствует
- Нажал кнопку → присутствует
- Молчит > 1 минуты (τ₁) → пауза
Код в боте:
# Каждое взаимодействие = присутствие
time_bank.activity(str(user_id), "telegram")
2.2 Атлант (Сервер/Узел)
Атлант ВСЕГДА присутствует (пока работает)
Старт бота → atlant_presence_loop() → +1 Ɉ/сек (постоянно)
Логика:
- Атлант = сервер, на котором работает бот
- Пока бот работает → Атлант присутствует
- Пинг каждые 60 сек поддерживает активность
Код в боте:
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 минут:
- Все накопленные
t2_secondsконвертируются в баланс - Баланс записывается в БД
- Счётчик
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)
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. КОНСТАНТЫ ПРОТОКОЛА
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 Ɉ |
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
金元Ɉ