Что такое доказательство с нулевым разрешением в криптографии?

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

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

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

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

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

Как это работает? 


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

Простой пример. Есть табличка с игрой в судоку. Мы хотим доказать, что у нас есть решения игры в судоку без разглашения этого решения. Доказывающий заменяет все числа в таблице на полную переустановку (каждое число от 1 до 9 заменяется другими числами в последовательности, известной доказывающему). После этого таблица закрывается белым листом и доказывающий предлагает проверяющему выбрать либо колонку, либо строчку, которую нужно раскрыть. Доказывающему приходит челлендж - выбор строки или колонки - она открывает ее, и проверяющий видит наличие у второй стороны полную перестановку. Этот процесс можно повторять много раз, и всегда у доказывающего будет доказательства. Обмануть вторую сторону невозможно. 

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

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

Добавить комментарий

ПОПУЛЯРНЫЕ