Basic
March 26

ZERO KNOWLEDGE PROOF

Intro

В этой статье поговорим о таком протоколе, как Zero-Knowledge Proof или, по другому — доказательство с нулевым разглашением.

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

What is Zero-Knowledge Proof?

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

Уже существует ряд проектов, использующих данный протокол: Polyhedra Network, ZkSync, StarkNet и т.д.

How does it works?

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

Подобное решение негативно сказывается на скорости обработки информации всей сети в целом. Протокол ZKP решает данную проблему.

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

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

Zero-Knowledge Proof work scheme

Types of Zero-Knowledge Proof

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

  • ZK-SNARK (Zero-Knowledge Succinct Non-Interactive Argument of Knowledge)
  • ZK-STARK (Zero-Knowledge Scalable Transparent Argument of Knowledge)

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

ZK-SNARK

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

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

ZK-STARK

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

ZK-SNARK and ZK-STARK comparison

Однако ZK-STARK обычно требует больше вычислительных ресурсов для создания и проверки доказательств по сравнению с ZK-SNARK.

Подробнее о технической работе данных реализаций можно узнать в этих статьях: ZK-SNARK, ZK-STARK.

Summary

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

Популярность данного протокола активно набирает обороты и он уже используется в таких проектах, как Polyhedra Network, ZkSynk, StarkNet и т.д.

Стоит обратить внимание на то, что протокол Zero-Knowledge Proof, под капотом, использует 2 основные реализации: ZK-SNARK и ZK-STARK, за выбор которых отвечает потребность в большей безопасности или скорости обработки данных.