Аннотация

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

Согласованность не доказывает связь с исходными данными

Полиномиальное обязательство фиксирует один или несколько столбцов до того, как у них запрашиваются значения. Чередующееся смешанное открытие использует вызов Fiat–Shamir γ, выведенный из всех предшествующих сообщений протокола, чтобы ответить сразу за несколько таких столбцов. Компактный FRI — применяемая здесь проверка малой степени — устанавливает, что объединённый многочлен C принимает заявленное значение в основной точке. Его оракул — кодированная таблица, из которой проверяющая сторона запрашивает отдельные позиции вместо чтения целиком. При анализе конструкции это алгебраическое утверждение намеренно отделялось от второго требования: комбинированный оракул должен быть получен именно из столбцов, указанных исходным обязательством.

Он доказывал:

∃ low-degree C such that C(r) = Σ γi · vi

Приложению требовалось более сильное утверждение:

C(x) = Σ γi · committed_coli(x)

Конструкция со значениями, привязанными к транскрипту протокола, но без аутентификации исходных данных доказывает первое утверждение, но не второе. Поэтому приведённая ниже проверка A/A′ служила исходным критерием конструкции, а не обнаруженной после внедрения уязвимостью.

Обязательство к A, открытие из A′

Тест с намеренной подменой компактен:

commit A
build all_openings and the compact FRI oracle from A′
verify using Com(A)

Если протокол открытия проверяет только оракул малой степени и объединённое заявленное значение, проверяющая сторона не получает доказательства на уровне запросов, что оракул был закодирован из A. Недобросовестно сформированный источник может быть внутренне согласованным и при этом не иметь отношения к обязательству, переданному вызывающей стороной.

Результат по безопасности

Добавление в Fiat–Shamir дополнительных корней Merkle или компактных списков таких корней не устраняет эту атаку. Привязка транскрипта фиксирует вызов после сообщений, но не доказывает происхождение одного объекта обязательства из другого.

Обязательство к закодированному источнику

Завершённая конструкция дополняет чередующееся обязательство корнем дерева над закодированными исходными столбцами. В эксперименте использовался разделённый по доменам корень Merkle на основе BLAKE3, усечённый до 128 бит. Для каждого столбца обязательства лист содержал пару позиций кодового слова, совместно запрашиваемых по одному индексу FRI:

leaf(log_rows, n_cols, index) =
  H(domain || shape || index ||
    col_0[pos0] || col_0[pos1] || ... || col_n[pos0] || col_n[pos1])

Доказывающая сторона сохраняла и закодированные столбцы, и дерево исходных данных. Это необходимая стоимость хранения: без закодированного источника она не смогла бы впоследствии ответить на общие запросы, связывающие оракул FRI с обязательством.

Одни и те же индексы запросов

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

ОбязательствоКорень источникаЗакодированные столбцы зафиксированы
Компактный FRIКорни раундов + финальное кодовое словоОракул малой степени зафиксирован
Один выборОбщие индексы запросовПути FRI и источника проверяются совместно

В каждой выбранной позиции путь Merkle открывает символы закодированных исходных данных. Правило тензорной свёртки протокола объединяет эти символы в значение, ожидаемое компактным FRI. Корни слоёв свёртки и открытия пар позиций сохраняют эту связь на всех слоях FRI.

Точное утверждение

Для вызывающей стороны, использующей API смешанного открытия согласно спецификации, принятие означает — с учётом заявленной ошибки корректности — что каждое возвращённое основное открытие является значением многолинейного продолжения (MLE) столбца, зафиксированного чередующимся обязательством.

Здесь важна граница утверждения. Теорема о самом примитиве относится к основной точке. Вторичные утверждения проверяются по форме и связываются транскриптом внутри смешанного открытия, однако их связь с другими точками вычисления следует из внешней многоточечной редукции или редукции по срезам, выполняемой вызывающей стороной. Заявление, будто схема полиномиальных обязательств (PCS) самостоятельно доказывает произвольные вторичные открытия, переоценивало бы возможности примитива.

Тесты, отличающие привязку от выполнимости

Решающий тест создаёт обязательство к A, строит остальную часть доказательства из A′ и требует отказа. Дополнительные мутации меняют символы источника, свёрнутые символы и пути Merkle. Некоторые из них сохраняют локально выполнимую алгебраическую трассу и отвергаются только при проверке открытия источника относительно обязательства.

Этот подход применим и к другим системам доказательств. Недостаточно изменить ограничение и проверить, что доказательство отклонено. Следует менять объект по другую сторону границы обязательства, сохраняя внутреннее вычисление согласованным; иначе тест может вообще не затронуть проверяемое свойство привязки.

Стоимость при рекурсивной композиции

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

Граница, которую обязана замкнуть проверяющая сторона

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

Любая композиция полиномиальных обязательств требует явного пути от терминальных утверждений об оценках через запрашиваемый оракул к исходному источнику обязательства. Если такого пути нет, дополнительное поглощение Fiat–Shamir свидетельствует о согласованности, но не о происхождении.