Предыдущая статья: Объяснение SNARKs. Гомоморфное скрытие и слепое вычисление полиномов (перевод)
В этой статье мы рассмотрим тест на принятый коэффициент и слепое вычисление полиномов, поддающихся проверке. Поехали…
В предыдущей статье мы увидели, как Алиса может слепо вычислить скрытие
Однако в этом протоколе что-то отсутствует. Тот факт, что Алиса может вычислить
Таким образом, нам нужен способ «заставить» Алису правильно следовать протоколу. В статье мы подробно объясним, как достигнуть этого. Давайте сначала рассмотрим и объясним принцип действия основного инструмента, необходимого для этого. Мы называем его «Тест знания о коэффициенте» (Knowledge of Coefficient (KC) Test).
Как и раньше, обозначим через g генератор группы G порядка
Тест знания о коэффициенте
Для
обозначает ненулевые элементы
. Это то же самое, что и
описанные в предыдущей статье.
Тестирование происходит следующим образом.
- Боб выбирает случайное число
и число
. Он вычисляет
- Он посылает Алисе «запрос» в виде пары
. Заметим, что
является α-парой.
- Теперь Алиса должна ответить на запрос другой парой
. Это также α-пара.
- Боб принимает ответ Алисы, только если
действительно является α-парой (поскольку он знает α, он может проверить, что
).
Теперь давайте подумаем, когда Алиса может успешно ответить на вызов? Предположим, что она знает α. В этом случае она может просто выбрать любой a' из G и вычислить
Однако, поскольку единственная информация об α содержится в выражении
Итак, как же она может успешно ответить на запрос, не зная α?
Простой способ сделать это заключается в следующем: Алиса просто выбирает некое
В этом случае мы имеем:
Таким образом пара
Обратите внимание, что если Алиса ответила, используя этот вариант, она знает, чему равно отношение a к a', То есть, она знает такой коэффициент
Знание о принятом коэффициенте (ЗПК — The Knowledge of Coefficient Assumption (KCA)) утверждает, что это всегда так:
ЗПК: Если Алиса возвращает верный ответ
В литературе это обычно называется «знанием о принятой экспоненте», так как традиционно оно использовалось для мультипликативных групп.
Тест Знания и Принятый Коэффициент будут важными инструментами в следующей части статьи.
Что означает «Алиса знает»?
Вы можете задаться вопросом, как мы можем сформулировать ЗПК в конкретном математическом выражении? В частности, как мы сформулируем представление о том, что «Алиса знает»
Это делается примерно так: мы говорим, что помимо Алисы у нас есть другая сторона, которую мы называем Экстрактором Алисы. Экстрактор Алисы имеет доступ к внутреннему состоянию Алисы.
Теперь мы можем сформулировать ЗПК следующим образом: каждый раз, когда Алиса успешно отвечает
Полное формальное определение ЗПК определяет Экстрактор «несколько слабее» и вместо этого он сигнализирует о вероятности успешного ответа Алисы, а не выводит, который является малозначительным в данном случае
Как сделать слепое вычисление полиномов поддающихся проверке
Далее, опираясь на предыдущий материал, мы разработаем протокол для достоверного слепого вычисления полиномов, определения которым будет дано ниже. В последующих частях (и статьях) будет показано, как этот протокол можно использовать для построения SNARKs, поэтому наберитесь еще немного терпения для изучения SNARKs :).
Предположим, что, Алиса имеет многочлен P порядка d, а у Боба есть точка
- Конфиденциальность: Алиса не узнает s, а Боб не узнает P.
- Достоверность: Вероятность того, что Алиса посылает значение
не для многочлена P порядка d, который известен ей, а при этом Боб его принимает — ничтожно мала.
Это называется проверкой слепого вычисления полинома. Протокол в предыдущей статье дал нам только первый пункт, но не второй. Чтобы получить достоверность, нам понадобится расширенная версия знания о принятом коэффициенте (ЗПК).
Свойства достоверности и конфиденциальности полезны вместе, потому что они заставляют Алису решить, какой полином P она будет использовать, не видя значения s. Это в некотором смысле обязывает Алису к «ответу полиномом», не видя «точечный запрос» s. Эта логика станет более понятной далее.
В полном формальном доказательстве некоторые вещи описаны более тонко. Например то, что Алиса все же получает некую информацию об s, прежде чем принять решение о ее полиноме P. Например она получает скрытия
Расширенный ЗПК
ЗПК, в том виде, который мы определили выше, звучит примерно так: если Боб дает Алисе некоторую
Теперь предположим, что вместо одной Боб посылает Алисе несколько
Как было описано выше, Алисы может создать
Ответ: Да. Например, Алиса может выбрать два значения
В более общем случае Алиса может взять любую линейную комбинацию полученных d пар. Для этого нужно выбрать любые
Обратите внимание, что если Алиса использует эту стратегию для генерации ее
Расширенное ЗПК утверждает, по сути, что это единственный способ, которым Алиса может генерировать
d-ЗПК: Предположим, что Боб выбирает случайные
D-KCA (d-ЗПК) была представлена в журнале Йенса Грота.
Заметим, что в
Протокол достоверного слепого вычисления
Предположим, что наше ГС (гомоморфное скрытие) является отображением
Для простоты мы представляем протокол для этого конкретного E:
- Боб выбирает случайную
, и отправляет Алисе скрытия
(для
), а также скрытия
(для
).
- Алиса вычисляет
и
, используя элементы, отправленные на первом этапе, и отправляет их Бобу.
- Боб проверяет, что
, и принимает ответ тогда и только тогда, когда это равенство выполняется.
Во-первых, заметим, что полученные коэффициенты
Во-вторых, согласно d-ЗПК, если Алиса посылает
Резюмируя все это, используя d-ЗПК, мы разработали протокол для достоверного слепого вычисления полиномов. В следующих статьях мы увидим, как этот механизм используется в конструкциях SNARK.
Следующая статья: Объяснение SNARKs. От вычислений к многочленам, протокол Пиноккио и сопряжение эллиптических кривых (перевод)

