zk-STARKs vs. zk-SNARKs пояснено
Що таке технологія zero-knowledge-proof (ZKP) і як вона працює?
ZKP — це криптографічні протоколи, які, згідно з назвою, запобігають перехопленню даних або порушенню конфіденційності в процесі їх використання.
Zero-knowledge proof (ZKP) — це криптографічний підхід, який дозволяє одній стороні (доказувачу) підтвердити істинність твердження іншої сторони без розкриття будь-якої підтверджувальної інформації. Ви, можливо, запитаєте себе, хто вигадав ZKP? У 1980-х роках Шафі Голдвассер, Сільвіо Мікалі та Чарльз Раков із Массачусетського технологічного інституту запропонували ідею “технологій нульового знання”.
Демонстрація нульового знання повинна відповідати наступним трьом вимогам:
- Повнота/Незаперечність: якщо твердження є істинним, чесний доказувач переконує чесного перевіряча (тобто, який правильно виконує протокол) у його достовірності.
- Достовірність: якщо твердження є неправдивим, існує лише невелика ймовірність, що нечесний доказувач зможе переконати чесного перевіряча у його правдивості.
- Zero-Knowledge: якщо твердження є вірним, єдине, що знає перевіряючий — це те, що це твердження правильне.
Перш ніж ми розглянемо, як працюють нульові знання, давайте зрозуміємо два їхні типи. Перший тип — інтерактивні докази нульового знання, які включають повторювані взаємодії між доказувачем і перевіряючим. Доказувач “викликається” перевіряючим, аби неодноразово продемонструвати свої знання про факт. Цей процес триває, поки перевіряючий не впевниться, що доказувач чесний. З іншого боку, неінтерактивні докази є протилежністю цьому процесу — вони вимагають лише однієї транзакції між двома сторонами для одноразової перевірки достовірності доказувача.
Реальні впровадження ZKP використовують кілька криптографічних технік, таких як доказ Шнорра (NIZK) для неінтерактивного нульового знання, що дозволяє перевірити обчислювальну заяву. Доказ Шнорра NIZK дозволяє демонструвати знання дискретного логарифма без розкриття його значення. Це стає цінним елементом для багатьох криптографічних протоколів, забезпечуючи дотримання учасниками встановлених протоколом правил.
Наприклад, одержувач платежу може використовувати техніки ZKP, щоб підтвердити, що платник має достатній баланс на своєму банківському рахунку, не дізнаючись жодних інших подробиць щодо балансу платника. Таким чином, завдяки ZKP конфіденційність та безпека інформації користувачів можуть бути гарантовані.
Цікаво, чи використовує Bitcoin нульові знання? Проста відповідь така: базовий криптографічний алгоритм, використовуваний у Bitcoin, називається Еліптичний Кривий Алгоритм Цифрового Підпису (ECDSA) і не покладається на методи нульового знання для забезпечення підвищених рівнів конфіденційності та захисту. Цифрові підписи найчастіше використовуються для підписання транзакцій і відправки BTC, і ECDSA дозволяє використовувати приватний ключ для підписання будь-якої комунікації.
Що таке zk-SNARKs і як вони працюють?
Потреба у довіреному налаштуванні є однією з ключових особливостей zk-SNARKs. Вона також вимагає створення криптографічних ключів, які служать доказом, необхідним для перевірки та здійснення конфіденційних транзакцій.
Що ж означає zk-SNARK? Термін “Zero-Knowledge Succinct Non-Interactive Argument of Knowledge” (zk-SNARK) стосується архітектури доказів, де можна демонструвати володіння певними знаннями, наприклад, приватним ключем, без розкриття цих знань і без взаємодії між доказувачем і перевіряючим.
Більшість криптовалют використовують перевірку в мережі перед валідацією транзакції, щоб запевнитися, що виконані необхідні вимоги, зокрема наявність у відправника доступних коштів і правильне надання приватного ключа, який підтверджує право власності на ці кошти.
Відправник транзакції може продемонструвати все це за допомогою zk-SNARKs, не розкриваючи ані адрес, ані сум транзакції. Наприклад, блокчейн-мережа використовує zk-SNARKs, щоб закодувати частину своїх правил консенсусу для забезпечення цієї функціональності.
Під час процедури транзакції zk-SNARKs перетворюють інформацію, яку потрібно підтвердити, у рівняння. Ці рівняння можна розв’язати без розкриття фактичних даних. Тож, які монети використовують zk-SNARKs?
Zcash першою застосувала zk-SNARKs для демонстрації того, що вимоги до транзакцій можуть бути виконані без розкриття важливих деталей про адреси або суми. Але, незважаючи на те, що zk-SNARKs не мають явних недоліків, ті, хто володіє приватним ключем, створеним для налаштування протоколу, можуть підробляти докази та створювати підроблені гроші. Отже, конфіденційні монети на основі zk-SNARKs повинні гарантувати, що жодна сторона не має одноосібного доступу до приватного ключа.
Що таке zk-STARKs і як вони працюють?
zk-STARKs є однією зі двох прозорих і масштабованих методів підвищення конфіденційності. Публічна доступність випадковості, що використовується перевіряючим, усуває потребу в довіреному налаштуванні.
Що ж означає zk-STARK? zk-STARK розшифровується як Zero-Knowledge Scalable Transparent Argument of Knowledge — тип технології криптографічних доказів. zk-STARKs, які також відомі як докази з нульовими знаннями, дозволяють користувачам передавати перевірені дані або виконувати обчислення за участю третьої сторони, при цьому не розкриваючи дані або результат аналізу іншій стороні.
zk-STARKs проти zk-SNARKs: основні відмінності
І zk-STARKs, і zk-SNARKs є типами неінтерактивних ZKP. Проте, між ними є суттєві відмінності, які можна знайти у таблиці нижче: