168 lines
9.9 KiB
Markdown
168 lines
9.9 KiB
Markdown
|
|
# Глоссарий Montana
|
|||
|
|
|
|||
|
|
**Версия:** v1.0.0
|
|||
|
|
**Аудитория:** ИИ-агент. Прочитай после `ВВЕДЕНИЕ.md`.
|
|||
|
|
|
|||
|
|
Каждый термин — короткое определение + где встречается + пример. Алфавит русский (для русскоязычных терминов) + английский (для технических).
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## А
|
|||
|
|
|
|||
|
|
**Adversarial gate** (Враждебный гейт)
|
|||
|
|
Процедурная проверка во время изменения спеки/кода, симулирующая атаку или ошибку. Например, Gate −1 — верификация премисс критика по спеке. Список — в `Протокол/CLAUDE.md` секция «Гейты».
|
|||
|
|
**Где:** `CLAUDE.md`, `CRITIC.md` (роли).
|
|||
|
|
|
|||
|
|
**Anchor** (Якорь)
|
|||
|
|
Точка финализации состояния. Множество узлов BFT-комитета подписывает блок и фиксирует его как канонический. Подписи — ML-DSA-65 (квантустойчивые).
|
|||
|
|
**Где:** `mt-anchor` крейт, спека раздел «Anchor pipeline».
|
|||
|
|
**Пример:** anchor каждые ~N секунд, M из K подписей нужны.
|
|||
|
|
|
|||
|
|
## Б
|
|||
|
|
|
|||
|
|
**BFT** (Byzantine Fault Tolerance)
|
|||
|
|
Консенсус устойчивый к злонамеренным узлам. Montana: BFT-комитет финализирует Anchor.
|
|||
|
|
**Где:** `mt-consensus` крейт.
|
|||
|
|
|
|||
|
|
**Binding KAT vector** (Связывающий KAT)
|
|||
|
|
Test vector в формате `input hex → output hex`, дословно фиксирующий результат формулы. Любая реализация (Rust/Go/TS/Swift) должна выдавать тот же байт-точный output. SSOT для cross-implementation correctness.
|
|||
|
|
**Где:** `mt-conformance` крейт, спека раздел «KAT vectors».
|
|||
|
|
|
|||
|
|
**Bootstrap PoW** (Бутстрап-доказательство работы)
|
|||
|
|
256-bit integer division proof, который новый узел предоставляет при первом подключении к сети. Защита от Sybil-атаки на boostrap.
|
|||
|
|
**Где:** `mt-net::pow` модуль, спека «Bootstrap».
|
|||
|
|
|
|||
|
|
## В
|
|||
|
|
|
|||
|
|
**VDF** (Verifiable Delay Function)
|
|||
|
|
Функция f(x), которую нельзя ускорить параллелизмом, но проверка результата мгновенная. В Montana — итеративный SHA-256 фиксированной длины D. Создаёт TimeChain.
|
|||
|
|
**Где:** `mt-vdf` крейт, спека раздел «TimeChain layer».
|
|||
|
|
**Пример:** D = 325M итераций ≈ N секунд на референсном GPU.
|
|||
|
|
|
|||
|
|
## Г
|
|||
|
|
|
|||
|
|
**Genesis Decree** (Генезис-декрет)
|
|||
|
|
Начальное состояние сети: `protocol_params` (D₀, размеры, лимиты), bootstrap nodes pubkeys, initial accounts. Hard-coded в спеке + reproducible в коде.
|
|||
|
|
**Где:** спека раздел «Genesis Decree», `genesis.json` (планируется).
|
|||
|
|
|
|||
|
|
**Gate** см. Adversarial gate.
|
|||
|
|
|
|||
|
|
## Д
|
|||
|
|
|
|||
|
|
**Dandelion++** (Одуванчик++)
|
|||
|
|
Сетевой протокол приватности транзакций: stem-фаза (релей через одного соседа), fluff-фаза (broadcast). Затрудняет deanonymization.
|
|||
|
|
**Где:** `mt-net::dandelion` модуль.
|
|||
|
|
|
|||
|
|
**Deferred** (Отложенный)
|
|||
|
|
Решение перенесённое «на потом». Запрещено в Pre-mainnet — все правильные решения применяются сейчас. См. feedback `feedback_audit_ready_zero_deferred`.
|
|||
|
|
|
|||
|
|
**Dev/test/temp markers**
|
|||
|
|
Запрещённые префиксы в production-коде. Имена остаются неизменными от M5 до mainnet. См. feedback `feedback_production_grade_naming`.
|
|||
|
|
|
|||
|
|
## И
|
|||
|
|
|
|||
|
|
**IBT** (Identity-Bound Tunnel)
|
|||
|
|
Криптографическое доказательство что туннель связан с конкретной identity (публичным ключом узла). Не позволяет ноде маскироваться под другую.
|
|||
|
|
**Где:** `mt-net::ibt` модуль, спека «Network layer».
|
|||
|
|
|
|||
|
|
**Invariant** (Инвариант, [I-X])
|
|||
|
|
Глобальное правило которое всегда истинно для спеки/кода. Реестр — в `Протокол/CLAUDE.md`. Примеры: [I-1] SSOT, [I-9] KAT vectors обязательны для каждой формулы, [I-15] no deferred decisions.
|
|||
|
|
|
|||
|
|
## К
|
|||
|
|
|
|||
|
|
**KAT** см. Binding KAT vector.
|
|||
|
|
|
|||
|
|
**Карточка замыкания** (Closure card)
|
|||
|
|
Структурированное micro-spec в спеке: для одного механизма — формула + KAT + threat + storage. Используется для детализации сетевого слоя, storage layer и т.п.
|
|||
|
|
**Где:** спека раздел «Карточки замыкания механизмов».
|
|||
|
|
|
|||
|
|
**ML-DSA-65** (Module-Lattice-based Digital Signature Algorithm)
|
|||
|
|
Постквантовая подпись по FIPS 204. Размеры: pubkey 1952B, secret 4032B, signature 3309B.
|
|||
|
|
**Где:** `mt-crypto-native` (через liboqs).
|
|||
|
|
|
|||
|
|
**ML-KEM-768** (Module-Lattice-based Key Encapsulation Mechanism)
|
|||
|
|
Постквантовый KEM по FIPS 203. Размеры: pubkey 1184B, ciphertext 1088B, shared secret 32B.
|
|||
|
|
**Где:** `mt-crypto-native`.
|
|||
|
|
|
|||
|
|
## Н
|
|||
|
|
|
|||
|
|
**NodeChain** (Цепочка узлов)
|
|||
|
|
Параллельная TimeChain цепочка `NodeRecord`s. Содержит метаданные узлов (pubkey, vdf_chain_length при включении, и т.д.). Используется для селекции лидера.
|
|||
|
|
**Где:** спека раздел «NodeChain layer».
|
|||
|
|
|
|||
|
|
**NodeRecord** (Запись узла)
|
|||
|
|
Структура с метаданными узла: pubkey, vdf_chain_length, capabilities, и т.д. Публикуется при включении узла в сеть.
|
|||
|
|
|
|||
|
|
## О
|
|||
|
|
|
|||
|
|
**Окно (window)**
|
|||
|
|
Временной интервал в TimeChain, фиксированной длины (например, 60 секунд). `window_index` — порядковый номер окна. Внутри окна происходят определённые события (proposals, anchors).
|
|||
|
|
|
|||
|
|
## П
|
|||
|
|
|
|||
|
|
**Pre-mainnet принцип**
|
|||
|
|
Montana ещё не запущена. Любые breaking changes применяются сразу, без backward-compatibility. См. feedback `feedback_premainnet_principle`.
|
|||
|
|
|
|||
|
|
**Privacy by default**
|
|||
|
|
Архитектурный принцип: приватная сеть, пользователь сам выбирает что раскрыть. См. project memory `project_privacy_default`.
|
|||
|
|
|
|||
|
|
**Protocol params**
|
|||
|
|
Часть Genesis Decree: размеры подписей, тайминги, лимиты (`max_protocol_payload_bytes`, `max_sf_ciphertext_bytes`, `bootstrap_pow_difficulty` и т.п.). Меняются только через hard fork.
|
|||
|
|
|
|||
|
|
## Р
|
|||
|
|
|
|||
|
|
**Role** (Роль)
|
|||
|
|
Структурированный промпт для ИИ-агента, формализующий задачу. В Montana 4+ ролей: архитектор спеки, критик спеки, архитектор кода, критик кода. См. `КАРТА-РОЛЕЙ.md`.
|
|||
|
|
|
|||
|
|
## С
|
|||
|
|
|
|||
|
|
**Scale baseline 1B+**
|
|||
|
|
Все архитектурные решения проверяются на ≥1 миллиард активных пользователей. Механизмы которые не масштабируются отбрасываются. См. project memory `project_montana_scale_1b`.
|
|||
|
|
|
|||
|
|
**Selection / Lottery** (Селекция / Лотерея)
|
|||
|
|
Детерминированный выбор лидера для следующего blockround. Формула: `sort_key = H(VDF_output || node_pubkey || ...)`. Узел с минимальным sort_key — лидер.
|
|||
|
|
|
|||
|
|
**SSOT** (Single Source of Truth)
|
|||
|
|
Глобальный инвариант [C-1]: каждая значимая сущность (версия, константа, формат) живёт ровно в одном месте. Дублирование запрещено. Ссылка вместо копии.
|
|||
|
|
|
|||
|
|
**Store-and-Forward**
|
|||
|
|
Сетевой слой: если получатель оффлайн, сообщение буферизуется промежуточным узлом и доставляется позже.
|
|||
|
|
**Где:** `mt-net::store_forward` модуль.
|
|||
|
|
|
|||
|
|
## Т
|
|||
|
|
|
|||
|
|
**TimeChain** (Цепочка времени)
|
|||
|
|
Последовательная цепочка VDF-хешей. Доказательство «прошло время T». Не blockchain, не DAG — просто длинная цепочка SHA-256(SHA-256(...(seed))) с длиной D.
|
|||
|
|
**Где:** `mt-vdf` крейт, спека «TimeChain layer».
|
|||
|
|
|
|||
|
|
**Threat Model** (Модель угроз)
|
|||
|
|
Структурированное описание атак и mitigation. В спеке — 7×7 matrix для сетевого слоя.
|
|||
|
|
**Где:** спека раздел «Threat Model».
|
|||
|
|
|
|||
|
|
## У
|
|||
|
|
|
|||
|
|
**Узел (Node)**
|
|||
|
|
Участник сети Montana. Каждый узел имеет identity (pubkey), может публиковать NodeRecord, участвовать в селекции, релеить сообщения.
|
|||
|
|
|
|||
|
|
## Ф
|
|||
|
|
|
|||
|
|
**FIPS 203 / 204** (Federal Information Processing Standards)
|
|||
|
|
Стандарты NIST для постквантовой криптографии. FIPS 203 — ML-KEM, FIPS 204 — ML-DSA.
|
|||
|
|
|
|||
|
|
**FN-DSA** см. ML-DSA.
|
|||
|
|
|
|||
|
|
## Ч
|
|||
|
|
|
|||
|
|
**Chain length** (Длина цепочки)
|
|||
|
|
Количество VDF-итераций. В прозе — «длина цепочки», в коде — `chain_length`.
|
|||
|
|
|
|||
|
|
## Ш
|
|||
|
|
|
|||
|
|
**SHA-256**
|
|||
|
|
Хеш-функция, основа VDF в Montana. Итерируется D раз для создания TimeChain.
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
**Время чтения:** ~5 минут.
|
|||
|
|
**Следующий шаг:** `КАРТА-РОЛЕЙ.md`.
|