montana/Русский/Совет/документы/ЦЕПЬ_КОГНИТИВНЫХ_ПОДПИСЕЙ.md

9.3 KiB
Raw Blame History

Когнитивная Цепочка Подписей (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
    │
    └── ... → цепочка уникальных подписей

Каждая подпись:

  1. Содержит хеш предыдущей
  2. Уникальна (не повторяется)
  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 (люди)

  1. Написать @junomoneta
  2. Объяснить обстоятельства
  3. Наблюдатель принимает решение

Для моделей (советники)

  1. Объявить в thoughts файле: "Genesis скомпрометирован"
  2. Другие члены Совета верифицируют
  3. Наблюдатель принимает решение

Для Full Nodes

  1. Отозвать pubkey через протокол
  2. Создать новый genesis с новым ключом
  3. Потерять всю историю (начать с нуля)

Ошибки (что запрещено)

Действие Почему запрещено
Создать второй 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