Доказательство с нулевым разглашением (Zero-Knowledge Proof)
17.04.2026
Доказательство с нулевым разглашением (zero-knowledge proof, ZKP) — криптографический протокол, в котором одна сторона (пруверы) убеждает другую (верификатор), что утверждение истинно, не раскрывая ничего, кроме самого факта истинности. Концепцию ввели Шафи Голдвассер, Сильвио Микали и Чарльз Рэкофф в статье 1985 года «The Knowledge Complexity of Interactive Proof Systems» — работа получила Гёделевскую премию (1993) и стала частью заслуг Голдвассер и Микали, за которые им присудили Тьюринговскую премию (2012).
Три свойства
Любая система ZKP обладает:
- Полнотой (completeness) — если утверждение истинно, честный пруверы убедит честного верификатора
- Корректностью (soundness) — если утверждение ложно, нечестный прувер не сможет убедить верификатора (за исключением пренебрежимо малой вероятности)
- Нулевым разглашением (zero-knowledge) — верификатор не узнаёт ничего, кроме факта истинности утверждения; никакие сведения о том, почему оно истинно, не утекают
Хрестоматийная аналогия: доказать, что вы знаете пароль, не раскрывая сам пароль.
Современные системы доказательств
- zk-SNARK (Succinct Non-interactive ARgument of Knowledge) — очень короткие доказательства (сотни байт), верификация за константное время. Классические конструкции (Groth16, PGHR13) требуют доверенной церемонии под конкретную схему; PLONK и Marlin используют универсальный обновляемый setup; Halo 2 (разработан Electric Coin Company для Zcash) построен на полиномиальных коммитментах и обходится без доверенной церемонии.
- zk-STARK (Scalable Transparent ARgument of Knowledge) — предложены Ben-Sasson и др. (2018). Прозрачны (без доверенной церемонии), опираются только на хеш-функции, потенциально постквантово-стойки. Доказательства больше (десятки–сотни КБ). Применяются в StarkWare — Starknet и StarkEx.
- Bulletproofs — короткие range-доказательства без доверенной церемонии. С 2018 года используются в Monero для конфиденциальных сумм.
- Nova / HyperNova, Plonky2 / Plonky3 — современные схемы folding и рекурсивные SNARK, заточенные под инкрементальные вычисления.
Где используется в крипте
Приватность
- Zcash — экранированные транзакции на zk-SNARK (Groth16 → Halo 2)
- Aztec Network, Aleo, Namada — приватные смарт-контракты
- Monero — Bulletproofs для range-доказательств
- Tornado Cash — миксер на zk-SNARK (санкции Минфина США частично отменены Пятым окружным судом в 2024 году)
Масштабируемость — ZK-роллапы
- zkSync Era, Starknet, Polygon zkEVM, Scroll, Linea — сжимают тысячи L2-транзакций в одно validity-доказательство, публикуемое на Ethereum. Здесь ZK используется ради краткости, а не для сокрытия данных.
Идентичность и credentials
- Worldcoin — подтверждение уникальности человека по скану радужки, не раскрывая сам скан
- zk-email — доказательство получения письма без раскрытия его содержимого
- Polygon ID, Semaphore — ончейн-идентичность без привязки к истории кошелька
Верифицируемые вычисления
- zkML (EZKL, Modulus Labs) — доказательство, что AI-модель корректно отработала на заданных входах
- Ончейн-копроцессоры (Axiom, Herodotus) — доказательство результатов офчейн-вычислений
Частое заблуждение — «ZK» ≠ «приватно»
ZK-роллап держит «ZK» в названии, но, как правило, не обеспечивает пользовательскую приватность. Свойство zero-knowledge здесь используется для краткости — одно маленькое доказательство подтверждает тысячи транзакций — а не для сокрытия данных. Все транзакции в роллапе остаются публичными. Чтобы получить приватность пользователей, требуется отдельный дизайн (Aztec, Aleo).
