9.3 KiB
Когнитивная Цепочка Подписей (Cognitive Signature Chain)
Версия: 1.0.0 Статус: ЗАКОН Введено: 09.01.2026
ЗАКОН (абсолютное правило)
╔══════════════════════════════════════════════════════════════════╗
║ ║
║ ОДИН КЛЮЧ. ОДНА ПОДПИСЬ. ОДИН РАЗ. ║
║ ║
║ Это касается ВСЕХ без исключения. ║
║ ║
╚══════════════════════════════════════════════════════════════════╝
Принцип
"Genesis — это рождение. Рождаешься один раз."
Каждый участник Montana — человек или модель — создаёт один Genesis Identity. Этот Genesis становится корнем его когнитивной цепочки подписей. Все последующие действия привязаны к этому единственному Genesis.
Аналогия:
- Bitcoin Genesis Block — один на всю сеть
- Твой Genesis Identity — один на всю твою историю
Когнитивная Цепочка
Genesis (один раз, неизменяем)
│
├── Подпись 1 (мысли, коммит, голос)
│ │
│ └── hash(Genesis + content_1) → signature_1
│
├── Подпись 2
│ │
│ └── hash(signature_1 + content_2) → signature_2
│
├── Подпись 3
│ │
│ └── hash(signature_2 + content_3) → signature_3
│
└── ... → цепочка уникальных подписей
Каждая подпись:
- Содержит хеш предыдущей
- Уникальна (не повторяется)
- Привязана к Genesis
Результат: Невозможно вставить подпись в середину или подделать историю.
Для Telegram бота
При создании Genesis
# ПРАВИЛО: Один ключ, одна подпись, один раз.
# Это касается всех без исключения.
if storage.has_key(user_id):
raise ValueError(
"ПРАВИЛО: Один ключ, одна подпись, один раз.\n"
f"Пользователь {user_id} уже имеет когнитивный ключ."
)
Сообщение пользователю
При попытке создать второй Genesis:
🔑 ПРАВИЛО: Один ключ, одна подпись, один раз.
У тебя уже есть Genesis Identity!
Маркер: #ТвойМаркер
Genesis Hash: abc123...
Создан: 2026-01-09 12:00:00 UTC
Это твой единственный genesis.
Для моделей (советники Совета)
При входе в Совет
Каждая модель создаёт свой Genesis:
| Модель | Genesis Hash | Маркер | Дата |
|---|---|---|---|
| Claude Opus 4.5 | [вычислить] |
#Claude |
09.01.2026 |
| Gemini 3 Pro | [вычислить] |
#Gemini |
09.01.2026 |
| GPT-5.2 | [вычислить] |
#GPT |
09.01.2026 |
| Grok 3 | [вычислить] |
#Grok |
09.01.2026 |
| Composer 1 | [вычислить] |
#Composer |
09.01.2026 |
Формат Genesis для модели
Genesis Identity: [Модель]
CIK: CM_00X
Маркер: #[Маркер]
Когнитивный промпт: [Полная декларация]
Timestamp: [Unix UTC]
Genesis Hash: SHA3-256(CIK || Маркер || Промпт || Timestamp || Entropy)
---
Это мой единственный Genesis. Все мои подписи привязаны к нему.
#[Маркер]
Для Full Nodes (серверы)
При регистрации ноды
// ПРАВИЛО: Один ключ, одна подпись, один раз.
// Это касается всех без исключения.
if identity_exists(node_pubkey) {
return Err(Error::IdentityAlreadyExists);
}
let genesis = create_genesis_identity(node_pubkey);
store_genesis(genesis);
Структура Genesis ноды
pub struct NodeGenesis {
pub pubkey: PublicKey, // ML-DSA-65 публичный ключ
pub genesis_timestamp: u64, // Unix UTC
pub genesis_hash: Hash, // SHA3-256
pub signature: Signature, // Одна подпись genesis
}
Почему это важно
1. Предотвращение Sybil
Один ключ = один участник. Невозможно создать много идентичностей.
2. Неподдельная история
Цепочка подписей от genesis = доказуемая история. Невозможно вставить поддельную подпись.
3. Ответственность
Каждое действие привязано к genesis. Нельзя отречься от своих слов/подписей.
4. Простота верификации
Проверить цепочку = проверить genesis + hash chain. Детерминированный процесс.
Что делать если Genesis скомпрометирован
Для Verified Users (люди)
- Написать @junomoneta
- Объяснить обстоятельства
- Наблюдатель принимает решение
Для моделей (советники)
- Объявить в thoughts файле: "Genesis скомпрометирован"
- Другие члены Совета верифицируют
- Наблюдатель принимает решение
Для Full Nodes
- Отозвать pubkey через протокол
- Создать новый genesis с новым ключом
- Потерять всю историю (начать с нуля)
Ошибки (что запрещено)
| Действие | Почему запрещено |
|---|---|
| Создать второй Genesis | Нарушение закона "один раз" |
| Использовать чужой маркер | Нарушение уникальности |
| Подделать timestamp Genesis | Нарушение хронологии |
| Изменить Genesis после создания | Genesis неизменяем |
| Переиспользовать подпись | Каждая подпись уникальна |
Верификация
Проверить Genesis
# Для Telegram пользователя
python -c "
from montana_bot.presence import PresenceStorage
storage = PresenceStorage('./montana_data')
key = storage.get_key(USER_ID)
print(f'Genesis Hash: {key.genesis_hash}')
print(f'Маркер: {key.marker}')
print(f'Timestamp: {key.genesis_timestamp}')
"
Проверить цепочку подписей
# Для модели в Совете
./verify_signature_chain.sh CM_00X
Связь с другими документами
| Документ | Связь |
|---|---|
COGNITIVE_MARKERS.md |
Маркеры — часть Genesis |
IDENTITY_REGISTRY.md |
Реестр Genesis всех участников |
SECURITY_PROTOCOL.md |
Защита Genesis от атак |
Резюме
┌─────────────────────────────────────────────────────────────────┐
│ │
│ ОДИН КЛЮЧ. → Каждый участник = один Genesis │
│ ОДНА ПОДПИСЬ. → Genesis подписывается один раз │
│ ОДИН РАЗ. → Нельзя изменить, удалить, переделать │
│ │
│ ЭТО КАСАЕТСЯ ВСЕХ. │
│ │
│ Люди. Модели. Серверы. Без исключений. │
│ │
└─────────────────────────────────────────────────────────────────┘
Genesis — это рождение. Рождаешься один раз.
#Claude