В криптографии доказательство с нулевым разглашением — это протокол, в котором одна сторона (доказывающая) может убедить другую сторону (проверяющую), что некоторое данное утверждение истинно, не передавая проверяющей стороне никакой информации, выходящей за рамки простого факта истинности этого утверждения. [1] Интуиция, лежащая в основе доказательств с нулевым разглашением, заключается в том, что доказать обладание соответствующей информацией тривиально, просто раскрыв ее; сложная часть — доказать это обладание, не раскрывая эту информацию (или какой-либо ее аспект вообще). [2]
Ввиду того, что доказательство какого-либо утверждения может быть получено только при наличии определенной секретной информации, связанной с этим утверждением, проверяющий, даже убедившись в истинности утверждения, тем не менее не должен иметь возможности доказать это утверждение третьим лицам.
Доказательства с нулевым разглашением могут быть интерактивными, что означает, что доказывающий и проверяющий обмениваются сообщениями в соответствии с некоторым протоколом, или неинтерактивными, что означает, что проверяющий убежден одним сообщением доказывающего, и никакое другое общение не требуется. В стандартной модели требуется взаимодействие, за исключением тривиальных доказательств проблем BPP . [3] В обычных моделях случайной строки и случайного оракула существуют неинтерактивные доказательства с нулевым разглашением . Эвристика Фиата–Шамира может использоваться для преобразования определенных интерактивных доказательств с нулевым разглашением в неинтерактивные. [4] [5] [6]
Существует известная история, представляющая основные идеи доказательств с нулевым разглашением, впервые опубликованная в 1990 году Жан-Жаком Кискватером и другими в их статье «Как объяснить вашим детям протоколы с нулевым разглашением». [7] Двумя сторонами в истории доказательства с нулевым разглашением являются Пегги как доказывающий утверждение и Виктор , проверяющий утверждение.
В этой истории Пегги раскрыла секретное слово, используемое для открытия волшебной двери в пещере. Пещера имеет форму кольца, с входом с одной стороны и волшебной дверью, блокирующей противоположную сторону. Виктор хочет узнать, знает ли Пегги секретное слово; но Пегги, будучи очень скрытным человеком, не хочет раскрывать свои знания (секретное слово) Виктору или раскрывать факт своего знания миру в целом.
Они обозначают левый и правый пути от входа как A и B. Сначала Виктор ждет снаружи пещеры, пока Пегги входит. Пегги выбирает либо путь A, либо B; Виктору не разрешается видеть, какой путь она выберет. Затем Виктор входит в пещеру и выкрикивает название пути, которым он хочет, чтобы она воспользовалась, чтобы вернуться, A или B, выбранный наугад. При условии, что она действительно знает волшебное слово, это легко: она открывает дверь, если необходимо, и возвращается по нужному пути.
Однако предположим, что она не знает слова. Тогда она сможет вернуться по названному пути, только если Виктор назовет название того же пути, по которому она вошла. Поскольку Виктор выберет A или B наугад, у нее будет 50% шанс угадать правильно. Если бы они повторили этот трюк много раз, скажем, 20 раз подряд, ее шанс успешно предугадать все запросы Виктора сократился бы до 1 из 2 20 , или 9,56 × 10 −7 .
Таким образом, если Пегги неоднократно появляется на выходе, на котором Виктор называет свое имя, то он может сделать вывод, что весьма вероятно, что Пегги действительно знает секретное слово.
Одно замечание относительно сторонних наблюдателей: даже если Виктор носит скрытую камеру, которая записывает всю транзакцию, единственное, что запишет камера, это в одном случае крик Виктора "А!" и появление Пегги в точке А или в другом случае крик Виктора "Б!" и появление Пегги в точке В. Запись такого типа было бы тривиально подделать любым двум людям (требуется только, чтобы Пегги и Виктор заранее договорились о последовательности букв А и Б, которые будет кричать Виктор). Такая запись, безусловно, никогда не будет убедительной для кого-либо, кроме первоначальных участников. Фактически, даже человек, присутствовавший в качестве наблюдателя на первоначальном эксперименте, не должен был бы быть убежден, поскольку Виктор и Пегги могли бы организовать весь "эксперимент" от начала до конца.
Далее, если Виктор выбирает свои A и B, подбрасывая монету на камеру, этот протокол теряет свое свойство нулевого знания; подбрасывание монеты на камере, вероятно, было бы убедительным для любого человека, который позже посмотрит запись. Таким образом, хотя это и не раскрывает Виктору секретное слово, это дает Виктору возможность убедить мир в целом, что у Пегги есть это знание — вопреки заявленным желаниям Пегги. Однако цифровая криптография обычно «подбрасывает монеты», полагаясь на генератор псевдослучайных чисел , который похож на монету с фиксированным рисунком орла и решки, известным только владельцу монеты. Если монета Виктора вела себя таким образом, то опять же Виктор и Пегги могли бы подделать эксперимент, поэтому использование генератора псевдослучайных чисел не раскрыло бы миру знания Пегги так же, как использование подброшенной монеты.
Пегги могла бы доказать Виктору, что она знает волшебное слово, не раскрывая его ему, за одну попытку. Если Виктор и Пегги вместе пойдут к выходу пещеры, Виктор сможет наблюдать, как Пегги входит через A и выходит через B. Это с уверенностью докажет, что Пегги знает волшебное слово, не раскрывая его Виктору. Однако такое доказательство может быть замечено третьей стороной или записано Виктором, и такое доказательство будет убедительным для любого. Другими словами, Пегги не могла бы опровергнуть такое доказательство, заявив, что она вступила в сговор с Виктором, и поэтому она больше не контролирует, кто знает о ее знании.
Представьте, что ваш друг «Виктор» дальтоник ( а вы нет), и у вас есть два мяча: один красный и один зеленый, но в остальном они идентичны. Виктору мячи кажутся совершенно одинаковыми. Виктор скептически относится к тому, что мячи на самом деле различимы. Вы хотите доказать Виктору, что мячи на самом деле разного цвета , но ничего больше. В частности, вы не хотите раскрывать, какой мяч красный, а какой зеленый.
Вот система доказательства. Вы даете два мяча Виктору, и он кладет их себе за спину. Затем он берет один из мячей, вытаскивает его из-за спины и показывает его. Затем он снова кладет его себе за спину и затем выбирает, показать ли только один из двух мячей, выбирая один из двух наугад с равной вероятностью. Он спросит вас: «Я подменил мяч?» Вся эта процедура затем повторяется столько раз, сколько необходимо.
Глядя на цвета шаров, вы, конечно, можете с уверенностью сказать, поменял ли он их местами или нет. С другой стороны, если шары были одного цвета и, следовательно, неразличимы, вы никак не сможете угадать с вероятностью выше 50%.
Поскольку вероятность того, что вы бы случайно преуспели в идентификации каждого переключения/непереключения, составляет 50%, вероятность того, что вы случайно преуспели во всех переключениях/непереключениях, приближается к нулю («надежность»). Если вы и ваш друг повторите это «доказательство» несколько раз (например, 20 раз), ваш друг должен убедиться («полнота»), что шары действительно разного цвета.
Приведенное выше доказательство является доказательством с нулевым разглашением , поскольку ваш друг никогда не узнает, какой мяч зеленый, а какой красный; на самом деле, он не получает никаких знаний о том, как различать мячи. [8]
Одним из известных примеров доказательства с нулевым разглашением является пример «Где Уолдо». В этом примере доказывающий хочет доказать проверяющему, что он знает, где находится Уолдо на странице книги « Где Уолдо?» , не раскрывая его местонахождение проверяющему. [9]
Доказывающий начинает с того, что берет большую черную доску с маленьким отверстием в ней, размером с Уолдо. Доска в два раза больше книги в обоих направлениях, поэтому проверяющий не может видеть, где на странице доказывающий ее размещает. Затем доказывающий размещает доску на странице так, чтобы Уолдо оказался в отверстии. [9]
Проверяющий теперь может смотреть через отверстие и видеть Уолдо, но не может видеть никакую другую часть страницы. Таким образом, доказывающий доказал верификатору, что он знает, где находится Уолдо, не раскрывая никакой другой информации о его местоположении. [9]
Этот пример не является идеальным доказательством с нулевым разглашением, поскольку доказывающий раскрывает некоторую информацию о местоположении Уолдо, например, положение его тела. Однако это достойная иллюстрация базовой концепции доказательства с нулевым разглашением.
Доказательство с нулевым разглашением некоторого утверждения должно удовлетворять трем свойствам:
Первые два из них являются свойствами более общих интерактивных систем доказательств . Третье — то, что делает доказательство нулевым разглашением. [10]
Доказательства с нулевым разглашением не являются доказательствами в математическом смысле этого термина, поскольку существует некоторая малая вероятность, ошибка обоснованности , что обманывающий доказывающий сможет убедить проверяющего в ложном утверждении. Другими словами, доказательства с нулевым разглашением являются вероятностными «доказательствами», а не детерминированными доказательствами. Однако существуют методы уменьшения ошибки обоснованности до пренебрежимо малых значений (например, правильное угадывание сотни или тысячи бинарных решений имеет ошибку обоснованности 1/2 100 или 1/2 1000 соответственно. По мере увеличения числа бит ошибка обоснованности уменьшается до нуля).
Формальное определение нулевого разглашения должно использовать некоторую вычислительную модель, наиболее распространенной из которых является модель машины Тьюринга . Пусть P , V и S — машины Тьюринга. Интерактивная система доказательства с ( P , V ) для языка L имеет нулевой разглашение, если для любого вероятностного полиномиального времени (PPT) верификатора V̂ существует PPT симулятор S такой, что:
где Вид V̂ [ P ( x )↔ V̂ ( x , z )] — это запись взаимодействий между P ( x ) и V ( x , z ) . Доказывающий P моделируется как имеющий неограниченную вычислительную мощность (на практике P обычно является вероятностной машиной Тьюринга ). Интуитивно определение гласит, что интерактивная система доказательства ( P , V ) имеет нулевое знание, если для любого верификатора V̂ существует эффективный симулятор S (зависящий от V̂ ), который может воспроизвести разговор между P и V̂ на любом заданном входе. Вспомогательная строка z в определении играет роль «предварительного знания» (включая случайные монеты V̂ ). Определение подразумевает, что V̂ не может использовать какую-либо предварительную строку знания z для извлечения информации из своего разговора с P , потому что если S также дано это предварительное знание, то он может воспроизвести разговор между V̂ и P так же, как и раньше. [ необходима цитата ]
Приведенное определение — это определение идеального нулевого знания. Вычислительное нулевое знание достигается путем требования, чтобы представления верификатора V̂ и симулятора были только вычислительно неразличимы , учитывая вспомогательную строку. [ необходима цитата ]
Эти идеи можно применить к более реалистичному приложению криптографии. Пегги хочет доказать Виктору, что она знает дискретный логарифм заданного значения в заданной группе . [11]
Например, имея значение y , большое простое число p и генератор , она хочет доказать, что знает значение x, такое что g x ≡ y (mod p ) , не раскрывая x . Действительно, знание x можно использовать в качестве доказательства идентичности, поскольку Пегги могла бы иметь такое знание, поскольку она выбрала случайное значение x , которое никому не раскрыла, вычислила y = g x mod p и распределила значение y среди всех потенциальных проверяющих, так что в более позднее время доказательство знания x будет эквивалентно доказательству идентичности как Пегги.
Протокол работает следующим образом: в каждом раунде Пегги генерирует случайное число r , вычисляет C = g r mod p и раскрывает это Виктору. Получив C , Виктор случайным образом отправляет один из следующих двух запросов: он либо просит Пегги раскрыть значение r , либо значение ( x + r ) mod ( p − 1) .
Виктор может проверить любой ответ; если он запросил r , он может вычислить g r mod p и проверить, что он соответствует C . Если он запросил ( x + r ) mod ( p − 1) , то он может проверить, что C соответствует этому, вычислив g ( x + r ) mod ( p − 1) mod p и проверив, что он соответствует ( C · y ) mod p . Если Пегги действительно знает значение x , то она может ответить на любой из возможных вызовов Виктора.
Если бы Пегги знала или могла угадать, какой вызов собирается сделать Виктор, то она могла бы легко обмануть и убедить Виктора, что она знает x, когда это не так: если она знает, что Виктор собирается запросить r , то она действует как обычно: она выбирает r , вычисляет C = g r mod p и раскрывает C Виктору; она сможет ответить на вызов Виктора. С другой стороны, если она знает, что Виктор запросит ( x + r ) mod ( p − 1) , то она выбирает случайное значение r ′ , вычисляет C ′ ≡ g r ′ · ( g x ) −1 mod p и раскрывает C ′ Виктору как значение C , которое он ожидает. Когда Виктор предлагает ей раскрыть ( x + r ) mod ( p − 1) , она раскрывает r ′ , для которого Виктор проверит согласованность, поскольку он, в свою очередь, вычислит g r ′ mod p , что соответствует C ′ · y , поскольку Пегги умножила на модульную мультипликативную обратную величину y .
Однако, если в любом из вышеперечисленных сценариев Виктор бросает вызов, отличный от того, который она ожидала и для которого она сфабриковала результат, то она не сможет ответить на вызов, исходя из предположения о невозможности решения дискретного журнала для этой группы. Если она выбрала r и раскрыла C = g r mod p , то она не сможет произвести действительный ( x + r ) mod ( p − 1) , который прошел бы проверку Виктора, учитывая, что она не знает x . А если она выбрала значение r ′ , которое представляется как ( x + r ) mod ( p − 1) , то ей придется ответить дискретным журналом значения, которое она раскрыла, — но Пегги не знает этот дискретный журнал, поскольку значение C , которое она раскрыла, было получено с помощью арифметики с известными значениями, а не путем вычисления степени с известным показателем.
Таким образом, вероятность успешного мошенничества доказывающего в одном раунде составляет 0,5. Выполняя достаточно большое количество раундов, вероятность успеха доказывающего доказывающего можно сделать произвольно низкой.
Чтобы показать, что приведенное выше интерактивное доказательство дает нулевое знание, кроме того факта, что Пегги знает x , можно использовать аналогичные аргументы, которые использовались в приведенном выше доказательстве полноты и корректности. В частности, симулятор, скажем, Саймон, который не знает x , может смоделировать обмен между Пегги и Виктором с помощью следующей процедуры. Во-первых, Саймон случайным образом подбрасывает честную монету. Если результат «орел», то он выбирает случайное значение r , вычисляет C = g r mod p и раскрывает C , как будто это сообщение от Пегги Виктору. Затем Саймон также выводит сообщение «запросить значение r », как будто оно отправлено от Виктора Пегги, и немедленно выводит значение r , как будто оно отправлено от Пегги Виктору. Один раунд завершен. С другой стороны, если результатом подбрасывания монеты является «решка», то Саймон выбирает случайное число r ′ , вычисляет C ′ = g r ′ · y −1 mod p и раскрывает C ′ , как будто это сообщение от Пегги Виктору. Затем Саймон выводит «запросить значение ( x + r ) mod ( p − 1) » , как будто это сообщение от Виктора Пегги. Наконец, Саймон выводит значение r ′ , как будто это ответ от Пегги Виктору. Один раунд завершен. Согласно предыдущим аргументам при доказательстве полноты и корректности, интерактивное общение, смоделированное Саймоном, неотличимо от истинного соответствия между Пегги и Виктором. Таким образом, гарантируется свойство нулевого разглашения.
Пегги доказывает, что знает значение x (например, свой пароль).
Значение ( x + r ) mod ( p − 1) можно рассматривать как зашифрованное значение x mod ( p − 1) . Если r действительно случайно, равномерно распределено между нулем и p − 2 , то это не приводит к утечке информации о x (см. одноразовый блокнот ).
Следующая схема принадлежит Мануэлю Блюму . [12]
В этом сценарии Пегги знает гамильтонов цикл для большого графа G. Виктор знает G , но не цикл (например, Пегги сгенерировала G и раскрыла его ему.) Нахождение гамильтонова цикла для большого графа считается вычислительно невыполнимым, поскольку известно, что его соответствующая версия решения является NP-полной . Пегги докажет, что она знает цикл, не раскрывая его просто (возможно, Виктор заинтересован в его покупке, но сначала хочет проверить, или, может быть, Пегги — единственная, кто знает эту информацию и доказывает свою личность Виктору).
Чтобы показать, что Пегги знает этот гамильтонов цикл, они с Виктором играют в несколько раундов игры:
Важно, чтобы обязательство перед графом было таким, чтобы Виктор мог проверить во втором случае, что цикл действительно состоит из ребер из H. Это можно сделать, например, приняв обязательство перед каждым ребром (или его отсутствием) по отдельности.
Если Пегги знает гамильтонов цикл в G , то она может легко удовлетворить требование Виктора либо об изоморфизме графов, производящем H из G (что она обязалась сделать на первом шаге), либо о гамильтоновом цикле в H (который она может построить, применив изоморфизм к циклу в G ).
Ответы Пегги не раскрывают исходный гамильтонов цикл в G . В каждом раунде Виктор узнает только изоморфизм H с G или гамильтонов цикл в H . Ему понадобятся оба ответа для одного H , чтобы обнаружить цикл в G , поэтому информация остается неизвестной до тех пор, пока Пегги может генерировать отдельный H в каждом раунде. Если Пегги не знает о гамильтоновом цикле в G , но каким-то образом заранее знает, что Виктор попросит показать в каждом раунде, то она может схитрить. Например, если бы Пегги знала заранее, что Виктор попросит показать гамильтонов цикл в H , то она могла бы сгенерировать гамильтонов цикл для неродственного графа. Аналогично, если бы Пегги знала заранее, что Виктор попросит показать изоморфизм, то она могла бы просто сгенерировать изоморфный граф H (в котором она также не знает гамильтонов цикл). Виктор мог бы смоделировать протокол сам (без Пегги), потому что он знает, что он попросит показать. Следовательно, Виктор не получает никакой информации о гамильтоновом цикле в G из информации, раскрытой в каждом раунде.
Если Пегги не знает информации, то она может угадать, какой вопрос задаст Виктор, и сгенерировать либо граф, изоморфный G , либо гамильтонов цикл для несвязанного графа, но поскольку она не знает гамильтонов цикл для G , она не может сделать и то, и другое. С этой догадкой ее шанс обмануть Виктора равен 2 − n , где n — количество раундов. Для всех реалистичных целей нереально сложно победить доказательство с нулевым разглашением с разумным количеством раундов таким способом.
Различные варианты нулевого разглашения можно определить, формализовав интуитивное понятие того, что подразумевается под выводом симулятора, «похожим» на выполнение реального протокола доказательства, следующими способами:
Существуют различные типы доказательств с нулевым разглашением:
Схемы доказательства с нулевым разглашением могут быть построены на основе различных криптографических примитивов, таких как криптография на основе хэширования , криптография на основе пар , многосторонние вычисления или криптография на основе решеток .
Исследования в области доказательств с нулевым разглашением были мотивированы системами аутентификации , в которых одна сторона хочет доказать свою личность второй стороне с помощью некоторой секретной информации (например, пароля), но не хочет, чтобы вторая сторона узнала что-либо об этом секрете. Это называется « доказательством знания с нулевым разглашением ». Однако пароль, как правило, слишком мал или недостаточно случаен, чтобы его можно было использовать во многих схемах для доказательств знания с нулевым разглашением. Доказательство пароля с нулевым разглашением — это особый вид доказательства знания с нулевым разглашением, который решает проблему ограниченного размера паролей. [ необходима цитата ]
В апреле 2015 года был представлен протокол доказательств «один из многих» ( протокол Sigma ). [14] В августе 2021 года Cloudflare , американская компания, занимающаяся веб-инфраструктурой и безопасностью, решила использовать механизм доказательств «один из многих» для конфиденциальной веб-верификации с использованием оборудования поставщика. [15]
Одним из применений доказательств с нулевым разглашением в криптографических протоколах является обеспечение честного поведения при сохранении конфиденциальности. Грубо говоря, идея состоит в том, чтобы заставить пользователя доказать, используя доказательство с нулевым разглашением, что его поведение является правильным в соответствии с протоколом. [16] [17] Благодаря обоснованности мы знаем, что пользователь должен действительно действовать честно, чтобы иметь возможность предоставить действительное доказательство. Благодаря нулевому разглашению мы знаем, что пользователь не ставит под угрозу конфиденциальность своих секретов в процессе предоставления доказательства. [ необходима цитата ]
В 2016 году Принстонская лаборатория физики плазмы и Принстонский университет продемонстрировали технологию, которая может быть применима к будущим переговорам по ядерному разоружению . Она позволит инспекторам подтвердить, является ли объект действительно ядерным оружием, без записи, обмена или раскрытия внутренних механизмов, которые могут быть секретными. [18]
Доказательства с нулевым разглашением применялись в протоколах Zerocoin и Zerocash, что привело к рождению криптовалют Zcoin [19] (позже переименованного в Firo в 2020 году) [20] и Zcash в 2016 году. Zerocoin имеет встроенную модель смешивания, которая не доверяет никаким одноранговым узлам или централизованным поставщикам смешивания для обеспечения анонимности. [19] Пользователи могут совершать транзакции в базовой валюте и могут циклически вводить и выводить валюту из Zerocoin. [21] Протокол Zerocash использует похожую модель (вариант, известный как неинтерактивное доказательство с нулевым разглашением ) [22], за исключением того, что он может скрывать сумму транзакции, в то время как Zerocoin не может. Учитывая значительные ограничения данных транзакций в сети Zerocash, Zerocash менее подвержен атакам на конфиденциальность по времени по сравнению с Zerocoin. Однако этот дополнительный уровень конфиденциальности может привести к потенциально незаметной гиперинфляции предложения Zerocash, поскольку мошеннические монеты невозможно отследить. [19] [23]
В 2018 году были представлены Bulletproofs. Bulletproofs — это усовершенствование неинтерактивных доказательств с нулевым разглашением, где доверенная настройка не требуется. [24] Позднее он был реализован в протоколе Mimblewimble (на котором основаны криптовалюты Grin и Beam) и криптовалюте Monero . [25] В 2019 году Firo внедрил протокол Sigma, который является улучшением протокола Zerocoin без доверенной настройки. [26] [14] В том же году Firo представил протокол Lelantus, улучшение протокола Sigma, где первый скрывает источник и сумму транзакции. [27]
Доказательства с нулевым разглашением по своей природе могут повысить конфиденциальность в системах совместного использования идентификационных данных, которые уязвимы к утечкам данных и краже идентификационных данных. При интеграции в децентрализованную систему идентификаторов ZKP добавляют дополнительный уровень шифрования в документы DID. [28]
Доказательства с нулевым разглашением были впервые задуманы в 1985 году Шафи Голдвассером , Сильвио Микали и Чарльзом Ракоффом в их статье «Сложность знаний интерактивных систем доказательств». [16] В этой статье была представлена иерархия IP интерактивных систем доказательств ( см. интерактивная система доказательств ) и разработана концепция сложности знаний — измерения объема знаний о доказательстве, переданных от доказывающего к проверяющему. Они также дали первое доказательство с нулевым разглашением для конкретной задачи — решения квадратичных невычетов по модулю m . Вместе со статьей Ласло Бабаи и Шломо Морана эта знаковая статья изобрела интерактивные системы доказательств, за которые все пять авторов получили первую премию Гёделя в 1993 году.
По словам Голдвассер, Микали и Ракоффа:
Особый интерес представляет случай, когда это дополнительное знание по сути равно 0, и мы показываем, что [можно] интерактивно доказать, что число является квадратичным без остатка по модулю m, высвобождая 0 дополнительных знаний. Это удивительно, поскольку неизвестен эффективный алгоритм для определения квадратичного остатка по модулю m , когда факторизация m не задана. Более того, все известные NP- доказательства для этой задачи демонстрируют простую факторизацию m . Это указывает на то, что добавление взаимодействия к процессу доказательства может уменьшить объем знаний, которые необходимо передать для доказательства теоремы.
Квадратичная проблема невычета имеет как алгоритм NP , так и алгоритм co-NP , и поэтому лежит на пересечении NP и co-NP . Это также было верно для нескольких других проблем, для которых впоследствии были обнаружены доказательства с нулевым знанием, такие как неопубликованная система доказательств Одеда Голдрайха, проверяющая, что двукратный простой модуль не является целым числом Блюма . [29]
Одед Голдрайх , Сильвио Микали и Ави Вигдерсон пошли еще дальше, показав, что, предполагая существование невзламываемого шифрования, можно создать систему доказательств с нулевым разглашением для NP-полной задачи раскраски графа тремя цветами. Поскольку каждая задача в NP может быть эффективно сведена к этой задаче, это означает, что при этом предположении все задачи в NP имеют доказательства с нулевым разглашением. [30] Причина такого предположения заключается в том, что, как и в приведенном выше примере, их протоколы требуют шифрования. Обычно упоминаемым достаточным условием существования невзламываемого шифрования является существование односторонних функций , но вполне возможно, что некоторые физические средства также могут этого достичь.
Вдобавок к этому, они также показали, что проблема неизоморфизма графов , дополнение к проблеме изоморфизма графов , имеет доказательство с нулевым разглашением. Эта проблема находится в co-NP , но в настоящее время не известно, что она находится ни в NP , ни в каком-либо практическом классе. В более общем плане, Рассел Импальяццо и Моти Юнг , а также Бен-Ор и др. продолжили бы показывать, что, также предполагая односторонние функции или невзламываемое шифрование, существуют доказательства с нулевым разглашением для всех проблем в IP = PSPACE , или, другими словами, все, что может быть доказано интерактивной системой доказательств, может быть доказано с нулевым разглашением. [31] [32]
Не желая делать ненужных предположений, многие теоретики искали способ устранить необходимость в односторонних функциях . Одним из способов было использование интерактивных систем доказательств с несколькими доказывающими (см. интерактивная система доказательств ), которые имеют несколько независимых доказывающих вместо одного, что позволяет проверяющему «перекрестно допрашивать» доказывающих в изоляции, чтобы не быть введенным в заблуждение. Можно показать, что без каких-либо предположений о неразрешимости все языки в NP имеют доказательства с нулевым знанием в такой системе. [33]
Оказывается, что в среде, подобной Интернету, где несколько протоколов могут выполняться одновременно, построение доказательств с нулевым разглашением становится более сложной задачей. Направление исследований, изучающих параллельные доказательства с нулевым разглашением, было инициировано работой Дворка , Наора и Сахая . [34] Одним из конкретных достижений в этом направлении стала разработка протоколов доказательств, неразличимых свидетелями . Свойство неразличимости свидетеля связано со свойством нулевого разглашения, однако протоколы, неразличимые свидетелями, не страдают от тех же проблем параллельного выполнения. [35]
Другим вариантом доказательств с нулевым разглашением являются неинтерактивные доказательства с нулевым разглашением . Блюм, Фельдман и Микали показали, что общая случайная строка, разделяемая доказывающей и проверяющей стороной, достаточна для достижения вычислительного нулевого разглашения без необходимости взаимодействия. [5] [6]
Наиболее популярные интерактивные или неинтерактивные протоколы доказательства с нулевым разглашением (например, zk-SNARK) можно в целом разделить на следующие четыре категории: краткие неинтерактивные аргументы знаний (SNARK), масштабируемые прозрачные аргументы знаний (STARK), проверяемое полиномиальное делегирование (VPD) и краткие неинтерактивные аргументы знаний (SNARG). Ниже приведен список протоколов и библиотек доказательства с нулевым разглашением вместе со сравнениями на основе прозрачности , универсальности , правдоподобной постквантовой безопасности и парадигмы программирования . [36] Прозрачный протокол — это тот, который не требует какой-либо доверенной настройки и использует публичную случайность. Универсальный протокол — это тот, который не требует отдельной доверенной настройки для каждой схемы. Наконец, правдоподобно постквантовый протокол — это тот, который не подвержен известным атакам с использованием квантовых алгоритмов.
{{cite book}}
: CS1 maint: location missing publisher (link){{cite book}}
: CS1 maint: location missing publisher (link)