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