zk-SNARK: Инновационное доказательство нулевого знания и его применение

СреднийNov 28, 2023
Технология zk-SNARK представляет собой значительный прорыв в области защиты конфиденциальности и зашифрованной проверки. Она не только перспективна в плане обеспечения надежных гарантий конфиденциальности, но и практична в плане повышения масштабируемости блокчейна и различных других приложений.
zk-SNARK: Инновационное доказательство нулевого знания и его применение

Опыт

Доказательство с нулевым знанием (ZKP) - это криптографическая технология, которая была впервые предложена С. Голдвассером, С. Микали и К. Ракоффом в начале 1980-х годов в работе под названием The Knowledge Complexity Of Interactive Proof Systems. В этой статье она была концептуализирована как теоретическая модель для решения проблемы проверки математических утверждений без раскрытия доказательств. Эта концепция привлекла большое внимание академического сообщества, поскольку она поставила под сомнение возможности традиционных методов шифрования и предложила новый подход к работе с конфиденциальной информацией.

Со временем ZKP превратился из абстрактной теоретической концепции в конкретные протоколы, которые можно интегрировать в различные приложения. В 2010 году Грот опубликовал работу под названием " Неинтерактивные аргументы с нулевым знанием на основе коротких пар", которая стала основополагающей в разработке zk-SNARK, важного решения в ZKP. Наиболее значимым практическим применением ZKP является система доказательств с нулевым знанием, использованная в Z-cash в 2015 году, которая обеспечила защиту конфиденциальности транзакций и сумм. Впоследствии zk-SNARK объединили со смарт-контрактами, что привело к расширению спектра приложений.

Технические принципы работы zk-SNARK

Принципы, которых должна придерживаться традиционная ЗКП, следующие:

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

Принцип ZKP можно понять на простом примере: Если мне нужно доказать А, что у меня есть номер телефона Б, мне не нужно напрямую сообщать А номер телефона Б. Вместо этого я могу напрямую набрать номер телефона Б, и после того, как звонок будет соединен, он сможет доказать, что у меня действительно есть номер телефона Б. Этот процесс не раскрывает информацию о номере B.

И zk-SNARK продолжает совершенствоваться на этой основе, обладая следующими характеристиками:

  • Нулевое знание: Верификатор не может получить никакой полезной информации из доказательства.
  • Лаконичность: Доказательство имеет небольшой размер (обычно всего несколько десятков байт), а время проверки невелико (обычно всего несколько миллисекунд).
  • Неинтерактивный: Доказатель должен отправить доказательство верификатору только один раз, без дальнейшей коммуникации.
  • Доверенные параметры: И проверяющий, и проверяемый должны использовать общую справочную строку (Common Reference String, CRS), созданную доверенной третьей стороной. CRS может содержать некоторую конфиденциальную информацию, и если произойдет утечка или подделка, это может угрожать безопасности системы.

В своей работе Грот предложил неинтерактивный метод доказательства с нулевым знанием на основе пар, который преобразует вычислительную задачу в квадратичную арифметическую программу (QAP), а затем строит эффективное доказательство, используя криптографию эллиптических кривых и хэш-функции. Более поздние конструкции zk-SNARK обычно включают четыре этапа:

  • Установка: Выполняемая доверенной третьей стороной, она генерирует CRS, который включает в себя ключ доказательства (pk) для генерации доказательств и ключ проверки (vk) для проверки доказательств. Этот процесс нужно выполнить только один раз, и CRS можно использовать многократно.
  • Кодирование проблемы: Вычислительная задача f(x) = y преобразуется в QAP-форму A(x)-B(x) = C(x)-Z(x), где A(x), B(x), C(x) - полиномы, определяемые структурой схемы f, Z(x) - фиксированный полином, x - случайно выбранная точка, а y - выход f. Этот шаг может быть выполнен проверяющим или верификатором, или может быть выполнен заранее третьей стороной.
  • Генерация доказательства: Доказатель использует pk, x и входное значение w для f, чтобы сгенерировать доказательство π, доказывающее, что он знает w, которое удовлетворяет f(w) = y, не раскрывая конкретного значения w. Этот процесс включает в себя вычисления полиномов, операции с эллиптическими кривыми и операции с хэш-функциями, в конечном итоге генерируя π, состоящий из нескольких точек эллиптической кривой и хэш-значения.
  • Проверка доказательства: Выполняемая верификатором, она использует vk, x, y и π, чтобы проверить, действительно ли доказывающий знает w, которое удовлетворяет f(w) = y. Этот процесс также включает в себя вычисления полиномов, операции с эллиптическими кривыми и операции с хэш-функциями, что в конечном итоге приводит к получению булевого значения, указывающего на достоверность доказательства.

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

Зачем нам нужен zk-SNARK?

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

Кроме того, zk-SNARK обладает следующими преимуществами:

  • Защита конфиденциальности: zk-SNARK позволяет проверяющему продемонстрировать знание или выполнение определенных условий, не раскрывая никакой частной информации. Это особенно полезно в сценариях, связанных с конфиденциальными или частными данными, такими как аутентификация личности, анонимное голосование и частные транзакции.
  • Масштабируемость: zk-SNARK сжимает сложные вычислительные задачи в небольшие и быстрые доказательства, снижая вычислительную нагрузку и требования к хранению данных для проверяющих. Это полезно в сценариях, требующих эффективной проверки и хранения больших объемов данных, таких как облачные вычисления, масштабируемость блокчейна и верифицируемые вычисления.
  • Безопасность: zk-SNARK основан на математически трудных задачах, таких как задача дискретного логарифма и задача билинейного отображения, которые обеспечивают высокую безопасность. В предположении неквантовых вычислений, если только доверенная третья сторона не утечет или не подделает CRS, невозможно, чтобы проверяющий подделал доказательство или проверяемый подделал результат проверки.

Применение zk-SNARK в реальном мире

Первое применение zk-SNARK - это Zcash, который позволяет пользователям участвовать в полностью анонимных транзакциях, скрывая с помощью zk-SNARK такую информацию, как отправители, получатели и суммы. В современном пространстве Web3 технология zk-SNARK играет важную роль в масштабируемости блокчейна и управлении биржевыми резервами.

Масштабируемость блокчейна

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

zk-SNARK играет важную роль в этом решении, поскольку он может сжать транзакции или вычисления на Уровне2 в небольшое и быстрое доказательство, которое затем отправляется на проверку в основную цепочку, обеспечивая корректность и непротиворечивость Уровня2. В настоящее время существует два основных решения Layer2, основанных на zk-SNARK: ZK-rollup и Validium.

  • ZK-rollup: Это решение хранит все данные о состоянии на главной цепочке, но использует доказательства для проверки достоверности переходов между состояниями. Это обеспечивает доступность и безопасность данных уровня 2, но увеличивает нагрузку на основную цепочку хранения. Например, zkSync хранит данные о состоянии на главной цепочке Ethereum и обеспечивает достоверность переходов между состояниями с помощью доказательств нулевого знания. Похожие проекты включают Polygon zkEVM и Scroll.
  • Validium: Это решение хранит все данные о состоянии на Layer2 или у других доверенных третьих лиц и использует доказательства только для проверки достоверности переходов между состояниями, передавая доказательства в основную цепочку. Это снижает нагрузку на основную цепочку хранения, но может снизить доступность и безопасность данных уровня 2. DeversiFi использует технологию Validium для поддержания скорости и эффективности транзакций второго уровня, обеспечивая при этом конфиденциальность данных. В Loopring предусмотрен режим Validium, чтобы уменьшить давление на основную цепочку.

Резервные фонды в обменных пунктах

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

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

Типичным примером является Gate.io, в котором используется комбинация zk-SNARK и деревьев Меркла. Они шифруют данные пользователей и генерируют доказательства резервных фондов 100 различных токенов с помощью схем с ограничениями, чтобы продемонстрировать их 100% платежеспособность.

Источник: https://www.gate.io/proof-of-reserves

Читать далее: Как zk-SNARK улучшает Gate.io Proof of Reserves

Помимо приложений Web3, zk-SNARK можно использовать и в доменах, не связанных с блокчейном, например:

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

Технические ограничения и проблемы

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

  • Доверенные параметры: zk-SNARK требует CRS, созданный доверенной третьей стороной, который может содержать конфиденциальную информацию. Если произойдет утечка или подделка, это может поставить под угрозу безопасность системы. Чтобы решить эту проблему, некоторые проекты используют для генерации CRS подход Multi-Party Computation (MPC), при котором несколько участников совместно вносят свой вклад в процесс генерации и уничтожают свою секретную информацию. Однако этот подход по-прежнему сталкивается с такими проблемами, как добросовестность участников, затраты на связь и трудности координации.
  • Универсальность: В настоящее время zk-SNARK может быть применен только к конкретным вычислительным задачам, таким как QAP или R1CS, и не может быть применен к произвольным вычислительным задачам. Чтобы устранить это ограничение, некоторые проекты исследовали использование общих схем (GC) или общих рекурсивных доказательств (GRS) для расширения применимости zk-SNARK. Однако такой подход имеет свои компромиссы, такие как увеличение размера доказательства, снижение эффективности и повышенная сложность.
  • Верифицируемость: В то время как zk-SNARK гарантирует, что проверяющий не будет сливать частную информацию, он не гарантирует, что проверяющий не будет обманывать или вводить в заблуждение верификатора. Чтобы решить эту проблему, некоторые проекты ввели проверяемые случайные функции (VRF) или проверяемые функции задержки (VDF) для повышения целостности проверяющего. Однако такой подход также увеличивает сложность и накладные расходы системы.

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

Сценарии применения в будущем

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

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

Заключение

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

Autor: Wayne
Tradutor(a): Sonia
Revisor(es): KOWEI、Piccolo、Elisa、Ashley He、Joyce
* As informações não se destinam a ser e não constituem aconselhamento financeiro ou qualquer outra recomendação de qualquer tipo oferecido ou endossado pela Gate.io.
* Este artigo não pode ser reproduzido, transmitido ou copiado sem fazer referência à Gate.io. A violação é uma violação da Lei de Direitos de Autor e pode estar sujeita a ações legais.
Comece agora
Registe-se e ganhe um cupão de
100 USD
!
Criar conta