ALEO
September 15, 2022

Що таке доказ із нульовим розголошенням (zero-knowledge proof)?

Доказ з нульовим розголошенням — це криптографічний протокол, який дозволяє одній стороні (що доводить) підтвердити істинність твердження іншій стороні (верифікатору), при цьому не розкриваючи ніякої додаткової інформації про нього (ні змісту, ні джерела, з якого доказуючий дізнався про правдивість). Вперше про доказ з нульовим розголошенням написали у своїй науковій статті дослідники з Массачусетського технологічного інституту (MIT) Шафі Голдвассером, Сільвіо Мікалі та Чарльзом Ракоффом ще 1985 року.

Доказ із нульовим розголошенням можна охарактеризувати трьома основними властивостями:

1. Повнота. Якщо доказуючий знає твердження, він зможе переконати у цьому перевіряючого.

2. Коректність. Якщо доказуючий не знає твердження, він може обдурити перевіряючого лише з невеликою ймовірністю.

3. Нульове розголошення. Перевіряючий, навіть якщо він веде себе нечесно, не дізнається нічого крім самого факту, що твердження відоме тому, хто його доказує.

Які існують види доказів із нульовим розголошенням?

  • інтерактивний (перевіряючий самостійно опитує того, хто доводить твердження в режимі реального часу);
  • неінтерактивний (не вимагає безпосередньої комунікації між перевіряючим та доказуючим; перший може перевіряти справжність затвердження постфактум).

Докази з нульовим розголошенням також можна розділити на дві групи, виходячи з наявності або відсутності факту фіксації справжності твердження кількома перевіряючими.

Як це працює?

Доказ зазвичай має форму інтерактивного протоколу. Це означає, що сторона B задає низку питань доказуючому, якщо він знає секрет, то відповість на всі питання правильно. Якщо секрет стороні A невідомий, але вона хоче переконати у зворотному перевіряльника, вона має певну ймовірність (як мінімум 50%) відповісти правильно на запитання. Однак, після деякої кількості питань (10–50) перевіряючий із досить високою ймовірністю переконується в тому, що той, хто доводить, не знає секрет. При цьому, жодна з відповідей не дає жодних відомостей про секрет.

Добре пояснює доказ із нульовим знанням Жан-Жак Кіскатер та Луї Гіллу за допомогою історії про печеру Алі-Баби (див. малюнок). Щоб пройти крізь печеру, необхідно відкрити двері між C і D. Двері відчиняються лише тоді, коли хтось вимовляє чарівні слова. Нехай Пеггі знає чарівні слова та хоче довести це Віктору, не розкриваючи самих слів.

Ось як відбувається доказ з нульовим знанням у даном випадку:
1. Віктор перебуває у точці А.
2. Пеггі проходить весь шлях печерою до дверей або по проходу C, або по проходу D. Віктор не бачить в яку сторону пішла Пеггі. Після того, як Пеггі зникне у печері, Віктор переходить у точку В.
3. Віктор кричить Пеггі, щоб вона вийшла з печери або з лівого проходу або з правого проходу.
4. Пеггі, при необхідності використовуючи чарівні слова, щоб відімкнути двері, виходить із печери з того проходу, з якого просив її вийти Віктор.
5. Пеггі та Віктор повторюють етапи 1–4 кілька разів.

Якщо Пеггі не знає секрету, то вона не зможе обдурити Віктора, якщо етапи доказу повторюються кілька разів поспіль. Оскільки вона може вийти тільки з того проходу, до якого вона зайшла, у кожному раунді протоколу ймовірність вгадати, з якого боку Віктор попросить її вийти, становить 50%. Відповідно, її ймовірність обдурити Віктора також дорівнює 50%. Однак, ймовірність обдурити його в двох раундах складе вже 25%, а в n раундах має лише один шанс з 2^n. Віктор може впевнено припустити, що якщо всі n (n=10–50) раундів доказу Пеггі правильні, вона дійсно знає таємні слова, що відкривають двері між точками С і D.

Для чого використовують доказ із нульовим розголошенням?

Одним із очевидних застосувань доказу з нульовим розголошенням у криптовалютах можна назвати перевірку наявності у користувача коштів для транзакції, при цьому не розкриваючи учасникам мережі, хто цей користувач та скільки грошей у нього на рахунку.

Цей протокол також можна використовувати у сферах, де необхідно забезпечити безпеку даних (наприклад персональної інформації) або проведення фінансової транзакції.

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

Які переваги доказів із нульовим розголошенням?

  • підвищення приватності користувачів у публічних блокчейнах та інших мережах
  • зміцнення інформаційної безпеки за рахунок заміни неефективних способів автентифікації та верифікації;
    підвищення пропускної спроможності блокчейнів та поліпшення масштабованості.

Які недоліки доказів із нульовим розголошенням?

  • вимагають значних обчислювальних потужностей
  • можливість компрометації при довіреній установці
  • потенційна вразливість перед квантовими обчисленнями

Які проекти використовують докази із нульовим розголошенням?

Орієнтована на підвищену приватність користувачів криптовалют ZCash використовує модифікований протокол zk-SNARKs. Цей же протокол був частково імплементований у мережі Ethereum у рамках хардфорку Byzantium.

Стартап QEDIT розробив SDK (Software Development Kit), який дозволяє імплементувати докази з нульовим розголошенням у вже існуючі блокчейни для підвищення приватності транзакцій із збереженням можливості їх валідації нодами.

Компанія StarkWare створила рішення на основі протоколу zk-STARKs, які також можуть бути реалізовані у існуючих мережах.

Aztec — це проект, який намагається впровадити доказ з нульовим розголошенням в існуючу мережу Ethereum шляхом створення стека інтелектуальних контрактів, орієнтованих на конфіденційність.

Ну, і звичайно ж, Aleo-перша у світі повнофункціональна платформа для розробки приватних додатків (з нульовим розголошенням), що відрізняється швидкістю, цілісністю і масштабованістю. Aleo досягає цього, використовуючи децентралізовані системи та криптографію з нульовим розголошенням для захисту даних користувача в Інтернеті. Для створення програми на Aleo була розроблена мова програмування Leo. Вона дозволяє розробникам інтуїтивно та легко писати програми з нульовим розголошенням та гарантує, що дані користувачів за умовчанням є конфіденційними.

Стаття написана — Aleksander#8393

У статті використовувалися матеріали з таких джерел:
1. https://forklog.com/cryptorium/chto-takoe-dokazatelstvo-s-nulevym-razglasheniem-zero-knowledge-proof/

2. https://habr.com/ru/post/94901/