Що таке доказ із нульовим розголошенням (ZKP) у блокчейні?
Зміст
Левова частка успіху публічних блокчейнів полягає у їхній прозорості. Однак як можна водночас зберегти цю прозорість та забезпечити конфіденційність? Це можливо завдяки методу доказу з нульовим розголошенням (ZKP), який все частіше застосовується у публічних блокчейнах.
Доказ із нульовим розголошенням (з англ. zero-knowledge proof, ZKP) — це метод, який дозволяє перевірити точність твердження, не розкриваючи додаткової інформації про саме твердження. Концепція ZK Proof була вперше представлена в 1985 році дослідниками Шафі Голдвассером, Сільвіо Мікалі та Чарльзом Ракоффом і з того часу розроблялася та застосовувалася у різних проєктах у галузі криптографії та технології блокчейн.
У рамках протоколу сторона, що доводить, демонструє правдивість твердження верифікатору, не надаючи жодних додаткових даних. Трьома основними характеристиками ZK Proof є цілісність, точність та нульове розголошення.
- Цілісність означає здатність доказу гарантувати, що твердження, що перевіряється, є істинним.
- Точність означає здатність доказу гарантувати, що твердження, що перевіряється, є точним і не підробленим.
- Нульове розголошення означає можливість доказу не розкривати жодної додаткової інформації про твердження, що перевіряється.
Є два основні типи доказів із нульовим розголошенням: інтерактивний та неінтерактивний.
Інтерактивні докази припускають взаємодії, що повторюються між стороною, що доводить, і верифікатором. Останній «вимагає» від того, хто доводить, неодноразово продемонструвати своє знання факту. Процес повторюється до тих пір, поки верифікатор не запевниться у правдивості твердження.
Неінтерактивний доказ передбачає, що обидві сторони не потребують комунікації та справжність затвердження може бути доведена вже після.
Найвідомішими прикладами ZK Proof є zk-SNARKs та zk-STARKs.
А яскравим прикладом успішного застосування ZK Proof є криптовалюта Zcash, яка використовує zk-SNARK для забезпечення конфіденційності та анонімності транзакцій. Іншим проєктом, який використовує ZK Proof, є децентралізована біржа dYdX. Проєкт використовує zk-STARK для виконання смартконтрактів.
Співзасновник Ethereum Віталік Бутерін назвав ZK Proof «найважливішою технологією» для масштабування блокчейн-платформ.
Як працює ZKP? Простими словами
Припустимо, що є дві сторони, які хочуть обмінятися інформацією. Одна сторона має підтвердити правдивість твердження іншої сторони, не маючи достатнього обсягу інформації. У такому разі потрібно придумати механіку дій, виконавши які перша сторона зможе довести своє твердження, а верифікатор зможе підтвердити його істинність.
Розглянемо принцип ZKP наочно. Уяви, що ти стоїш зі своїм другом біля входу до будинку. Увійшовши до нього, ти бачиш коридор ліворуч (А) та праворуч (В). Який шлях ти обереш — не важливо, проте треба пам’ятати, що ці коридори з’єднуються в одній точці дверима із замком. Таємний пароль до дверей є тільки у тебе, проте друг сумнівається в цьому. Твоє завдання — довести, що ти маєш таємний код, не називаючи його. Для цього друг входить у будинок у момент, коли ти вже знаходишся біля дверей. Він називає коридор, яким тобі потрібно буде пройти до нього — А чи В. Ти або повертаєшся тим же коридором, що йшов до дверей, або відкриваєш замок секретним кодом і потрапляєш у потрібний коридор. Повторивши експеримент кілька разів, ти підтвердиш істинність свого твердження, не надаючи фактичних даних.
У чому полягають переваги та недоліки ZKP?
Переваги ZK Proof:
- Конфіденційність. Однією з основних переваг ZK Proof є здатність зберігати конфіденційність даних, що перевіряються. Метод дозволяє перевірити цілісність та точність інформації, не розкриваючи додаткової інформації про саме затвердження.
- Швидкість. Доказ у рамках методу ZKP можна зробити дуже коротким і простим, а це означає, що на його перевірку витратиться мінімум часу.
- Відсутність взаємодії. Докази ZKP не є інтерактивними, а це означає, що сторонам не треба спілкуватися під час процесу перевірки.
- Об’єктивність. Твердження в рамках ZKP піддаються перевірці, відповідно будь-хто може перевірити доказ і підтвердити його певність без додаткової інформації.
- Сумісність зі смартконтрактами. ZKP можна використовувати для створення смартконтрактів із підвищеною приватністю.
Недоліки ZK Proof:
- Складність. Створення та впровадження ZK Proof — трудомісткий процес, що потребує високого рівня математичних знань та обчислювальних ресурсів.
- Генерація поза мережею. ZKP генеруються поза мережею, що створює ризик підробки доказів зловмисниками.
- Обмежена застосовність. ZKP підходить не для всіх типів даних або варіантів використання. Найкраще він працює з конкретними типами завдань чи даних.
- Потрібна довіра до налаштування. ZKP вимагає етапу налаштування, на якому створюється загальний рядок посилань (CRS). CRS повинна зберігатися в секреті, і якщо її скомпрометувати, під загрозою буде безпека всієї системи.
Що таке zk-SNARK та zk-STARK?
zk-SNARK (Zero-knowledge Succinct Non-interactive Argument of Knowledge) — це тип неінтерактивного ZKP, який вимагає довірчої установки між сторонами. Для створення доказів для приватних транзакцій потрібен набір відкритих параметрів або правил, які записані в код протоколу.
Одним із найяскравіших прикладів застосування zk-SNARK є криптовалюта Zcash. Проєкт використовує протокол zk-SNARK для забезпечення конфіденційності та анонімності транзакцій. Вони шифруються в мережі та при цьому перевіряються на правдивість за допомогою доказів із нульовим розголошенням. Дотримуючись правил консенсусу, верифікаторам не потрібно знати всю інформацію про транзакцію, щоб її перевірити.
Альтернативою zk-SNARK є zk-STARK — швидша та дешевша версія технології. Характерною рисою zk-STARK є відсутність довірчого налаштування. Замість неї використовується простіша симетрична криптографія — стійкі до колізій хеш-функції. Іншою відмінністю zk-STARK є швидкість виконання. Завдяки однаковій кількості циклів перевірки zk-STARK оперує меншим обсягом даних чим запобігає надмірному навантаженню на систему та покращує масштабованість. Тому zk-STARK застосовуються в ZK-Rollups — рішеннях для другого рівня блокчейнів (L2).
Створена понад 30 років тому, технологія доказу з нульовим розголошенням розв’язує гострі проблеми сучасних публічних блокчейнів: конфіденційність та масштабованість. А подальший розвиток методу може вивести застосування блокчейн-технології на зовсім новий рівень. Отже, з ZK Proof ми можемо виграти відразу дві битви — за конфіденційність та безпеку.