769 lines
26 KiB
Markdown
769 lines
26 KiB
Markdown
|
|
# 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_无_金元Ɉ
|
|||
|
|
```
|