Что такое доказательство с нулевым разглашением (Zero-Knowledge Proof)?

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

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

Что бы протокол был по настоящему таковым, он должен обладать тремя следующими свойствами:

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

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

Алгоритмы ZK-протоколов

Можно выделить два основных протокола нулевого разглашения, которые используются чаще всего:

Алгоритмы ZK-протоколов
  • zk-SNARK (Zero-Knowledge Succinct Non-Interactive Argument of Knowledge) — краткий не интерактивный аргумент знания с нулевым разглашением. Доказывающая сторона может доказать владение информацией при помощи секретного ключа и при этом ни как не взаимодействуя с проверяющей стороной. Секретный ключ уничтожается сразу после доверенной установки.
  • zk-STARK (Zero-Knowledge Scalable Transparent ARguments of Knowledge) — краткий прозрачный аргумент с нулевым разглашением). В отличии от ZK-SNARK, не требует доверенной установки, а используемая случайность является общедоступной информацией.

Преимущества

  • Повышение конфиденциальности пользователей.
  • Увеличение информационной безопасности.
  • Повышение пропускной способности и масштабируемости блокчейнов.

Недостатки

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

Где используется ZK?

  • ZCash использует модифицированный протокол zk-SNARK для увеличения конфиденциальности транзакций пользователей.
  • Компании Resistance и StarkWare разрабатывают решения для работы децентрализованных бирж на основе zk-STARK.
  • Polygon запустил виртуальную машину Miden VM, которая работает на базе протокола zk-STARK.
  • Голландский банк ING использует модифицированную версию Zero-Knowledge Range Proof (ZKRP). Данная модификация протокола может доказать, что клиент банка имеет заработную плату в определенном диапазоне, который позволяет ему взять ипотечный кредит, но не раскрывает точную сумму.

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