Детальне пояснення доказів із нульовим знанням (ZKP)

СереднійNov 28, 2023
Zero-Knowledge Proof (ZKP) — це метод шифрування, який дозволяє одній стороні (відомій як перевіряльник) довести іншій стороні (відомій як верифікатор), що твердження правдиве, не розкриваючи жодної іншої інформації. До популярних рішень ЗКП належать zk-SNARKS, zk-STARKS, PLONK і Bulletproofs. У цій статті буде представлено ці чотири типи рішень ЗКП та проаналізовано їхні переваги та недоліки.
Детальне пояснення доказів із нульовим знанням (ZKP)

Попередній досвід

Zero-Knowledge Proof (ZKP) — це криптографічна технологія, яка вперше була представлена в статті під назвою «Складність знань інтерактивних систем доказу» на початку 1980-х років С.Голдвассером, С.Мікалі та К.Ракоффом. Спочатку задумана як теоретична модель, вона мала на меті вирішити проблему перевірки математичних тверджень без виявлення будь-яких доказів. Ця концепція привернула широку увагу в академічному світі через те, що вона порушила межі традиційних методів шифрування та запропонувала новий підхід до обробки конфіденційної інформації.

З часом ZKP перетворився з абстрактної теоретичної концепції в конкретні протоколи, які можна інтегрувати в різні програми. На початку 21 століття, з вибуховим розвитком Інтернету та цифрових комунікацій, потенціал ZKP почав досліджуватися в реальному світі. Зокрема, з появою блокчейну та криптовалют ZKP продемонструвала свою здатність покращувати конфіденційність і безпеку, зберігаючи при цьому ефективність транзакцій і обробки даних.

Сьогодні ZKP є не тільки гарячою темою в криптографічних дослідженнях, але також інтегрована в численні платформи та додатки блокчейн. Наприклад, програма zk-SNARKs на Ethereum Layer2 пропонує анонімні транзакції без розкриття деталей транзакцій. Цей перехід від теорії до практичного застосування не тільки доводить практичну цінність ZKP, але й спонукає до дослідження більш ефективних і безпечних цифрових взаємодій. З постійним технологічним прогресом ZKP відіграє все більш важливу роль у захисті особистої конфіденційності, забезпеченні безпеки даних і створенні надійних цифрових систем.

Визначення та принцип ЗКП

Zero-Knowledge Proof (ZKP) — це метод шифрування, який дозволяє одній стороні (доказу) доводити правильність твердження іншій стороні (верифікатору) без розкриття будь-якої додаткової інформації, тобто без розкриття будь-яких знань, на основі яких правильність заява залежить. Цей процес не тільки захищає конфіденційність перевірювача, але й гарантує, що верифікатор не зможе відтворити процес перевірки або використовувати його для отримання додаткової інформації.

Концептуальна діаграма доказів нульового знання (Джерело: ChainLink)

Основні принципи доказів із нульовим знанням (ZKP) можна визначити за такими трьома атрибутами:

  • Повнота: якщо твердження вірне, чесний доказ завжди може пройти перевірку перевіряючого.
  • Обґрунтованість: якщо твердження є хибним, будь-який брехливий доказ матиме лише незначний шанс змусити верифікатор повірити в істину твердження.
  • Нульове знання: якщо твердження правдиве, верифікатор не дізнається жодної додаткової інформації, окрім факту, що твердження правильне. Іншими словами, процес перевірки не розкриває жодної інформації, яка могла б бути використана для побудови доказу.

Принцип ЗКП часто розуміють на простих прикладах: якщо мені потрібно довести особі А, що я маю номер телефону особи Б, мені не потрібно безпосередньо відкривати номер Б А. Натомість я можу це довести, зателефонувавши за номером Б. . Коли дзвінок з’єднується, це демонструє, що я справді володію номером B, не розкриваючи жодної інформації про сам номер.

У практичних застосуваннях ZKP зазвичай вимагає складних математичних конструкцій, таких як поліноміальні рівняння, еліптичні криві або інші математичні завдання. Безпека цих конструкцій базується на обчислювальній складності таких задач, як розкладання на множники або дискретні логарифми. З розвитком криптографії з’явилися різні реалізації ZKP, такі як zk-SNARK і zk-STARK, які пропонують ефективний захист конфіденційності в різних контекстах, особливо в сферах блокчейну та криптовалют.

Основна форма доказу з нульовим знанням складається з трьох елементів: свідок, оскарження та відповідь.

Свідок: у доказі з нульовим знанням той, хто доводить, хоче продемонструвати знання деякої прихованої інформації. Ця секретна інформація є «свідком» доказу. Провідник, ґрунтуючись на своїх знаннях про свідка, ставить набір запитань, на які може відповісти лише той, хто володіє інформацією. Таким чином, перевіряльник випадковим чином вибирає питання для початку перевірки, обчислює відповідь, а потім надсилає її верифікатору.

Завдання: Верифікатор випадковим чином вибирає інше запитання з набору та просить перевіряючого відповісти на нього.

Відповідь: перевіряльник отримує запитання, обчислює відповідь і надсилає її верифікатору. Відповідь перевіряючого дозволяє верифікатору перевірити, чи дійсно він має доступ до свідка. Щоб переконатися, що перевіряльник не просто випадково вгадує правильно, верифікатор вибирає інше запитання для запиту. Повторюючи цей процес кілька разів, ймовірність того, що прувер сфабрикує правду, значно зменшується, доки верифікатор не буде задоволений.

У вищезгаданому прикладі телефонної розмови «Я» — свідок, який не бажає розкривати інформацію, тоді як А — перевіряючий, а поставлене завдання — «Доведіть, що «Я» маю номер Б». Процес відповіді передбачає, що «я» підключаю дзвінок до номера B, щоб довести, що він у мене справді є.

Навіщо потрібен ЗКП?

Як обговорювалося раніше, підтвердження з нульовим знанням (ZKP) за своєю суттю пропонують значні переваги у сфері захисту конфіденційності. У сучасну еру інформаційного перевантаження особисті дані часто зберігаються на сторонніх платформах, що збільшує ризик витоку даних. Крім того, через технічні бар’єри та відставання правових санкцій інформаційна безпека значною мірою залежить від етичних обмежень, що ускладнює користувачам справді контролювати свою особисту інформацію. Поява технології ZKP забезпечує рішення, яке одночасно захищає конфіденційність і підвищує ефективність перевірки та безпеку.

Порівняно з іншими технологіями шифрування ЗКП має ряд переваг:

  • Захист конфіденційності: ЗКП дозволяє окремим особам і установам доводити правдивість певної інформації, не розкриваючи фактичного змісту інформації. Наприклад, його можна використати, щоб довести, що особа відповідає віковим вимогам, не повідомляючи фактичного віку чи дати народження.
  • Покращена безпека: оскільки ZKP не вимагає розкриття конфіденційної інформації, це зменшує ризик витоку даних. Навіть якщо перехоплення відбувається під час процесу перевірки, суттєві дані не розкриваються.
  • Зменшення шахрайства: у фінансових операціях ZKP можна використовувати для перевірки легітимності транзакції без розкриття конкретних деталей, тим самим зменшуючи можливості для шахрайства.
  • Ефективність: деякі типи ZKP, як-от zk-SNARK, дуже швидко створюються та перевіряються, що вигідно для систем, яким потрібно обробляти велику кількість транзакцій або операцій перевірки.
  • Взаємодія: ZKP забезпечує загальну структуру для перевірки між різними системами та доменами, що дозволяє безпечно перевіряти інформацію та обмінюватися між різними системами.
  • Масштабованість: з розвитком обчислювальних технологій реалізація ZKP стає більш ефективною та масштабованою, тобто її можна розгортати у системах більшого масштабу.
  • Відповідність вимогам: у сучасному нормативному середовищі, яке вимагає захисту конфіденційності споживачів, ZKP може допомогти компаніям перевіряти та обробляти дані, не порушуючи законодавства про конфіденційність.
  • Контроль користувачів: ZKP посилює контроль користувачів над своїми даними, оскільки вони можуть вибирати обсяг інформації для розкриття.
  • Децентралізація: у блокчейні та розподілених технологіях ZKP пропонує потужний інструмент конфіденційності для децентралізації, що дозволяє користувачам здійснювати транзакції та взаємодіяти, не покладаючись на центральні органи влади.

Чи то в традиційному Web 2.0, чи в новому домені Web 3.0, перспективи застосування ZKP є широкими.

Типи доказів із нульовим знанням (ZKPs)

Існує кілька реалізацій доказів з нульовим знанням, таких як zk-SNARK, zk-STARK, PLONK і Bulletproofs. Кожен тип має свої переваги та недоліки щодо розміру перевірки, часу перевірки та часу перевірки. Ця стаття зосереджена на представленні чотирьох типів, які найчастіше використовуються в прикладних сценаріях.

zk-SNARKs

zk-SNARK, що означає «стислий неінтерактивний аргумент знання з нульовим знанням», — це криптографічні інструменти, які використовуються для підтвердження того, що хтось знає певну інформацію, не розкриваючи її. У zk-SNARK «нульовий рівень знань» означає, що перевіряючий може довести, що твердження є істинним, не надаючи жодної інформації, окрім його правильності. «Стислість» означає невеликий розмір доказу та швидкість процесу перевірки. «Неінтерактивний» означає, що після створення доказу його може перевірити будь-хто без подальшої взаємодії між перевірячем і верифікатором. Основні компоненти zk-SNARK включають:

  • Довірене налаштування: під час ініціалізації системи необхідно згенерувати пару відкритих/приватних ключів (параметрів). Цей процес має виконуватися довіреною стороною, оскільки безпека системи може бути скомпрометована в разі витоку закритого ключа.
  • Генерація доказів: перевіряльник знає секретну інформацію, але не бажає розкривати її верифікатору. Вони використовують цю секретну інформацію та загальнодоступні параметри, щоб створити доказ, який достатньо показує, що вони знають секрет, не розкриваючи жодних подробиць про нього.
  • Процес перевірки: після того, як верифікатор отримає доказ, він може використовувати загальнодоступні параметри, щоб перевірити його правильність. Якщо перевірка побудувала правильний доказ, процес верифікації виведе «так», інакше «ні».

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

zk-STARKs

zk-STARK, або «масштабовані прозорі аргументи знань з нульовим знанням», дозволяють одній стороні (доказу) довести іншій (верифікатору), що вони знають певну інформацію, не розкриваючи саму інформацію. На відміну від zk-SNARK, zk-STARK не вимагає довіреного процесу налаштування. Це означає, що вони не покладаються на конфіденційність певної приватної інформації, яка часто вважається важливою для безпеки, оскільки надійне налаштування може бути системною вразливістю.

zk-STARKs працюють на основі концепцій з кількох математичних областей, включаючи хеш-функції, поліноміальні обчислення та теорію виправлення помилок. Вони використовують конструкцію, відому як «масштабований прозорий аргумент із нульовим знанням», що дозволяє генерувати докази без довіреної установки. Потенційні програми zk-STARK подібні до програм zk-SNARK, але завдяки своїй масштабованості та прозорості вони особливо підходять для великомасштабних програм, включаючи криптовалюти, що зберігають конфіденційність, технології масштабованості блокчейну та безпечну перевірку в хмарних обчисленнях. .

ПЛОНК

PLONK, а не абревіатура, відноситься до прізвищ його творців. Він розроблений, щоб забезпечити універсальне та ефективне рішення ZKP, особливо в блокчейн-додатках, таких як смарт-контракти та транзакції, захищені конфіденційністю. Основою PLONK є використання техніки «гомоморфного приховування», що дозволяє виконувати арифметичні операції з даними без розкриття вихідних даних. Він використовує спеціальний алгоритм – поліноміальну схему зобов’язань – для створення доказів, що дозволяє перевіряльникам ефективно доводити, що вони мають правильні результати обчислень для набору даних.

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

Куленепробивні

Bulletproofs, нещодавно представлене рішення ZKP, не вимагає довіреного налаштування та спеціально розроблено для побудови доказів діапазону та певних типів арифметичних доказів. Запропонований Бенедиктом Бунцем, Джонатаном Бутлом, Деном Боне та іншими у 2017 році, Bulletproofs оперує складними математичними конструкціями, такими як гомоморфне шифрування та криптографія на основі еліптичної кривої. Вони використовують низку математичних методів, щоб дозволити перевіряльникам створити ефективне підтвердження діапазону для числа, не розкриваючи його точне значення. Особливо в сфері криптовалют це можна використовувати, щоб довести, що вартість транзакцій знаходиться в межах дозволеного діапазону, не розкриваючи фактичні суми транзакцій.

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

Вивчення проблеми

Давайте краще зрозуміємо ці чотири різні технології Zero-Knowledge Proof (ZKP) — zk-SNARK, zk-STARK, PLONK і Bulletproofs — через аналогію з картою скарбів.

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

zk-SNARKs: ви створюєте складну головоломку з карти скарбів. Ви вибираєте невелику ключову частину цієї головоломки (доказ) і показуєте її іншій стороні, щоб переконати її, що ви знаєте, як зібрати повну головоломку, тобто місцезнаходження скарбу, не відкриваючи всю головоломку. Однак для цього вам знадобляться спеціальні маркери від перевіреної друкарні, щоб підтвердити, що ваш пазл справжній.

zk-STARKs: Ви показуєте частину карти скарбів іншій стороні, кажучи їм, що вони можуть використовувати спеціальне збільшувальне скло (алгоритм перевірки), щоб випадково перевірити деталі карти, щоб переконатися, що вона справді вказує на скарб, без необхідності знати точне місцезнаходження скарбу. Це збільшувальне скло настільки потужне, що навіть технології майбутнього (квантові комп’ютери) не зможуть розгадати секрет вашої карти скарбів.

ПЛОНК: цього разу ви створюєте набір загадок, кожна з яких вказує на місцезнаходження скарбу. Ви надаєте іншій стороні універсальний метод перевірки вирішення цих загадок (універсальна установка), достатній для того, щоб вони повірили, що ви знаєте всі відповіді, не розгадуючи кожну загадку окремо.

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

У цій аналогії:

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

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

Просте порівняння різних схем ЗКП

Перш ніж порівнювати, потрібно зрозуміти критерії оцінки ЗКП:

  • Розмір перевірки: кількість даних у перевірці, що впливає на витрати на зберігання та передачу
  • Час перевірки: час, необхідний для перевірки підтвердження
  • Час перевірки: час, необхідний для створення перевірки
  • Використання пам’яті: обсяг пам’яті, необхідний під час створення доказів і процесів перевірки
  • Універсальність: чи застосовна система доказів до різних типів обчислень
  • Довірене налаштування: чи потрібна початкова довірена фаза налаштування
  • Постквантовий захист: чи протистоїть він майбутнім квантовим комп’ютерним атакам

Тепер давайте порівняємо zk-SNARK, zk-STARK, PLONK і Bulletproofs на основі цих показників і обговоримо їхні переваги та недоліки.

zk-SNARKs

плюси

  • Розмір перевірки: дуже малий, що робить їх придатними для середовищ з обмеженою пропускною здатністю
  • Час перевірки: швидка перевірка, підходить для сценаріїв, які потребують швидкої відповіді
  • Універсальність: Застосовується до різних складних обчислень

мінуси

  • Час перевірки та використання пам’яті: створення перевірки може потребувати багато часу та пам’яті
  • Довірене налаштування: вимагає початкової фази довіреного налаштування; у разі зламу безпека системи під загрозою
  • Постквантова безпека: більшість конструкцій не є постквантовою безпекою

zk-STARKs

плюси

  • Без довіреного налаштування: усуває потребу в надійному налаштуванні, підвищуючи безпеку системи
  • Постквантовий захист: протистоїть атакам квантових комп’ютерів
  • Розмір перевірки: хоча й більший, ніж zk-SNARK, все ще можна керувати за певних умов

мінуси

  • Розмір перевірки: більший, ніж zk-SNARK, потенційно знижує ефективність зберігання та передачі
  • Час перевірки: можливо, повільніше, ніж zk-SNARK, особливо в складних обчисленнях

ПЛОНК

плюси

  • Універсальність: один набір параметрів застосовується до кількох різних доказів, зменшуючи зайву роботу
  • Доказовий розмір: відносно малий, хоча більший, ніж zk-SNARK
  • Можливість оновлення: легко оновлювати та підтримувати

мінуси

  • Довірене налаштування: хоча й менш суворе, ніж zk-SNARKs, налаштування все одно потрібне
  • Постквантова безпека: так само більшість конструкцій не є постквантовою безпекою

Куленепробивні

плюси

  • Немає довіреної установки: немає необхідності в надійній установці, що зменшує ризики для безпеки
  • Розмір доказу: розмір доказу повільно зростає зі складністю твердження
  • Час перевірки: швидкий для перевірки дальності

мінуси

  • Час перевірки: Створення доказів може зайняти більше часу
  • Розмір перевірки: хоч і менший, але все ж більший, ніж zk-SNARK у більших пробах
  • Постквантовий захист: не розроблений спеціально для постквантового середовища

Кейс застосування ЗКП в Web3

У Web3 є багато випадків застосування ЗКП, і ми вибрали для дослідження два типові випадки.

Масштабування Blockchain - Ethereum Layer2

zk-Rollups — це рішення рівня 2, яке об’єднує сотні чи тисячі транзакцій поза мережею та створює підтвердження zk-SNARK. Це підтвердження разом із даними про транзакції надсилається до основного ланцюга Ethereum. Це дозволяє перевіряти транзакції без основного ланцюга, що обробляє кожну транзакцію, тим самим зменшуючи комісії та збільшуючи пропускну здатність. zk-Sync Era та Starknet застосували технологію zk-rollup, а Polygon нещодавно представила Polygon zk-EVM з використанням zk-rollups.

Демонстрація застосування zk-SNARK на рівні 2 (Джерело: Саймон Браун)

Конфіденційність даних - підтвердження резерву Exchange

Підтвердження біржового резерву означає перевірку балансів, що зберігаються на криптовалютних біржах або інших фінансових установах, щоб переконатися, що зареєстровані активи відповідають фактичним активам. Спочатку біржі використовували дерева Merkle та сторонні аудиторські фірми для цієї перевірки, але цей процес покладався на треті сторони та міг призвести до витоку приватних даних користувачів, таких як баланс рахунків. Такі біржі, як Gate.io, тепер використовують технологію zk-SNARKs для підтвердження резерву, шифрування даних користувачів і отримання номерів активів користувачів через канали zk-SNARK, таким чином видаючи повні звіти підтвердження резерву.

Висновок

Різноманітні рішення технології з нульовими знаннями підкреслюють її потужний потенціал у Web3. Від захисту конфіденційності даних до масштабування блокчейну, ZKP важливий для створення безпечної та ефективної інфраструктури Web3. Хоча різні підходи мають свої переваги та обмеження, разом вони вказують на більш надійне та захищене конфіденційністю цифрове майбутнє. У міру розвитку технологій проблеми з оптимізацією продуктивності та безпеки за допомогою ZKP поступово будуть подолані, що вказує на його дедалі важливішу роль у цифровому світі.

Autor: Wayne
Tradutor: Piper
Revisores: Piccolo、Edward、Elisa、Ashley He、Joyce
* As informações não pretendem ser e não constituem aconselhamento financeiro ou qualquer outra recomendação de qualquer tipo oferecida ou endossada pela Gate.io.
* Este artigo não pode ser reproduzido, transmitido ou copiado sem referência à Gate.io. A contravenção é uma violação da Lei de Direitos Autorais e pode estar sujeita a ação legal.
Comece agora
Inscreva-se e ganhe um cupom de
$100
!
Criar conta