Аннотация

Рекурсивная проверяющая схема должна помещаться в следующее доказательство того же аутентифицированного класса. Исследование формулирует критерий принятия в неподвижной точке, замыкает цепочку из двух звеньев в классе на 2^23 позиций, фиксирует два эксперимента с реализацией и отделяет механику рекурсии от прикладной семантики блока.

Проверка неподвижной точки

Само по себе встраивание проверяющей стороны в доказательство ещё не создаёт рекурсию. Отношение следующего шага должно содержать проверяющую схему того же аутентифицированного класса и вновь выдавать ту же публичную структуру. Иначе схема растёт на каждом шаге либо завершается нативным результатом, который уже нельзя продолжить рекурсивно.

Здесь отношение — вычисление, заданное ограничениями доказательства. Класс доказательства фиксирует матрицу этих ограничений, структуру публичного входа и выхода и параметры самого доказательства. Рекурсия достигает неподвижной точки, только если экземпляр класса способен проверить доказательство того же класса, не меняя ни один из этих объектов.

В эксперименте использовался прямой критерий приёмки:

π₀ (база) → π₁ (проверяет π₀) → π₂ (проверяет π₁)

Обе связи должны были использовать один класс, один идентификатор матрицы и одну форму публичного входа и выхода. Наименьший измеренный класс, замкнувшийся в этой проверке, имел область ограничений из 223 позиций поля. Это результат по вместимости, а не параметр безопасности.

Воспроизведение проверяющей стороны BaseFold внутри отношения

BaseFold — система полиномиальных обязательств и открытий, используемая рекурсивным доказательством. Её нативная проверяющая сторона получает обязательства, сообщения раундов, вызовы из транскрипта, открытия по запросам и пути аутентификации Merkle. Рекурсивное отношение воспроизводит каждый шаг в FieldR1cs — представлении ограничений над двоичным полем, которое позволяет выразить нативные операции проверки внутри доказательства, — а не принимает логический результат, вычисленный основной программой.

  1. арифметика проверяющей стороны выражена над GF(2128);
  2. трасса транскрипта поглощает те же сообщения и выводит те же случайные вызовы;
  3. публичный ввод-вывод связывает утверждения предшественника и преемника в соседних звеньях;
  4. дайджест матрицы однозначно задаёт воспроизводимый класс проверяющей схемы.
Идентичность протокола

Проверяющая схема с иным порядком байтов, правилом дополнения или расписанием вызовов задаёт уже другой протокол. Рекурсивная проверка должна связывать ровно те же байты доказательства и то же утверждение, которые принимает нативная проверяющая сторона.

Рекурсивная механика отдельно от семантики блока

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

Такое разделение позволяет отнести каждый результат к одной конкретной границе. Рекурсивное замыкание можно оценивать, не смешивая его с семантикой блока, а прикладные правила — компоновать, не меняя незаметно класс рекурсии.

Две проверки реализации

Замыкание класса также выявило стоимость реализации и требования к границе транскрипта, которых не показывает измерение нативной проверяющей стороны:

ПроверкаНаблюдаемый результатВывод
Повторное использование дайджеста утверждения классаКласс на 224 позиций: 206 с → 36 сФиксированный для класса дайджест многократно вычислялся заново при обработке свидетеля
Финализация транскрипта переменной длиныМутация границы отличила частичное поглощение от полной финализацииПоследний неполный блок поглощаемых данных требует явного дополнения и финализации

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

Принятые инварианты

  • Каждое звено проверяет предшественника того же аутентифицированного класса.
  • Базовый случай устанавливает начальное утверждение, не обходя идентичность класса.
  • Соседние звенья согласуются по точным публичным начальным и конечным утверждениям.
  • Случайные вызовы транскрипта выводятся внутри проверяемой трассы.
  • Нативный терминал проверяет то же отношение, которое воспроизводится рекурсивно.

Результат

Класс 223 замкнулся при повторном применении проверяющей схемы. После появления этой фиксированной формы семантику блока стало возможно добавлять и оптимизировать без роста размера доказательства или геометрии проверки с возрастом цепи. Полученное правило проектирования применимо шире: сначала установите рекурсивную неподвижную точку и лишь затем присоединяйте крупнейшее отношение приложения.