Глосарій

Доказ з нульовим розголошенням (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).

Дивіться також