Независимые проходы рекурсивного верификатора приводили к росту памяти вместе с числом семейств аутентификации и превысили возможности машины с 30 ГБ ОЗУ. Штатный HistoryStep помещает три группы Link и шесть групп Block в один общий транскрипт и один упорядоченный нерегулярный проход Poseidon2b. Канонические столбцы областей и утверждения о конечных точках сохраняют смысл каждой группы, а дорогая трасса перестановки используется всеми девятью группами совместно.
Эталонная композиция и её предел масштабирования
Poseidon2b представляет собой криптографическую перестановку состояния из четырёх слов, используемую для хеширования и аутентификации данных доказательства. Рекурсивный верификатор воспроизводит несколько семейств аутентификации на Poseidon2b. Каждое семейство объединяет один повторяющийся тип хеш-отношения, например узлы дерева исходных данных, его листья, пары символов, совместно открываемые на слое свёртки, или узлы пути Merkle, а также открытия, связывающие эти данные с обязательством. Исходная композиция выделяла каждому семейству собственное расписание слотов, собственный выбор четырёх слов состояния, передаваемых между слоями, и глубокий проход. Этот проход является трассой ограничений, воспроизводящей все шестьдесят шесть слоёв Poseidon2b для каждого занятого слота. Такая прямая конструкция дала понятную исходную точку для измерения полного графа аутентификации.
Алгебра каждого семейства оставалась простой для анализа. Но измерение полного графа показало, что потребление памяти растёт вместе с числом семейств: каждый независимый проход материализует ещё один крупный набор столбцов трассы. Полная форма из девяти семейств превысила объём памяти машины с 30 ГБ ОЗУ и установила, что независимые проходы образуют непригодную топологию композиции.
«Один проход на семейство» полезен как эталонная конструкция, но требуемая память растёт вместе с числом семейств аутентификации. В штатной композиции дорогой проход перестановки является общим.
Найти общий объект
Каждое семейство в конечном счёте задавало один вопрос: следует ли эта последовательность состояний ширины четыре перестановке Poseidon2b? Семейства различались не перестановкой, а источником входов, фиксированным расписанием и отношением, использующим выходы.
Объединённая конструкция использует один общий домен слотов с фиксированным периодом P. Каждое семейство занимает непересекающийся диапазон внутри периода. Четыре зафиксированных обязательствами столбца передачи состояния C0..C3 содержат четыре слова состояния Poseidon, переходящие из одного слоя в следующий. Эти столбцы, вход прохода и сам проход Poseidon2b являются общими. Различаются только входные столбцы семейств и фиксированные шаблоны.
Локализация уравнений семейств
Объединение доменов создаёт дополнительную проблему. Фиксированный шаблон, изначально заданный на собственном шаге семейства, повторяется периодически. При прямом копировании в общий домен его константы срабатывают в слотах других семейств. Уравнения передачи состояния без селектора также могут читать данные через границу семейства.
Объединяющий примитив заново строит каждый шаблон как таблицу длины P, размещает значения семейства только в назначенном диапазоне, а в остальных позициях записывает нули. Поэтому член семейства исчезает за пределами своей области. Члены без фиксированного множителя получают явный селектор области. Семейства с чистым начальным состоянием расположены так, чтобы их первый активный узел никогда не читал состояние из предыдущей области.
В слоте A активны только члены A. В слоте B активны только члены B. Правая часть не зависит от семейства, поскольку в обоих случаях описывает одно отношение входа перестановки.
Негативная проверка двух семейств
Минимальный интеграционный эксперимент объединил два действительно различных семейства глубоких цепочек: цепочку листа исходных данных и путь Merkle. Один выбор передачи состояния, один глубокий проход и одно общее полиномиальное тождество — сумма локализованных уравнений семейств — прошли через внешнюю схему полиномиальных обязательств (PCS) и границу публичных входов и выходов. Биты направления Merkle сохранили отдельный протокол sumcheck для проверки булевости, но не второй проход перестановки.
Регрессионные тесты меняли входной символ или соседний узел, сохраняя трассу выполнимой. Изменённый столбец обязательства затем отклонялся при проверке открытия. Это существенно: тест подтвердил не только способность объединённой схемы принять созданного ею свидетеля, но и сохранение связи каждого семейства с его обязательством.
Штатная общая композиция
Текущий HistoryStep помещает девять рекурсивных областей в один общий транскрипт. Link предоставляет три группы, Block предоставляет шесть. Все девять групп разделяют:
- одно упорядоченное нерегулярное расписание слотов;
- один 66-слойный проход Poseidon2b;
- одно расписание вызовов пакетирования;
- один канонический набор конечных утверждений, объединяемых во внешней проверке PCS.
Внешний канал после фиксации обязательств выводит три префикса Link и задаёт начальное состояние дочернего канала Block. Дочерний канал обрабатывает упорядоченный проход по девяти группам и завершает шесть суффиксов Block. Его итоговый хеш возвращается во внешний канал до завершения трёх суффиксов Link. Каждая область сохраняет собственные канонические столбцы, зафиксированные обязательствами, но ни одна область не создаёт независимый проход перестановки.
Независимые меры контроля памяти
Единый глобальный проход устранил главный мультипликативный фактор. В отдельных экспериментах матрицы ограничений были переведены в формат хранения разреженных строк (CSR), точно подобраны размеры двух чередующихся рабочих буферов проверяющей схемы полиномиальных обязательств BaseFold, ограничена временная память для проверки линейных ограничений (lincheck), для рабочей области задан жёсткий предел в байтах, а повторяющиеся коэффициенты матрицы закодированы словарём.
Эти изменения решают разные задачи. CSR и словарное кодирование уменьшают статическое представление матриц. Жёсткий предел рабочей памяти контролирует временные выделения. Глобальный проход меняет саму топологию композиции. Общее название «оптимизация памяти» скрыло бы причину, по которой исходный подход не масштабировался.
Область применимости конструкции
Конструкция применима к разнородным семействам трасс, использующим Poseidon2b и допускающим локализацию внутри одного фиксированного домена. Это не компилятор произвольных подвычислений проверяющей стороны. Область применения определена точно: один дорогой общий проход с алгеброй отдельных семейств на входных и выходных границах.
Если множество рекурсивных проверок содержит одно дорогое подвычисление, сначала объедините его для всех проверок и лишь затем оптимизируйте реализацию. Даже ускоренная копия каждого прохода оставила бы память пропорциональной числу семейств.
Почему важно измерять полный граф
Тесты отдельных семейств установили локальную корректность и стоимость каждого семейства. Полный граф аутентификации измерил мультипликативную топологию, которую эти локальные тесты намеренно исключают. Поэтому граница 30 ГБ — измерение композиции, а не дефект Poseidon2b или отдельного семейства. Она объясняет, почему выбранная конструкция сначала разделяет топологию и только затем применяет низкоуровневые меры контроля памяти.