Архитектураdocs/architecture/overview.md

Архитектура

Parano1d переносит каждую обязанность доказательства туда, где уже находится соответствующий свидетель. Кошелёк знает секрет расходования. У майнера есть публичный свидетель — Live State. Полная нода не использует эти данные как свидетель: она проверяет полученные доказательства и материализует доказанные записи.

Proof-native поток блока

Граница доказательств

Кошелёк и майнер доказывают разные утверждения.

Кошелёк доказывает знание 256-битного секрета каждого владельца входа и привязывает авторизацию к полной логической транзакции. Он не доказывает, что вход не потрачен в Live State, поскольку актуальный путь Merkle ему не нужен.

Майнер доказывает публичное утверждение об исполнении: входы существуют, выходные слоты пусты, значения сбалансированы, комиссии соответствуют консенсусу, записи слотов точны, а полученный корень UTXO корректен. Внутри нового доказательства он также проверяет предыдущее терминальное доказательство HistoryStep.

Такое разделение оставляет приватную авторизацию внутри кошелька и одновременно позволяет публичному свидетелю — Live State — измениться между построением транзакции и включением в блок.

Этап Получает Проверяет или доказывает
Кошелёк Секрет и принадлежащие ему UTXO Одну рандомизированную авторизацию, привязанную к логической транзакции
Мемпул Логический PagedSpend Допустимость капсулы, структуры, лимитов, комиссий и резервирований
Майнер Принятые логические транзакции и Live State Точный переход State и рекурсивную непрерывность
Полная нода Блок и терминальное доказательство Корректность HistoryStep, PoW и канонического родителя

Путь транзакции и блока

  1. Кошелёк выбирает активные UTXO и строит один логический PagedSpend.
  2. Он создаёт новую капсулу авторизации для {logical_txid, input_owner}.
  3. Мемпул проверяет полную логическую транзакцию до сохранения и ретрансляции.
  4. Майнер выбирает неконфликтующие транзакции и вычисляет точные записи слотов.
  5. Майнер доказывает отношение блока и предыдущее терминальное доказательство, затем ищет nonce фиксированного заголовка Poseidon2b.
  6. Пиры проверяют атомарный пакет {block, terminal} и применяют его доказанные записи к MDBX.

Ни один пир не повторяет построение доказательства кошельком или исполнение майнера. Майнер не может компенсировать некорректную авторизацию, а вычислительная мощность не может сделать некорректный HistoryStep допустимым.

Рекурсивная непрерывность

Концептуально терминальное доказательство T[h] подтверждает три свойства:

  • блок h удовлетворяет публичному отношению блока;
  • его корень и счётчики State после перехода являются точным результатом доказанных записей;
  • терминальное доказательство T[h-1] проходит проверку, а его аккумулятор задаёт точную границу State перед блоком h.

Следующий блок проверяет T[h] внутри собственного отношения. Корректность цепочки накапливается рекурсивно, тогда как формат терминального доказательства остаётся фиксированным. Между конкурирующими допустимыми ветвями по-прежнему выбирает накопленная работа; рекурсия не заменяет PoW.

Материализация State

Результат проверки — набор канонических записей слотов. Полная нода применяет их к точному разреженному вектору UTXO, а не исполняет логику транзакций заново.

Слоты размещены в сегментах по 2^16 записей. Пустые сегменты виртуальны. Очистка последнего занятого слота удаляет сегмент, а при создании выхода сначала используется свободный слот и только затем расширяется State. Новый creation_id не позволяет старой ссылке снова стать допустимой при повторном использовании того же индекса.

Ноды хранят компактные заголовки для сравнения накопленной работы и последние 18 полных блоков для обычной синхронизации и неглубоких реорганизаций. Старые тела транзакций активному консенсусу не нужны. Чеки сохраняют независимо проверяемое доказательство включения платежа после выхода тела блока из этого окна.

Подключение к сети

Небольшое отставание закрывается сохранёнными полными блоками. При большем отставании подключающаяся нода загружает во временную область заголовки и аутентифицированный снимок State. До установки State снимок проверяет цепочку накопленной работы, финализированную границу и соответствующее терминальное доказательство HistoryStep. Затем обычным способом проверяется недавний суффикс.

Снимок не является доверенной контрольной точкой. Это лишь способ передать State, корень и историческая граница которого аутентифицированы консенсусом.

Граница майнинга

Майнер сначала доказывает все данные, не зависящие от nonce. После этого PoW ищет только 128-битный nonce фиксированного заголовка Poseidon2b. У PoW остаётся одна задача: упорядочивать допустимые переходы State.

Внешний майнер получает неизменяемый одноразовый шаблон и возвращает только nonce. Выбор транзакций, переход State, построение доказательства и ретрансляция блока остаются внутри ноды. После выдачи шаблона внешний вычислитель не может изменить его выплату, транзакции или корень State.

Карта реализации

Компонент Ответственность
noid_tx Логический PagedSpend, идентификаторы транзакций и привязка авторизации
noid_mempool Приём логических транзакций, резервирование конфликтов и политика ретрансляции
noid_miner Выбор транзакций, Live State как свидетель, подготовка блока и PoW
noid_recursive Отношение HistoryStep, проверка терминального доказательства и рекурсия
noid_chain Правила консенсуса, State в MDBX, заголовки, реорганизация и снимки
noid_p2p Ретрансляция GossipSub, обнаружение и протоколы синхронизации
noid_node Координация компонентов во время исполнения, интеграция кошелька и завершение работы
noid_rpc Локальный интерфейс ноды, кошелька и внешнего майнинга

Практическое развёртывание описано в разделе «Запуск ноды в Linux».

Техническая документация ParanO(1)dПоведение консенсуса определяется исходным кодом.