В исследовании сравниваются две полностью реализованные архитектуры. В первой блок входил в каноническую цепь до завершения рекурсивного доказательства, а трёхэтапный фоновый конвейер позднее строил доказательство блока, включал его в рекурсивную историю и продвигал отдельную доказанную вершину. Во второй блок, соответствующий терминал HistoryStep, State и индексы фиксируются как единый атомарный результат. Это переносит подготовку доказательства в критический путь майнинга, но устраняет сохраняемую очередь, частичное продвижение и неоднозначное восстановление: на каждой принятой высоте блок и его рекурсивное доказательство всегда существуют вместе.
Когда блок можно считать принятым?
State — аутентифицированный набор текущих непотраченных выходов и счётчиков консенсуса. HistoryStep — рекурсивный терминал, который доказывает точный переход одного блока от родительского State к дочернему и проверяет предыдущий терминал. Исследование отвечает на простой вопрос: может ли блок войти в каноническую цепь до готовности своего HistoryStep или оба объекта должны приниматься одновременно? Обе архитектуры были реализованы для сравнения автоматов состояний консенсуса, поведения после перезапуска и критического пути майнинга.
Эксперимент 1. Фоновый конвейер доказательств
В эксперименте блоки распределялись по четырём фиксированным классам ёмкости доказательства: B8, B32, B64 и B255. Число в названии означало максимальное количество пользовательских транзакций, которое мог доказать этот класс. Для каждого класса одна криптографически аутентифицированная матрица системы ограничений задавала переход блока, а другая — включение доказательства блока в рекурсивную историю. Девятая матрица задавала начало цепи от генезиса.
Рекурсивное отношение связи — это система ограничений, которая проверяет доказательство одного блока вместе с предыдущим HistoryStep и создаёт следующее звено доказанной истории. Все четыре таких отношения использовали параметр m = 22. Здесь m — двоичный логарифм размера дополненной области свидетеля и ограничений: каждое отношение занимало 2^22 позиций поля. Затем работа проходила три этапа, промежуточное состояние которых сохранялось на диске:
Три меньших класса — для блоков не более чем с 64 пользовательскими транзакциями — позволяли одновременно обрабатывать до трёх высот. Максимальный класс B255, рассчитанный на 255 пользовательских транзакций, обрабатывал по одной высоте из-за большей потребности в памяти. Параллельная работа повышала пропускную способность, но в консенсусе появлялись две позиции: вершина канонической цепи и вершина, уже охваченная рекурсивными доказательствами. Сохраняемые задания, строго последовательное продвижение, восстановление после перезапуска и частичное состояние конвейера требовались только для согласования этих двух позиций.
Эксперимент 2. Атомарные PoW и HistoryStep
Альтернативная архитектура определяет одну принимаемую единицу:
Кандидат не может изменить State, создать награду или быть объявлен сети, пока терминал не свяжет его точный семантический заголовок и переход State. Байты блока, терминал, State и индексы чеков фиксируются атомарно. Поэтому после перезапуска восстанавливается либо весь пакет, либо отсутствие блока на этой высоте.
Сравнение автоматов состояний
| Свойство | Фоновый конвейер | Атомарный HistoryStep |
|---|---|---|
| Прогресс консенсуса | Вершина цепи и рекурсивно доказанная вершина | Одна принятая высота |
| Долговечные промежуточные задания | Состояния блока, связи и продвижения | Нет |
| Сценарии перезапуска | Восстановить и завершить частичный конвейер | Полный пакет либо отсутствующая высота |
| Задержка доказательства | Может отставать от производства блоков | Оплачивается до принятия |
| Сетевой объект | Блок и более позднее состояние покрытия | Один полный пакет |
Компромисс
Атомарность не делает доказательство бесплатным. Детерминированная подготовка HistoryStep переходит в путь майнинга; её бюджет должен позволять поддерживаемому оборудованию выпускать кандидаты в темпе сети. Поиск nonce для proof of work остаётся вероятностным и зависит от сложности: это не фиксированная локальная задача на пятнадцать секунд. Измерения классов доказательств приведены отдельно в статье «Почему HistoryStep использует два класса доказательств».
Преимущество заключается не в чистой скорости, а в устранении целого автомата очереди, состояние которого влияло на консенсус.
Результат
Если рекурсивное доказательство определяет полную валидность блока, оно должно быть частью принимаемого объекта блока. Фоновое доказательство уместно для необязательных индексов и кэшей, но не для второго, видимого консенсусу состояния прогресса.