Доказ із нульовим розголошенням — це криптографічний протокол, що дозволяє одній стороні (тому, хто доводить) підтвердити істинність твердження іншій стороні (верифікатору), при цьому не розкриваючи жодної додаткової інформації про нього (ні змісту, ні джерела, з якого той, хто доводить, довідався про правдивість). Таке визначення вперше було запропоноване дослідниками з Массачусетського технологічного інституту (MIT) Шафі Голдвассером, Сільвіо Мікали та Чарльзом Ракоффом у науковій статті "Складність доказів в інтерактивних системах", що була написана на сторінках "Докази".
Як це працює?
Уявіть, що ви перебуваєте в кімнаті з людиною, якій зав’язали очі. На столі перед вами лежать дві кульки — біла і чорна. Вам необхідно довести другій людині (верифікатору), що кульки справді різних кольорів, при цьому не розкриваючи, яких саме. Для цього ви маєте попросити її заховати обидві кульки під стіл. Після цього попросіть дістати лише одну, щоб ви могли її побачити. Далі кулька знову ховається і наступного разу верифікатор знову може показати або білу, або чорну. Однак ви зможете довести твердження, оскільки точно знаєте, чи міняв він їх під столом.
Проте повністю верифікатор в істинності факту не буде впевнений, адже могли мати місце удача або обман. Ця проблема вирішується шляхом повторення експерименту n кількість разів. З кожним раундом шанс випадково виявитися правим зменшуватиметься вдвічі: після п’яти повторень імовірність обману становитиме 1 до 32, після 10 раундів — 1 до 1024, а після 20 раундів — приблизно 1 до 1 000 000.
Завдяки повторенням можна домогтися бажаного рівня надійності доказу, однак абсолютної впевненості досягти при цьому неможливо.
Для чого використовують доказ із нульовим розголошенням?
Одним з очевидних застосувань доказу з нульовим розголошенням у криптовалютах можна назвати перевірку наявності у користувача коштів для транзакції, при цьому не розкриваючи учасникам мережі, хто цей користувач і скільки грошей у нього на рахунку.
Цей протокол також можна використовувати у сферах, де необхідно забезпечити безпеку даних (наприклад, персональної інформації) або проведення фінансової транзакції.
Доказ з нульовим розголошенням може відігравати роль інструменту, що забезпечує верифікацію даних і користувачів, надання привілейованого доступу та встановлення довірених з’єднань.
Які існують види доказів із нульовим розголошенням?
- інтерактивний (верифікатор самостійно опитує того, хто доводить, у режимі реального часу);
- неінтерактивний (не вимагає безпосередньої комунікації між верифікатором і тим, хто доводить; перший може перевіряти справжність твердження постфактум).
Докази з нульовим розголошенням можна також розділити на дві групи, виходячи з наявності або відсутності фази фіксації автентичності твердження кількома верифікаторами — так званої довіреної установки [trusted setup] із застосуванням булевої функції.
Для деяких протоколів, таких як zk-SNARKs (Zero-Knowledge Succinct Non-Interactive ARgument of Knowledge), це є необхідною умовою. Верифікатори генерують спеціальний секрет, який знищується одразу після довіреної установки. Якщо секрет продовжить існувати, то дані в мережі можна буде підробити, тим самим нівелюючи переваги використання протоколу.
Існують протоколи, які не вимагають довіреної установки (наприклад, zk-STARK (Zero-Knowledge Scalable Transparent ARguments of Knowledge).
Які переваги доказів із нульовим розголошенням?
- підвищення приватності користувачів у публічних блокчейнах та інших мережах;
- зміцнення інформаційної безпеки за рахунок заміни неефективних способів автентифікації та верифікації; підвищення пропускної здатності блокчейнів і поліпшення масштабованості.
Які недоліки доказів з нульовим розголошенням?
- вимагають значних обчислювальних потужностей;
- можливість компрометації при довіреному встановленні;
- потенційна вразливість перед квантовими обчисленнями.
У яких проєктах використовуються докази з нульовим розголошенням?
Орієнтована на підвищену приватність користувачів криптовалюта ZCash використовує модифікований протокол zk-SNARKs. Цей самий протокол було частково імплементовано в мережі Ethereum у рамках хардфорка Byzantium. Наразі розробники ефіру розглядають додаткові можливості застосування цієї технології.
Стартап QEDIT розробив SDK (Software Development Kit), який дає змогу імплементувати докази з нульовим розголошенням у вже наявні блокчейни для підвищення приватності транзакцій зі збереженням можливості їхньої валідації нодами. Зазначимо, що проєкт уже було нагороджено Знаком Якості Європейської Комісії, а серед його партнерів такі відомі компанії, як VMWare, Ant Financial і Deloitte.
Компанія StarkWare створила рішення на основі протоколу zk-STARKs, які також можуть бути реалізовані в існуючих мережах. Проєкт уже залучив фінансування від Віталіка Бутеріна, Pantera Capital, Intel Capital, Sequoia Capital та інших інвесторів.
Голландський банк ING випустив модифіковану версію доказу з нульовим розголошенням — Zero-Knowledge Range Proof (ZKRP). Цей протокол може довести, що клієнт має заробітну плату в діапазоні, необхідному для отримання іпотечного кредиту, при цьому не розкриваючи саму суму.
Підписуйтесь на новини ForkLog у Telegram: ForkLog Live — уся стрічка новин, ForkLog — найважливіші новини та опитування.