Что такое доказательства нулевого знания?

В этой статье приводится подробное доказательство доказательств с нулевым разглашением (ZKP).

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

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

Зачем нам нужны доказательства с нулевым разглашением?

Доказательства нулевого знания стали прорывом в области прикладной криптографии, поскольку они обещали улучшить безопасность информации для отдельных лиц. Подумайте, как вы можете доказать утверждение (например, "Я гражданин страны X") другой стороне (например, поставщику услуг). Вам нужно предоставить "доказательства" в поддержку вашего утверждения, такие как национальный паспорт или водительское удостоверение.

Но у этого подхода есть проблемы, в основном связанные с отсутствием конфиденциальности. Личная идентифицируемая информация (ЛИИ), передаваемая третьим сторонам, хранится в централизованных базах данных, которые уязвимы к взломам. С учетом того, что кража личности становится критической проблемой, возникают требования к более надежным средствам защиты конфиденциальной информации.

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

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

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

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

Протокол нулевого знания должен удовлетворять следующим критериям:

  1. Полнота: если ввод допустим, то протокол нулевого знания всегда возвращает «истина». Следовательно, если основное утверждение верно, а доказатель и проверяющий действуют честно, доказательство может быть принято.
  2. Здравый смысл: Если входные данные недопустимы, то теоретически невозможно обмануть протокол с нулевым разглашением, чтобы вернуть 'true'. Таким образом, лжец не может обмануть честного проверяющего, заставив его верить, что недопустимое утверждение является допустимым (за исключением незначительной вероятности).
  3. Ноль-знание: Верификатор ничего не узнает о высказывании, кроме его истинности или ложности (у них 'ноль знания' о высказывании). Это требование также предотвращает верификатора от вывода исходного ввода (содержание высказывания) из доказательства.

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

  • Свидетель: С нулевым доказательством знания доказывающая сторона хочет доказать знание скрытой информации. Секретная информация является «свидетелем» доказательства, и предполагаемое знание доказывающей стороны о свидетеле устанавливает набор вопросов, на которые может ответить только сторона, обладающая информацией. Таким образом, доказывающая сторона начинает процесс доказательства, случайным образом выбирая вопрос, вычисляя ответ и отправляя его верификатору.
  • Challenge: Верификатор случайным образом выбирает еще один вопрос из набора и просит доказательство ответить на него.
  • Ответ: Доказатель принимает вопрос, вычисляет ответ и возвращает его верификатору. Ответ доказателя позволяет верификатору проверить, действительно ли у первого есть доступ к свидетелю. Чтобы гарантировать, что доказатель не угадывает наугад и не получает правильные ответы случайно, верификатор задает еще вопросы. Повторяя это взаимодействие много раз, вероятность того, что доказатель фальсифицирует знание свидетеля, значительно снижается до тех пор, пока верификатор не будет удовлетворен.

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

Хорошим примером, иллюстрирующим работу интерактивных доказательств, является знаменитый Жан-Жак Кискатер.История о пещере Али-Бабы

(открывается в новой вкладке)

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

Невзаимодействующие доказательства нулевого знания

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

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

(открывается в новой вкладке)

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

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

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

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

Типы доказательств нулевого знания

Zk-SNARKs

ZK-SNARK - это акроним от Zero-Knowledge Succinct Non-Interactive Argument of Knowledge. Протокол ZK-SNARK обладает следующими качествами:

  • Ноль-knowledge: Верификатор может подтвердить целостность утверждения, не зная ничего еще об этом утверждении. Единственное знание, которое верификатор имеет об утверждении, - это то, верно оно или ложно.
  • Лаконично: Доказательство в нулевом знании меньше свидетельства и может быть быстро проверено.
  • Неинтерактивный: Доказательство является «неинтерактивным», потому что доказатель и проверяющий взаимодействуют только один раз, в отличие от интерактивных доказательств, требующих нескольких раундов общения.
  • Аргумент: Доказательство удовлетворяет требованию 'правильности', поэтому обман крайне маловероятен.
  • (Из) Знание: Доказательство нулевого знания не может быть сконструировано без доступа к секретной информации (свидетель). Провер, не имеющий свидетеля, с трудом, если не невозможно, может вычислить действительное доказательство нулевого знания.

Упомянутый ранее 'общий ключ' относится к общим параметрам, согласованным доказывающим и верификатором для генерации и проверки доказательств. Генерация общих параметров (известных коллективно как Строка Общей Ссылки (CRS)) является чувствительной операцией из-за ее важности для безопасности протокола. Если энтропия (случайность), используемая при генерации CRS, попадет в руки недобросовестного доказывающего, он может вычислить ложные доказательства.

Многопартийные вычисления (MPC)

(открывается в новой вкладке)

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

(открывается в новой вкладке)

, где каждый участник вносит некоторые случайные значения для генерации CRS. Пока одна честная сторона уничтожает свою часть энтропии, протокол ZK-SNARK сохраняет вычислительную звучность.

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

ZK-STARKs

ZK-STARK - это акроним от Zero-Knowledge Scalable Transparent Argument of Knowledge. ZK-STARK похожи на ZK-SNARK, за исключением того, что они:

  • Масштабируемый: ZK-STARK работает быстрее, чем ZK-SNARK при создании и проверке доказательств, когда размер witness больше. С доказательствами STARK время работы доказывающего и проверяющего лишь немного увеличивается по мере увеличения размера witness (время работы доказывающего и проверяющего SNARK увеличивается линейно с размером witness).
  • Прозрачный: ZK-STARK полагается на публично проверяемое случайное число для генерации общедоступных параметров для доказательства и верификации вместо доверенной установки. Таким образом, они более прозрачны по сравнению с ZK-SNARKs.

ZK-STARKs производят более крупные доказательства, чем ZK-SNARKs, что обычно означает более высокие накладные расходы на верификацию. Однако есть случаи (например, доказательство больших наборов данных), когда ZK-STARKs могут быть более экономичными, чем ZK-SNARKs.

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

Анонимные платежи

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

Криптовалюты задумывались как средство обеспечения возможности для пользователей проводить частные, одноранговые транзакции. Но большинство транзакций с криптовалютами открыто видны на публичных блокчейнах. Личности пользователей часто псевдонимичны и могут быть связаны с реальными личностями добровольно (например, включая адреса ETH в профилях Twitter или GitHub) или могут быть ассоциированы с реальными личностями с использованием базового анализа данных на цепи и вне ее.

Существуют специальные «монеты конфиденциальности», предназначенные для полностью анонимных транзакций. Блокчейны, ориентированные на конфиденциальность, такие как Zcash и Monero, скрывают детали транзакций, включая адреса отправителя/получателя, тип актива, количество и сроки транзакции.

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

Доказательства нулевого разглашения также применяются для анонимизации транзакций на публичных блокчейнах. Примером является Tornado Cash, децентрализованный, некастодиальный сервис, который позволяет пользователям проводить частные транзакции на Ethereum. Tornado Cash использует доказательства нулевого разглашения для затруднения деталей транзакций и гарантирования финансовой конфиденциальности. К сожалению, поскольку эти инструменты конфиденциальности являются «добровольными», они ассоциированы с незаконной деятельностью. Для преодоления этого конфиденциальность в конечном итоге должна стать стандартной на публичных блокчейнах.

Защита личности

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

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

Аутентификация

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

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

Проверяемые вычисления

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

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

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

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

Вот как это работает на практике:

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

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

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

Здесь вступает в игру проверяемое вычисление. Когда узел выполняет транзакцию вне Ethereum, он представляет доказательство с нулевым разглашением, чтобы доказать правильность выполнения вне цепи. Это доказательство (называемое

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

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

Уменьшение взяточничества и сговора при онлайн-голосовании

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

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

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

Например, механизмы квадратичного финансирования

(открывается в новой вкладке)

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

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

К счастью, новые решения, такие как MACI (Минимальная инфраструктура против мошенничества), используют доказательства нулевого знания, чтобы сделать онлайн-голосование (например, механизмы квадратичного финансирования) устойчивыми к подкупу и сговору. MACI - это набор смарт-контрактов и скриптов, которые позволяют центральному администратору (называемому «координатором») агрегировать голоса и подводить итоги, не раскрывая конкретики по поводу того, как каждый отдельный участник проголосовал. Тем не менее, все еще возможно проверить, что голоса были посчитаны правильно, или подтвердить, что конкретное лицо участвовало в голосовании.

Как работает MACI с доказательствами нулевого знания?

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

В MACI нулевые доказательства используются для обеспечения правильности вычислений, делая невозможным неправильную обработку голосов и подсчет результатов координатором. Это достигается путем требования от координатора генерировать доказательства ZK-SNARK, подтверждающие, что a) все сообщения были обработаны правильно b) окончательный результат соответствует сумме всех допустимых голосов.

Таким образом, даже не раскрывая разбивку голосов по пользователям (как это обычно бывает), MACI гарантирует целостность результатов, рассчитанных в ходе подсчета. Эта функция полезна для снижения эффективности базовых схем коллузии. Мы можем исследовать эту возможность, используя предыдущий пример, когда Боб подкупает Алису проголосовать за опцию:

  • Алиса регистрируется для голосования, отправляя свой открытый ключ в умный контракт.
  • Алиса соглашается проголосовать за вариант B в обмен на взятку от Боба.
  • Алиса голосует за вариант B.
  • Алиса тайно отправляет зашифрованную транзакцию, чтобы изменить открытый ключ, связанный с ее личностью.
  • Элис отправляет еще одно (зашифрованное) сообщение в смарт-контракт, голосующий за вариант A, используя новый открытый ключ.
  • Алиса показывает Бобу транзакцию, которая показывает, что она проголосовала за вариант B (что недействительно, поскольку открытый ключ больше не связан с личностью Алисы в системе)
  • При обработке сообщений координатор пропускает голос Алисы за вариант B и учитывает только голос за вариант A. Таким образом, попытка Боба сговориться с Алисой и манипулировать голосованием на цепи блоков не удалась.

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

Но в тех случаях, когда координатор остается честным, MACI представляет собой мощный инструмент для гарантирования неприкосновенности онлайн-голосования. Это объясняет его популярность среди приложений квадратичного финансирования (например, clr.fund

(открывается в новой вкладке)

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

Узнайте больше о MACI

(открывается в новой вкладке)

.

Недостатки использования нулевых доказательств

Затраты на оборудование

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

Затраты на проверку доказательств

Проверка доказательств также требует сложных вычислений и увеличивает затраты на внедрение технологии нулевого разглашения в приложениях. Эти затраты особенно важны в контексте вычисления доказательств. Например, ZK-rollups платят ~ 500,000 газу за проверку одного ZK-SNARK доказательства на Ethereum, а для ZK-STARKs требуются еще более высокие сборы.

Доверие к предположениям

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

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

Угрозы квантовых вычислений

ZK-SNARK использует криптографию на эллиптических кривых

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

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

Disclaimer:

  1. Эта статья перепечатана из [Ethereum]. Все авторские права принадлежат оригинальному автору [Ethereum]. Если есть возражения к этому перепечатыванию, пожалуйста, свяжитесь с Gate Учитькомандой, и они быстро справятся с этим.
  2. Ответственность за отказ от ответственности: Взгляды и мнения, выраженные в этой статье, являются исключительно мнениями автора и не являются инвестиционными советами.
  3. Переводы статьи на другие языки выполняются командой Gate Learn. Если не указано иное, копирование, распространение или плагиат переведенных статей запрещены.

Что такое доказательства нулевого знания?

Новичок1/4/2024, 6:21:16 PM
В этой статье приводится подробное доказательство доказательств с нулевым разглашением (ZKP).

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

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

Зачем нам нужны доказательства с нулевым разглашением?

Доказательства нулевого знания стали прорывом в области прикладной криптографии, поскольку они обещали улучшить безопасность информации для отдельных лиц. Подумайте, как вы можете доказать утверждение (например, "Я гражданин страны X") другой стороне (например, поставщику услуг). Вам нужно предоставить "доказательства" в поддержку вашего утверждения, такие как национальный паспорт или водительское удостоверение.

Но у этого подхода есть проблемы, в основном связанные с отсутствием конфиденциальности. Личная идентифицируемая информация (ЛИИ), передаваемая третьим сторонам, хранится в централизованных базах данных, которые уязвимы к взломам. С учетом того, что кража личности становится критической проблемой, возникают требования к более надежным средствам защиты конфиденциальной информации.

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

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

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

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

Протокол нулевого знания должен удовлетворять следующим критериям:

  1. Полнота: если ввод допустим, то протокол нулевого знания всегда возвращает «истина». Следовательно, если основное утверждение верно, а доказатель и проверяющий действуют честно, доказательство может быть принято.
  2. Здравый смысл: Если входные данные недопустимы, то теоретически невозможно обмануть протокол с нулевым разглашением, чтобы вернуть 'true'. Таким образом, лжец не может обмануть честного проверяющего, заставив его верить, что недопустимое утверждение является допустимым (за исключением незначительной вероятности).
  3. Ноль-знание: Верификатор ничего не узнает о высказывании, кроме его истинности или ложности (у них 'ноль знания' о высказывании). Это требование также предотвращает верификатора от вывода исходного ввода (содержание высказывания) из доказательства.

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

  • Свидетель: С нулевым доказательством знания доказывающая сторона хочет доказать знание скрытой информации. Секретная информация является «свидетелем» доказательства, и предполагаемое знание доказывающей стороны о свидетеле устанавливает набор вопросов, на которые может ответить только сторона, обладающая информацией. Таким образом, доказывающая сторона начинает процесс доказательства, случайным образом выбирая вопрос, вычисляя ответ и отправляя его верификатору.
  • Challenge: Верификатор случайным образом выбирает еще один вопрос из набора и просит доказательство ответить на него.
  • Ответ: Доказатель принимает вопрос, вычисляет ответ и возвращает его верификатору. Ответ доказателя позволяет верификатору проверить, действительно ли у первого есть доступ к свидетелю. Чтобы гарантировать, что доказатель не угадывает наугад и не получает правильные ответы случайно, верификатор задает еще вопросы. Повторяя это взаимодействие много раз, вероятность того, что доказатель фальсифицирует знание свидетеля, значительно снижается до тех пор, пока верификатор не будет удовлетворен.

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

Хорошим примером, иллюстрирующим работу интерактивных доказательств, является знаменитый Жан-Жак Кискатер.История о пещере Али-Бабы

(открывается в новой вкладке)

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

Невзаимодействующие доказательства нулевого знания

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

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

(открывается в новой вкладке)

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

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

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

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

Типы доказательств нулевого знания

Zk-SNARKs

ZK-SNARK - это акроним от Zero-Knowledge Succinct Non-Interactive Argument of Knowledge. Протокол ZK-SNARK обладает следующими качествами:

  • Ноль-knowledge: Верификатор может подтвердить целостность утверждения, не зная ничего еще об этом утверждении. Единственное знание, которое верификатор имеет об утверждении, - это то, верно оно или ложно.
  • Лаконично: Доказательство в нулевом знании меньше свидетельства и может быть быстро проверено.
  • Неинтерактивный: Доказательство является «неинтерактивным», потому что доказатель и проверяющий взаимодействуют только один раз, в отличие от интерактивных доказательств, требующих нескольких раундов общения.
  • Аргумент: Доказательство удовлетворяет требованию 'правильности', поэтому обман крайне маловероятен.
  • (Из) Знание: Доказательство нулевого знания не может быть сконструировано без доступа к секретной информации (свидетель). Провер, не имеющий свидетеля, с трудом, если не невозможно, может вычислить действительное доказательство нулевого знания.

Упомянутый ранее 'общий ключ' относится к общим параметрам, согласованным доказывающим и верификатором для генерации и проверки доказательств. Генерация общих параметров (известных коллективно как Строка Общей Ссылки (CRS)) является чувствительной операцией из-за ее важности для безопасности протокола. Если энтропия (случайность), используемая при генерации CRS, попадет в руки недобросовестного доказывающего, он может вычислить ложные доказательства.

Многопартийные вычисления (MPC)

(открывается в новой вкладке)

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

(открывается в новой вкладке)

, где каждый участник вносит некоторые случайные значения для генерации CRS. Пока одна честная сторона уничтожает свою часть энтропии, протокол ZK-SNARK сохраняет вычислительную звучность.

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

ZK-STARKs

ZK-STARK - это акроним от Zero-Knowledge Scalable Transparent Argument of Knowledge. ZK-STARK похожи на ZK-SNARK, за исключением того, что они:

  • Масштабируемый: ZK-STARK работает быстрее, чем ZK-SNARK при создании и проверке доказательств, когда размер witness больше. С доказательствами STARK время работы доказывающего и проверяющего лишь немного увеличивается по мере увеличения размера witness (время работы доказывающего и проверяющего SNARK увеличивается линейно с размером witness).
  • Прозрачный: ZK-STARK полагается на публично проверяемое случайное число для генерации общедоступных параметров для доказательства и верификации вместо доверенной установки. Таким образом, они более прозрачны по сравнению с ZK-SNARKs.

ZK-STARKs производят более крупные доказательства, чем ZK-SNARKs, что обычно означает более высокие накладные расходы на верификацию. Однако есть случаи (например, доказательство больших наборов данных), когда ZK-STARKs могут быть более экономичными, чем ZK-SNARKs.

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

Анонимные платежи

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

Криптовалюты задумывались как средство обеспечения возможности для пользователей проводить частные, одноранговые транзакции. Но большинство транзакций с криптовалютами открыто видны на публичных блокчейнах. Личности пользователей часто псевдонимичны и могут быть связаны с реальными личностями добровольно (например, включая адреса ETH в профилях Twitter или GitHub) или могут быть ассоциированы с реальными личностями с использованием базового анализа данных на цепи и вне ее.

Существуют специальные «монеты конфиденциальности», предназначенные для полностью анонимных транзакций. Блокчейны, ориентированные на конфиденциальность, такие как Zcash и Monero, скрывают детали транзакций, включая адреса отправителя/получателя, тип актива, количество и сроки транзакции.

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

Доказательства нулевого разглашения также применяются для анонимизации транзакций на публичных блокчейнах. Примером является Tornado Cash, децентрализованный, некастодиальный сервис, который позволяет пользователям проводить частные транзакции на Ethereum. Tornado Cash использует доказательства нулевого разглашения для затруднения деталей транзакций и гарантирования финансовой конфиденциальности. К сожалению, поскольку эти инструменты конфиденциальности являются «добровольными», они ассоциированы с незаконной деятельностью. Для преодоления этого конфиденциальность в конечном итоге должна стать стандартной на публичных блокчейнах.

Защита личности

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

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

Аутентификация

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

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

Проверяемые вычисления

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

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

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

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

Вот как это работает на практике:

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

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

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

Здесь вступает в игру проверяемое вычисление. Когда узел выполняет транзакцию вне Ethereum, он представляет доказательство с нулевым разглашением, чтобы доказать правильность выполнения вне цепи. Это доказательство (называемое

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

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

Уменьшение взяточничества и сговора при онлайн-голосовании

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

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

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

Например, механизмы квадратичного финансирования

(открывается в новой вкладке)

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

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

К счастью, новые решения, такие как MACI (Минимальная инфраструктура против мошенничества), используют доказательства нулевого знания, чтобы сделать онлайн-голосование (например, механизмы квадратичного финансирования) устойчивыми к подкупу и сговору. MACI - это набор смарт-контрактов и скриптов, которые позволяют центральному администратору (называемому «координатором») агрегировать голоса и подводить итоги, не раскрывая конкретики по поводу того, как каждый отдельный участник проголосовал. Тем не менее, все еще возможно проверить, что голоса были посчитаны правильно, или подтвердить, что конкретное лицо участвовало в голосовании.

Как работает MACI с доказательствами нулевого знания?

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

В MACI нулевые доказательства используются для обеспечения правильности вычислений, делая невозможным неправильную обработку голосов и подсчет результатов координатором. Это достигается путем требования от координатора генерировать доказательства ZK-SNARK, подтверждающие, что a) все сообщения были обработаны правильно b) окончательный результат соответствует сумме всех допустимых голосов.

Таким образом, даже не раскрывая разбивку голосов по пользователям (как это обычно бывает), MACI гарантирует целостность результатов, рассчитанных в ходе подсчета. Эта функция полезна для снижения эффективности базовых схем коллузии. Мы можем исследовать эту возможность, используя предыдущий пример, когда Боб подкупает Алису проголосовать за опцию:

  • Алиса регистрируется для голосования, отправляя свой открытый ключ в умный контракт.
  • Алиса соглашается проголосовать за вариант B в обмен на взятку от Боба.
  • Алиса голосует за вариант B.
  • Алиса тайно отправляет зашифрованную транзакцию, чтобы изменить открытый ключ, связанный с ее личностью.
  • Элис отправляет еще одно (зашифрованное) сообщение в смарт-контракт, голосующий за вариант A, используя новый открытый ключ.
  • Алиса показывает Бобу транзакцию, которая показывает, что она проголосовала за вариант B (что недействительно, поскольку открытый ключ больше не связан с личностью Алисы в системе)
  • При обработке сообщений координатор пропускает голос Алисы за вариант B и учитывает только голос за вариант A. Таким образом, попытка Боба сговориться с Алисой и манипулировать голосованием на цепи блоков не удалась.

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

Но в тех случаях, когда координатор остается честным, MACI представляет собой мощный инструмент для гарантирования неприкосновенности онлайн-голосования. Это объясняет его популярность среди приложений квадратичного финансирования (например, clr.fund

(открывается в новой вкладке)

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

Узнайте больше о MACI

(открывается в новой вкладке)

.

Недостатки использования нулевых доказательств

Затраты на оборудование

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

Затраты на проверку доказательств

Проверка доказательств также требует сложных вычислений и увеличивает затраты на внедрение технологии нулевого разглашения в приложениях. Эти затраты особенно важны в контексте вычисления доказательств. Например, ZK-rollups платят ~ 500,000 газу за проверку одного ZK-SNARK доказательства на Ethereum, а для ZK-STARKs требуются еще более высокие сборы.

Доверие к предположениям

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

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

Угрозы квантовых вычислений

ZK-SNARK использует криптографию на эллиптических кривых

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

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

Disclaimer:

  1. Эта статья перепечатана из [Ethereum]. Все авторские права принадлежат оригинальному автору [Ethereum]. Если есть возражения к этому перепечатыванию, пожалуйста, свяжитесь с Gate Учитькомандой, и они быстро справятся с этим.
  2. Ответственность за отказ от ответственности: Взгляды и мнения, выраженные в этой статье, являются исключительно мнениями автора и не являются инвестиционными советами.
  3. Переводы статьи на другие языки выполняются командой Gate Learn. Если не указано иное, копирование, распространение или плагиат переведенных статей запрещены.
Comece agora
Inscreva-se e ganhe um cupom de
$100
!