Подробное объяснение доказательств с нулевым знанием (ZKP)

СреднийNov 28, 2023
Zero-Knowledge Proof (ZKP) - это метод шифрования, который позволяет одной стороне (известной как prover) доказать другой стороне (известной как verifier), что утверждение является истинным, не раскрывая никакой другой информации. К популярным решениям ZKP относятся zk-SNARKS, zk-STARKS, PLONK и Bulletproofs. В этой статье мы познакомимся с этими четырьмя типами решений ZKP и проанализируем их преимущества и недостатки.
Подробное объяснение доказательств с нулевым знанием (ZKP)

Опыт

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

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

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

Определение и принцип ZKP

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

Концептуальная диаграмма доказательств нулевого знания (Источник: ChainLink)

Основные принципы доказательств с нулевым знанием (ZKP) могут быть определены следующими тремя признаками:

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

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

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

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

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

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

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

В вышеупомянутом примере с телефонным звонком "я" - свидетель, не желающий раскрывать информацию, а А - проверяющий, и поставленная задача звучит так: "Докажите, что "я" обладаю номером Б". В процессе ответа "я" подключаю звонок на номер Б, чтобы доказать, что он действительно у меня.

Почему ZKP необходим?

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

По сравнению с другими технологиями шифрования, ZKP имеет множество преимуществ:

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

Будь то традиционный Web 2.0 или зарождающийся Web 3.0, перспективы применения ZKP весьма обширны.

Типы доказательств с нулевым знанием (ZKP)

Существует множество реализаций доказательств с нулевым знанием, таких как zk-SNARKs, zk-STARKs, PLONK и Bulletproofs. Каждый тип имеет свои преимущества и недостатки с точки зрения объема доказательства, времени работы провера и времени проверки. Эта статья посвящена знакомству с четырьмя типами, которые чаще всего используются в сценариях применения.

zk-SNARKs

zk-SNARK, что означает "Zero-Knowledge Succinct Non-Interactive Argument of Knowledge", - это криптографические инструменты, используемые для доказательства того, что кто-то знает часть информации, не раскрывая саму информацию. В zk-SNARK "нулевое знание" означает, что проверяющий может доказать истинность утверждения, не предоставляя никакой информации, кроме его правильности. "Лаконичность" означает небольшой размер доказательства и скорость процесса проверки. "Неинтерактивный" означает, что после создания доказательства оно может быть проверено любым человеком без дальнейшего взаимодействия между проверяющим и проверяемым. Основные компоненты zk-SNARKs включают в себя:

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

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

zk-STARKs

zk-STARK, или "Zero-Knowledge Scalable Transparent Arguments of Knowledge", позволяют одной стороне (проверяющему) доказать другой (проверяемому), что она знает определенную информацию, не раскрывая саму информацию. В отличие от zk-SNARK, zk-STARK не требуют доверенного процесса установки. Это означает, что они не полагаются на конфиденциальность определенной частной информации - свойство, которое часто считается решающим для безопасности, поскольку доверенная установка может стать системной уязвимостью.

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

PLONK

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

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

Пуленепробиваемые

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

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

Исследование конкретного случая

Давайте лучше поймем эти четыре различные технологии доказательства нулевых знаний (ZKP) - zk-SNARKs, zk-STARKs, PLONK и Bulletproofs - с помощью аналогии с картой сокровищ.

Представьте, что у Вас есть карта сокровищ, которая ведет к точному местонахождению зарытого клада. Вы хотите доказать кому-то, что знаете, где находится сокровище, не раскрывая содержимого карты или фактического местонахождения сокровищ.

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

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

ПЛОНКА: На этот раз Вы создаете набор загадок, каждая из которых указывает на местонахождение сокровищ. Вы представляете другой стороне универсальный метод проверки решений этих загадок (универсальную установку), достаточный для того, чтобы они поверили, что Вы знаете все ответы, без необходимости решать каждую загадку по отдельности.

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

В этой аналогии:

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

Каждый метод имеет свои компромиссы в практическом применении, и выбор зависит от конкретного сценария применения и потребностей в безопасности.

Простое сравнение различных схем ZKP

Прежде чем сравнивать, нам нужно понять критерии оценки ZKP:

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

Теперь давайте сравним zk-SNARKs, zk-STARKs, PLONK и Bulletproofs на основе этих показателей и обсудим их плюсы и минусы.

zk-SNARKs

Плюсы

  • Размер доказательства: Очень маленькие, что делает их пригодными для использования в условиях ограниченной пропускной способности.
  • Время верификации: Быстрая проверка, подходит для сценариев, требующих быстрой реакции
  • Универсальность: Применимость к различным сложным вычислениям

Cons

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

zk-STARKs

Плюсы

  • Без доверенной настройки: Устраняет необходимость в доверенной настройке, повышая безопасность системы
  • Постквантовая безопасность: Противодействие атакам со стороны квантовых компьютеров
  • Размер доказательства: Хотя он больше, чем у zk-SNARK, при определенных условиях он все же выполним.

Cons

  • Размер доказательства: Больше, чем zk-SNARK, что потенциально снижает эффективность хранения и передачи данных.
  • Время доказательства: Возможно, медленнее, чем zk-SNARKs, особенно при сложных вычислениях.

PLONK

Плюсы

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

Cons

  • Доверенная установка: Хотя требования к настройке менее строгие, чем у zk-SNARKs, она все же требуется
  • Постквантовая безопасность: Аналогично, большинство конструкций не являются постквантовыми безопасными

Пуленепробиваемые

Плюсы

  • Нет доверенной настройки: Нет необходимости в доверенной установке, что снижает риски безопасности
  • Размер доказательства: Размер доказательства медленно растет со сложностью утверждения
  • Время проверки: Быстро для доказательств диапазона

Cons

  • Время доказательства: Генерация доказательств может занять больше времени
  • Размер доказательства: Хотя он и меньше, но все же больше, чем zk-SNARK в больших доказательствах
  • Постквантовая безопасность: Не разработана специально для постквантовой среды

Примеры применения ZKP в Web3

В Web3 существует множество примеров применения ZKP, и мы выбрали два типичных случая для изучения.

Масштабирование блокчейна - Ethereum Layer2

zk-Rollups - это решение второго уровня, которое объединяет сотни или тысячи транзакций вне цепи и генерирует доказательство zk-SNARK. Это доказательство вместе с данными о транзакции передается в главную цепочку Ethereum. Она позволяет подтверждать транзакции без обработки каждой транзакции основной цепочкой, тем самым снижая комиссионные сборы и увеличивая пропускную способность. Компании zk-Sync Era и Starknet используют технологию zk-rollup, а компания Polygon недавно представила Polygon zk-EVM с использованием zk-rollup.

Демонстрация применения zk-SNARKs на уровне 2 (Источник: Саймон Браун)

Конфиденциальность данных - Доказательство резерва биржи

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

Заключение

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

learn.articles.author Wayne
learn.articles.translator Piper
learn.articles.reviewer Piccolo、Edward、Elisa、Ashley He、Joyce
learn.articles.copyrightNoticeOne
learn.articles.copyrightNoticeTwo
learn.articles.start.now
learn.articles.start.now.voucher
learn.articles.create.account