Купить крипто
Рынки
Спот
ФьючерсыBTC
Сбережения
Центр событий
Хаб наград
Еще
Фестиваль с 0 комиссией
Трансформация Фиата — Шамира: Что такое трансформация Фиата — Шамира?Трансформация Фиата — Шамира — это криптографический метод, который преобразует некоторые интерактивные протоколы доказательства в неинтерактивные доказательстваТрансформация Фиата — Шамира: Что такое трансформация Фиата — Шамира?Трансформация Фиата — Шамира — это криптографический метод, который преобразует некоторые интерактивные протоколы доказательства в неинтерактивные доказательства

Трансформация Фиата — Шамира

2026/10/13 15:34
#Advanced
Humanity
H$0.05639+1.32%
PX
PX$0.0117-2.50%
Линк
LINK$11.977+1.46%
PUBLIC
PUBLIC$0.005766-1.73%
Gravity
G$0.003579-0.19%

Что такое трансформация Фиата — Шамира?

Трансформация Фиата — Шамира — это криптографический метод, который преобразует некоторые интерактивные протоколы доказательства в неинтерактивные доказательства или цифровые подписи.

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

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

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

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

Амос Фиат и Ади Шамир представили этот подход в своей работе 1986 года «Как доказать свою личность: практические решения задач идентификации и подписи».

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

Неинтерактивные доказательства можно включать в транзакции, блоки, вызовы смарт-контрактов, доказательства роллапов, подписи и кроссчейн-сообщения.

Какую задачу решает трансформация Фиата — Шамира?

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

Сначала доказывающая сторона создает обязательство, связанное со скрытой случайностью или секретной информацией.

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

Доказывающая сторона отвечает, используя секретное свидетельство и вызов.

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

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

Позднее транзакцию в блокчейне могут независимо проверить тысячи узлов, которые не участвовали в создании доказательства.

Трансформация Фиата — Шамира заменяет интерактивный случайный вызов проверяющей стороны детерминированным вызовом на основе хеша, который может повторно вычислить каждый проверяющий.

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

Как работает интерактивное доказательство?

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

Доказывающая сторона знает секретное значение, называемое свидетелем.

Публичное утверждение описывает, что именно доказывающая сторона утверждает: каким знанием она обладает или какое вычисление, по ее словам, выполнено корректно.

На первом шаге доказывающая сторона выбирает приватное случайное значение и создает обязательство.

На втором шаге проверяющая сторона генерирует непредсказуемый случайный вызов.

На третьем шаге доказывающая сторона использует свидетель, приватную случайность и вызов для вычисления ответа.

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

Вызов должен быть непредсказуемым в момент создания обязательства.

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

Как работает трансформация Фиата — Шамира?

Трансформация удаляет второе сообщение проверяющей стороны и заменяет его вычислением криптографического хеша.

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

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

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

Доказывающая сторона вычисляет ответ, используя этот вызов и секретный свидетель.

Итоговое неинтерактивное доказательство обычно содержит обязательство и ответ; проверяющая сторона может самостоятельно пересчитать вызов.

Проверяющая сторона восстанавливает транскрипт, вычисляет тот же вызов на основе хеша и выполняет исходную проверку по уравнению протокола.

Упрощенно трансформацию можно представить так:

challenge = Hash(protocol_context || public_statement || commitment || message)

Точный набор входных данных и правила кодирования имеют критическое значение для безопасности.

Пример протокола Шнорра

Протокол идентификации Шнорра наглядно показывает, как работает трансформация Фиата — Шамира.

Предположим, что циклическая группа имеет генератор

g
и порядок
q
.

У доказывающей стороны есть приватный ключ

x
и публичный ключ
Y = g^x
.

Она хочет доказать знание

x
, не раскрывая его.

В интерактивном протоколе доказывающая сторона выбирает случайное значение

r
и отправляет обязательство
R = g^r
.

Проверяющая сторона отвечает случайным вызовом

c
.

Доказывающая сторона вычисляет

s = r + c × x mod q
.

Проверяющая сторона проверяет равенство

g^s = R × Y^c
.

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

Применение трансформации Фиата — Шамира к протоколу Шнорра

В неинтерактивном варианте вызов, который генерировала проверяющая сторона, заменяется хешем.

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

c = Hash(context || Y || R || message)
.

Затем она вычисляет

s = r + c × x mod q
.

Доказательство или подпись содержит обязательство

R
и ответ
s
.

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

Доказательство принимается, если уравнение проверки подписи Шнорра выполняется.

В RFC 8235 описано неинтерактивное доказательство с нулевым разглашением на основе протокола идентификации Шнорра из трех шагов, преобразованного методом Фиата — Шамира.

Как трансформация создает цифровую подпись

Доказательство идентификации показывает, что доказывающая сторона знает секрет, связанный с публичной идентичностью.

Чтобы создать цифровую подпись, вызов также связывается с конкретным сообщением.

При изменении сообщения меняется результат хеширования, а значит, и вызов.

Как правило, доказательство, созданное для одной транзакции, нельзя повторно использовать в качестве действительной подписи для другой.

Ответ подписывающей стороны подтверждает знание приватного ключа и связывает это знание с подписываемым сообщением.

Преобразование протокола идентификации в схему цифровой подписи — одно из важнейших применений трансформации Фиата — Шамира.

Трансформация Фиата — Шамира и подписи Шнорра в Bitcoin

В BIP 340 определены подписи Шнорра для эллиптической кривой secp256k1.

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

Это соответствует схеме неинтерактивной подписи Шнорра, связанной с трансформацией Фиата — Шамира.

В BIP 340 также применяются тегированные хеши, позволяющие отделять эти вычисления от других операций протокола.

При тегированном хешировании входные данные дополняются значением, полученным из специальной для протокола метки.

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

Подписи BIP 340 используются в правилах транзакций Taproot в Bitcoin.

Сама трансформация шире, чем Bitcoin: ее можно применять во многих системах доказательств, алгебраических группах и криптографических схемах.

Трансформация Фиата — Шамира в системах доказательств с нулевым разглашением

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

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

Проверяющая сторона отвечает случайными элементами поля или позициями для запросов.

Трансформация Фиата — Шамира позволяет получать такие вызовы из транскрипта, не требуя присутствия проверяющей стороны в сети.

Благодаря этому доказательство можно создать офчейн, а затем проверить узлом блокчейна или смарт-контрактом.

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

Трансформация Фиата — Шамира в Halo2

В Halo2 протокол доказательства описывается как интерактивный для целей анализа, но реализуется в неинтерактивной форме с помощью трансформации Фиата — Шамира.

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

Результаты криптографического хеширования преобразуются в вызовы проверяющей стороны для полиномиальных вычислений и проверок доказательства.

В документации протокола Halo2 объясняется, что интерактивный аргумент с публичными случайными вызовами становится неинтерактивным, если заменить проверяющую сторону криптографически стойкой хеш-функцией.

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

Это показывает, что безопасное применение трансформации Фиата — Шамира требует большего, чем замена генератора случайных чисел одним вызовом хеш-функции.

Трансформация Фиата — Шамира в STARK-доказательствах

В системах доказательств STARK предусмотрено несколько раундов обязательств и вызовов проверяющей стороны.

Вызовы могут определять случайные коэффициенты, точки вычисления полиномов и запросы для проверки малой степени.

Канал Фиата — Шамира получает эту неинтерактивную случайность из меняющегося транскрипта доказательства.

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

Проверяющая сторона повторяет те же операции с транскриптом и получает те же вызовы.

В документации по созданию STARK-доказательств описан канал Фиата — Шамира, который генерирует неинтерактивную случайность на протяжении всего процесса построения доказательства.

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

Что такое модель случайного оракула?

Модель случайного оракула — это модель безопасности, в которой хеш-функция рассматривается как идеальная публичная случайная функция.

Каждому уникальному входному значению соответствует независимый случайный результат.

При повторной подаче одного и того же входного значения результат всегда остается тем же.

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

Реальные хеш-функции — это детерминированные алгоритмы, а не идеальные случайные оракулы.

Доказательство безопасности трансформации Фиата — Шамира в модели случайного оракула показывает, что протокол безопасен при таком идеализированном предположении.

Затем на практике вместо оракула используют реальную криптографическую хеш-функцию, которая, как предполагается, достаточно хорошо соответствует модели применительно к данному протоколу.

Модель случайного оракула полезна, но доказательство в этой модели не является безусловным доказательством безопасности любой реализации хеш-функции.

Почему хеш должен учитывать весь транскрипт?

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

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

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

Например, доказательство может подойти для двух публичных ключей, приложений, сетей блокчейна или этапов протокола, хотя должно относиться только к одному из них.

В многораундовом доказательстве каждый вызов должен зависеть от транскрипта, накопленного до его получения.

Доказывающая сторона должна зафиксировать предыдущие данные до того, как узнает полученный из хеша вызов.

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

Что такое разделение доменов?

Разделение доменов гарантирует, что одну операцию хеширования нельзя спутать с другой операцией, использующей ту же хеш-функцию.

В начало данных протокол может добавлять уникальную метку: название, версию, сеть, этап доказательства или тип операции.

Эта метка изменяет входные данные для хеширования, даже если остальная их часть совпадает.

Без разделения доменов значение, созданное как вызов в одном протоколе, может быть интерпретировано в другом как одноразовое значение, обязательство или иной вызов.

Разделение доменов особенно важно в программном обеспечении криптовалют, где одну хеш-функцию могут использовать для идентификаторов транзакций, подписей, деревьев Меркла, получения ключей и транскриптов доказательств.

Практический пример такой защиты — тегированное хеширование, специально предусмотренное протоколом в BIP 340.

Почему важно каноническое кодирование?

Доказывающая и проверяющая стороны должны хешировать в точности одну и ту же последовательность байтов.

Иногда математическое значение можно представить в нескольких допустимых форматах байтов.

Целые числа могут кодироваться с разной длиной, порядком байтов или начальными нулями.

Точки эллиптической кривой могут иметь сжатые, несжатые или другие некорректные варианты кодирования.

Списки могут стать неоднозначными, если длина элементов и их границы закодированы неясно.

Каноническая сериализация задает единственное допустимое представление каждого корректного значения транскрипта.

Префиксы длины, метки типов, поля фиксированной ширины и строгие правила декодирования помогают исключить неоднозначность.

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

Длина вызова и надежность доказательства

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

При однобитовом вызове вероятность угадать правильный ответ в одном раунде относительно высока.

Повторение протокола или использование более длинного вызова снижает вероятность ошибки надежности.

Выход хеш-функции необходимо преобразовать в вызов достаточного размера, соответствующего требуемому уровню безопасности.

Чрезмерно сильное усечение вызова может ослабить доказательство.

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

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

Что такое подбор хеша в трансформации Фиата — Шамира?

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

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

При анализе безопасности необходимо учитывать количество запросов к хеш-функции и размер множества возможных вызовов.

Достаточно большое множество вызовов при принятых предположениях делает эффективный подбор вычислительно нецелесообразным.

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

В системах доказательств на основе трансформации Фиата — Шамира необходимо анализировать такое поведение, а не предполагать, что доказывающая сторона выполнит только один запрос к хеш-функции и поступит честно.

Риски повторного воспроизведения и привязки к контексту

Неинтерактивное доказательство можно скопировать, поскольку это публичный объект данных.

Копирование безвредно, если доказательство подтверждает лишь неизменное публичное утверждение.

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

В транскрипт можно включить идентификатор транзакции, получателя, сети, сеанса, адрес контракта, срок действия или специфическое для приложения одноразовое значение.

Это связывает доказательство с предполагаемым контекстом.

Добавление контекстного значения не поможет, если проверяющая сторона не сверит его с текущим запросом.

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

Обеспечивает ли трансформация Фиата — Шамира нулевое разглашение автоматически?

Нет, трансформация не придает автоматически любому протоколу свойство нулевого разглашения.

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

Преобразованный протокол также необходимо анализировать в рамках выбранной модели безопасности.

Чтобы не раскрыть свидетеля, для обязательств может потребоваться случайное маскирование.

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

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

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

Обеспечивает ли трансформация Фиата — Шамира надежность автоматически?

Нет, безопасное преобразование одного протокола не доказывает безопасность всех похожих протоколов.

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

Входные данные для хеширования и преобразование вызова должны сохранять предполагаемый порядок: сначала обязательство, затем вызов.

Некоторым протоколам после трансформации требуются более сильные предположения или специальные доказательства безопасности.

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

Разработчикам следует использовать проверенную конструкцию с доказательством безопасности, а не применять трансформацию Фиата — Шамира к новому протоколу неформально.

Трансформация Фиата — Шамира и постквантовая криптография

Принцип построения на основе Фиата — Шамира используется и в исследованиях постквантовых подписей.

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

В некоторых решеточных схемах подписи применяется вариант, известный как «Фиат — Шамир с отбраковкой».

Подписывающая сторона может повторить часть процесса, если промежуточный ответ способен раскрыть информацию или не соответствует допустимому распределению.

В NIST FIPS 204 стандартизирован ML-DSA — алгоритм цифровой подписи на основе модульных решеток, разработанный на базе схемы Dilithium.

Наличие постквантовых стандартов подписи не означает, что любые классические доказательства Фиата — Шамира останутся безопасными против квантового компьютера.

Трансформация Фиата — Шамира и квантовая модель случайного оракула

Квантовый противник может запрашивать смоделированный случайный оракул в суперпозиции множества входных значений.

Это отличается от классического противника, который отправляет по одному обычному запросу за раз.

Классические доказательства в модели случайного оракула автоматически не сохраняют силу в квантовой модели случайного оракула, обычно обозначаемой QROM.

Криптографические исследователи разработали дополнительные методы доказательства и условия для анализа конструкций Фиата — Шамира с учетом квантовых атак.

Поэтому заявление о постквантовой безопасности должно опираться на анализ в QROM или другой подходящей модели квантовой безопасности.

Самой по себе замены классической группы на задачу, основанную на решетках, недостаточно.

Трансформация Фиата — Шамира и пороговые подписи

В схемах пороговых подписей полномочия по подписанию распределяются между несколькими участниками.

Необходимое число участников совместно создает одну действительную подпись, не восстанавливая полный приватный ключ в одном месте.

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

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

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

В RFC 9591 определен протокол порогового подписания FROST на основе схемы Шнорра и операции шифронабора, использующие хеш-функции.

Преимущества трансформации Фиата — Шамира

Для совместимых систем доказательств трансформация устраняет необходимость в интерактивном участии проверяющей стороны.

Доказательство можно создать один раз, после чего его смогут независимо проверить многие узлы блокчейна.

Она сокращает число раундов обмена сообщениями и упрощает асинхронную проверку.

Доказательства можно включать в транзакции, блоки, смарт-контракты и распределенные хранилища.

Одно и то же доказательство можно проверить, не предоставляя проверяющей стороне приватную случайность и не поддерживая интерактивный сеанс.

Кроме того, трансформация дает практический способ преобразовать протоколы идентификации в схемы цифровой подписи.

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

Ограничения трансформации Фиата — Шамира

Трансформация обычно опирается на модель случайного оракула.

Она не позволяет безопасно преобразовать любой интерактивный протокол.

Пропуск данных транскрипта и несогласованность кодирования могут создать серьезные уязвимости.

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

Неинтерактивные доказательства можно воспроизводить повторно, если приложение не связывает их с нужным контекстом.

Квантовую безопасность необходимо анализировать отдельно.

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

Создание доказательства может оставаться вычислительно затратным, даже если интерактивное взаимодействие устранено.

Трансформация Фиата — Шамира и интерактивное доказательство

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

Во время взаимодействия проверяющая сторона отправляет новые случайные вызовы.

В доказательстве Фиата — Шамира такие вызовы получают из хеша транскрипта.

Неинтерактивное доказательство проще распространять и проверять асинхронно.

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

Трансформация Фиата — Шамира и неинтерактивное доказательство с нулевым разглашением

Трансформация Фиата — Шамира — один из способов построить неинтерактивное доказательство.

Неинтерактивное доказательство с нулевым разглашением (NIZK) — более широкая категория доказательств, для которых не требуется взаимодействие с проверяющей стороной в реальном времени и которые не раскрывают защищенное свидетельство.

В некоторых NIZK используется трансформация Фиата — Шамира, в других — общая строка параметров, доверенная или прозрачная настройка либо иные криптографические методы.

Термин «неинтерактивное доказательство» сам по себе не указывает, каким методом оно создано.

Трансформация Фиата — Шамира и цифровая подпись

Цифровая подпись подтверждает подлинность сообщения с помощью приватного ключа и открытого ключа для проверки.

Трансформация Фиата — Шамира — это метод построения, который позволяет преобразовать некоторые протоколы идентификации в схемы подписи.

Не каждая цифровая подпись создается с помощью трансформации Фиата — Шамира.

Не каждое доказательство Фиата — Шамира предназначено для использования в качестве цифровой подписи.

Доказательство может подтверждать знание свидетеля или корректность вычисления, не подтверждая личность человека или кошелька.

Трансформация Фиата — Шамира и хеширование в эллиптическую кривую

Хеширование в эллиптическую кривую преобразует произвольные входные данные в корректную точку эллиптической кривой.

Трансформация Фиата — Шамира преобразует данные транскрипта во вызовы проверяющей стороны.

В одной системе доказательств могут использоваться оба процесса.

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

Для этих процессов нужны отдельные правила разделения доменов и кодирования.

Трансформация Фиата — Шамира и commit-reveal

В протоколе commit-reveal участник сначала публикует обязательство, а позднее раскрывает скрытое значение.

Такой механизм может уменьшить возможность заранее узнать или изменить общую случайность.

Трансформация Фиата — Шамира не ждет последующего публичного раскрытия случайного значения.

Она детерминированно создает вызов на основе уже имеющегося транскрипта.

Commit-reveal и трансформация Фиата — Шамира решают разные задачи координации, хотя в обоих случаях используются криптографические обязательства и хеши.

Рекомендации по реализации

Разработчикам следует использовать систему доказательств, для которой опубликован и прошел проверку анализ безопасности трансформации Фиата — Шамира.

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

Для каждого протокола и этапа доказательства необходимо использовать уникальное разделение доменов.

Все значения должны сериализоваться каноническим образом, с явным указанием типов и границ длины.

Обязательства необходимо добавить в транскрипт до генерации зависящих от них вызовов.

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

Некорректные точки, неканонические скаляры, запрещенные значения полей и неправильно сформированные транскрипты необходимо отклонять.

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

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

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

Распространенные ошибки при реализации трансформации Фиата — Шамира

Одна из ошибок — хешировать обязательство, не хешируя публичное утверждение.

Другая ошибка — не включить сообщение, если доказательство предназначено для использования в качестве подписи.

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

Использование одной доменной метки в несвязанных протоколах может вызвать путаницу между ними.

Если вычислить следующий вызов, не добавив в транскрипт все предыдущие сообщения доказывающей стороны, будет нарушен порядок транскрипта.

Прямое преобразование короткого хеша в большое поле может привести к недостаточной энтропии вызова.

Прием неканонических точек кривой или скаляров может привести к тому, что разные реализации будут хешировать разные представления.

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

Еще одна серьезная ошибка — считать, что классическое доказательство автоматически обеспечивает постквантовую безопасность.

Почему трансформация Фиата — Шамира важна для криптовалют

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

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

Трансформация Фиата — Шамира позволяет оформить интерактивное криптографическое доказательство в виде статичного объекта.

Благодаря ей поддерживаются компактные подписи, системы защиты приватности, роллапы с доказательствами с нулевым разглашением, проверяемое исполнение смарт-контрактов, пороговые кошельки и другие блокчейн-приложения.

Трансформация также иллюстрирует важный принцип проектирования криптосистем.

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

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

Часто задаваемые вопросы

Что делает трансформация Фиата — Шамира?

В некоторых интерактивных протоколах она заменяет случайные вызовы проверяющей стороны вызовами, полученными путем хеширования транскрипта.

Почему трансформация Фиата — Шамира полезна для криптовалют?

Она позволяет узлам блокчейна позднее проверять доказательства и подписи без общения с доказывающей стороной в реальном времени.

Кто создал трансформацию Фиата — Шамира?

Амос Фиат и Ади Шамир представили этот метод в работе, опубликованной в 1986 году.

Является ли трансформация Фиата — Шамира хеш-функцией?

Нет, это преобразование протокола, в котором хеш-функция используется для генерации вызовов проверяющей стороны.

Что такое интерактивное доказательство?

Это протокол, в котором доказывающая и проверяющая стороны обмениваются обязательствами, вызовами и ответами.

Что такое протокол с публичными случайными вызовами?

Это интерактивный протокол, в котором сообщения проверяющей стороны содержат публично видимые случайные вызовы.

Что такое транскрипт Фиата — Шамира?

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

Что такое модель случайного оракула?

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

Является ли реальная хеш-функция случайным оракулом?

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

Обеспечивает ли трансформация Фиата — Шамира нулевое разглашение автоматически?

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

Создает ли трансформация Фиата — Шамира цифровую подпись?

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

Использует ли Bitcoin принцип Фиата — Шамира?

В подписях Шнорра BIP 340 используется вызов на основе хеша, связывающий обязательство на основе одноразового значения, публичный ключ и сообщение.

Используется ли трансформация Фиата — Шамира в роллапах с доказательствами с нулевым разглашением?

Во многих системах доказательств для роллапов вызовы транскрипта на основе принципа Фиата — Шамира превращают интерактивные протоколы в неинтерактивные.

Используется ли трансформация Фиата — Шамира в STARK?

Да, доказывающая и проверяющая стороны STARK могут использовать канал Фиата — Шамира для получения неинтерактивных вызовов из обязательств.

Используется ли трансформация Фиата — Шамира в Halo2?

Да, Halo2 преобразует интерактивное описание доказательства в неинтерактивный аргумент с помощью трансформации Фиата — Шамира.

Что такое разделение доменов?

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

Почему необходимо хешировать публичный ключ?

Хеширование публичного ключа связывает доказательство или подпись с предполагаемой идентичностью и помогает предотвратить подмену ключа или атаки с использованием другого ключа.

Почему необходимо хешировать сообщение?

Включение сообщения не позволяет повторно использовать подпись, созданную для другого сообщения.

Что такое подбор вызова?

Подбор вызова — это многократное создание обязательств, пока хеш транскрипта не даст доказывающей стороне выгодный вызов.

Можно ли повторно воспроизвести доказательства Фиата — Шамира?

Публичное доказательство можно скопировать, поэтому в протоколах, требующих актуальности, необходимо включать и проверять подходящий контекст сеанса или транзакции.

Что такое каноническая сериализация?

Каноническая сериализация задает единственное допустимое представление в байтах для каждого значения транскрипта.

Почему важен порядок транскрипта?

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

Можно ли применять трансформацию Фиата — Шамира к эллиптическим кривым?

Да, ее часто используют в доказательствах и подписях Шнорра в группах эллиптических кривых.

Можно ли использовать трансформацию Фиата — Шамира в постквантовой криптографии?

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

Что такое квантовая модель случайного оракула?

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

Остается ли классическое доказательство безопасности действительным против квантовых атак?

Не автоматически: такое доказательство может не учитывать квантовые запросы к оракулу или ограничения квантового извлечения информации.

Что такое «Фиат — Шамир с отбраковкой»?

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

Требуется ли для трансформации Фиата — Шамира доверенная настройка?

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

Могут ли смарт-контракты проверять доказательства Фиата — Шамира?

Да, если контракт может воспроизвести хеш транскрипта и эффективно проверить уравнения доказательства.

Каков главный риск при реализации?

К основным рискам относятся неполная привязка транскрипта, неоднозначное кодирование, недостаточное разделение доменов, ненадежная генерация одноразовых значений и неподтвержденные предположения о безопасности.

Заключение

Трансформация Фиата — Шамира преобразует совместимые интерактивные протоколы с публичными случайными вызовами в неинтерактивные доказательства или цифровые подписи.

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

Благодаря этому доказательство можно создать один раз, а затем независимо проверить узлам блокчейна, кошелькам, смарт-контрактам и другим криптоприложениям.

Трансформация используется в подписях Шнорра, системах доказательств с нулевым разглашением, STARK, протоколах типа Halo2, пороговых подписях и исследованиях постквантовых подписей.

Безопасность зависит от свойств исходного интерактивного протокола и предположений, на которых основано моделирование хеш-функции.

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

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

Трансформация Фиата — Шамира не является автоматическим способом повысить безопасность любого протокола доказательства.

Это мощная конструкция, безопасность которой зависит от строгого проектирования протокола, дисциплины при реализации и анализа как классических, так и квантовых атак.
BTC ETFs See $679M in Outflows
BTC ETFs See $679M in OutflowsBTC ETFs See $679M in Outflows
Citi sees BTC at $113K. What do institutions see?

В тренде

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

Недавно добавленные

Криптовалюты недавно внесенные в листинг и доступные для торговли