Докази з нульовим розголошенням, пояснення
Що таке доказ з нульовим розголошенням?
Доказ з нульовим розголошенням (Zero-Knowledge Proof, ZK-proof) — це криптографічний протокол, який дозволяє одній особі (доказувальнику) переконати іншу (верифікатора) у правдивості певного твердження, не розкриваючи жодних деталей про саме твердження.
Дослідники Шафі Ґольдвассер, Сільвіо Мікалі та Чарльз Ракоф вперше представили цю ідею на початку 1980-х років. Головна мета ZK-доказу — переконати верифікатора, що твердження правдиве, не розкриваючи нічого, окрім його достовірності.
Хороший доказ з нульовим розголошенням повинен відповідати трьом основним критеріям:
- Повнота: Верифікатор приймає доказ із високою ймовірністю, якщо твердження правдиве, а обидва учасники дотримуються протоколу.
- Коректність: Якщо твердження неправдиве, жоден доказувальник не має можливості переконати верифікатора у протилежному, за винятком вкрай малоймовірних обставин.
- Нульове розголошення: Після взаємодії з доказувальником верифікатор переконується лише у правдивості твердження і не дізнається більше нічого про секрет.
Існують різні типи доказів з нульовим розголошенням:
Інтерактивні ZK-докази
Інтерактивні докази з нульовим розголошенням вимагають багаторазової взаємодії між доказувальником і верифікатором.
Неінтерактивні ZK-докази
Неінтерактивні докази з нульовим розголошенням забезпечують компактний доказ, який можна перевірити за один крок.
Статистичні ZK-докази
Статистичні докази з нульовим розголошенням пропонують розрахункову коректність із невеликою ймовірністю помилки.
Докази знання (Proof-of-Knowledge, PoK)
PoK є підкласом ZK-доказів, що демонструють володіння доказувальником певними знаннями, пов’язаними із твердженням.
Докази перестановок і діапазонів
Ці ZK-докази використовуються в електронному голосуванні та транзакціях із збереженням конфіденційності.
Сигма-протоколи
Сигма-протоколи є класом ZK-доказів, які включають три етапи: зобов’язання, виклик і відповідь.
Bulletproofs (кулі-докази)
Bulletproofs розроблені для ефективного доведення діапазонів для великих наборів значень.
Як працюють докази з нульовим розголошенням?
ZK-докази дозволяють доказувальнику переконати верифікатора у правдивості твердження без розкриття жодної інформації про саме твердження. Доказувальник та верифікатор взаємодіють у кількох раундах протоколу, а в результаті верифікатор формує впевненість у правдивості цього твердження, не дізнаючись жодної додаткової інформації про секрет.
Ілюстрацією для роботи ZK-доказів може бути «Задача трьох кольорів», також відома як «Задача розфарбування графу».
Задача
Уявіть карту з кількома ділянками (вершинами), з’єднаними між собою лініями (ребрами). Завдання полягає у тому, щоб зафарбувати кожну ділянку одним із трьох кольорів так, щоб жодні сусідні частини не мали однакового кольору. Чи можете ви переконати когось, що знаєте правильне розфарбування цієї мапи, не розкриваючи реальних кольорів?
Рішення за допомогою ZK-протоколу
Підготовка
Доказувальник і верифікатор погоджуються щодо ділянок і зв’язків на графі (карті).
Твердження
Доказувальник стверджує, що має валідне розфарбування графа трьома кольорами.
Раунд 1: Зобов’язання
Доказувальник таємно обирає кольори для кожної області без їх розголошення. Натомість доказувальник надає верифікатору зашифроване зобов’язання для кожної ділянки. Верифікатор не може побачити, які кольори закладені в цих зобов’язаннях, оскільки вони “зачинені” наче в коробках.
Раунд 2: Виклик
Верифікатор обирає випадкову область і запитує у доказувальника розкрити зобов’язання для цієї конкретної зони. Доказувальник має показати колір у відповідності до цього зобов’язання.
Раунд 3: Відповідь
Після зобов’язання щодо кольорів доказувальник повинен довести, що розкрите розфарбування є правильним. Це включає демонстрацію відмінності кольорів між сусідніми ділянками. Верифікатор перевіряє відповідь, щоб переконатися, що доказувальник дотримався правил.
Ітерація
Раунди 2 і 3 повторюються багато разів із використанням різних випадкових ділянок. Процедуру повторюють стільки разів, скільки необхідно для досягнення високого ступеня впевненості у правдивості твердження доказувальника.
Висновок
Якщо доказувальник постійно надає валідні відповіді для кожного раунду, верифікатор переконується у наявності валідного розфарбування графа, не знаючи при цьому справжніх кольорів. Також дотримується властивість нульового розголошення — верифікатор не дізнається реальних кольорів жодної ділянки.
Цей приклад демонструє, як ZK-докази дозволяють переконати у наявності рішення, водночас зберігаючи його деталі в таємниці, що стає потужним інструментом для посилення конфіденційності та безпеки у різних додатках.
Які існують застосування доказів з нульовим розголошенням?
ZK-докази є корисними інструментами, які мають численні застосування в різних сферах і вирішують важливі проблеми конфіденційності та безпеки.
У світі криптовалют ZK-докази відіграють ключову роль у підвищенні конфіденційності та масштабованості транзакцій. Вони дозволяють виконувати анонімні транзакції, не розголошуючи деталей про них і особи користувачів, як це реалізовано у фокусних на приватності криптовалютах, наприклад, Zcash.
У сфері аутентифікації та контролю доступу ZK-докази використовуються для демонстрації знання пароля чи криптографічного ключа без розкриття самого пароля або ключа. Це забезпечує більш дружню для користувачів та безпечну аутентифікацію.
ZK-докази також застосовуються в системах електронного голосування, де виборці можуть показати легітимність свого голосу, не розкриваючи дійсне голосування, чим захищають як конфіденційність виборців, так і інтегральність виборчого процесу.
Крім того, ZK-докази використовуються для передачі та перевірки точності обчислень над приватними даними без їх розголошення.
У разі цифрових валют центральних банків (CBDC) ZK-докази можуть забезпечити приватні транзакції із збереженням анонімності користувачів, що сприяє збереженню балансу між конфіденційністю та прозорістю у таких транзакціях.
Чи можуть ZK-докази бути інтегровані в блокчейн-платформи?
Так, ZK-докази можуть бути інтегровані в блокчейн-платформи і вже успішно впроваджені в різних блокчейн-мережах. Вони забезпечують потужний засіб для підвищення ефективності, безпеки та конфіденційності у блокчейн-системах.
При інтеграції у блокчейн-платформи ZK-докази виконують кілька функцій:
Конфіденційність та закритість
ZK-докази дозволяють здійснювати приватні транзакції, зберігаючи при цьому деталі, такі як сума транзакції або адреси відправника та отримувача, у таємниці.
Перевірка та аудит
Без розкриття фактичних даних або інформації ZK-докази можуть перевіряти достовірність певних обчислень або заяв. Це гарантує цілісність даних.
Масштабованість
Використання ZK-доказів дозволяє підвищити масштабованість платформи завдяки компактним доказам складних обчислень.
Ідентифікація та аутентифікація
Забезпечення ідентифікації та аутентифікації користувачів без втрати їх приватності.