Інтерпретація доказів із нульовим знанням

Ця стаття містить наступне: 1. Що таке доказ нульового знання? 2. Навіщо нам потрібні докази з нульовим знанням? 3. Сценарії застосування доказу з нульовим знанням. 4. Як працюють докази з нульовим знанням. 5. Класифікація та випадки застосування доказів з нульовим знанням. 6. Недоліки доказів з нульовим знанням.

ЧАСТИНА01

Що таке доказ нульового знання

**Доказ нульового знання (Zero-Knowledge Proof) було запропоновано S.Goldwasser, S.Micali та C.Rackoff на початку 1980-х років. Це стосується здатності перевіряючого переконати верифікатор у правильності певного твердження, не надаючи жодної корисної інформації верифікатору. **

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

Я можу попросити маму спостерігати, як я закінчую їсти на кухні, і довести, що я дійсно вмію готувати. Але я не хочу, щоб моя мама бачила, як я влаштовую безлад на кухні під час приготування їжі, інакше мене знову будуть приставати, то що мені робити? Я пішла на кухню сама, а надворі мене чекали батьки, я закінчила готувати і зібрала речі, винесла посуд. Це ще доводить, що я вмію готувати. Щодо того, які інгредієнти я використовував, які приправи я додавав і наскільки брудною була кухня під час процесу, мені це не потрібно. Поки моя мама знає, що я вмію готувати їжу, це буде доказом того, що я не такий лежачи.

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

ЧАСТИНА02

Навіщо вам потрібні докази нульового знання

Захист особистих даних

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

Автентифікація

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

Стиснення обчислень і розширення блокчейна

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

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

ЧАСТИНА03

Сценарій застосування доказу нульового знання

**Основні сценарії застосування підтвердження з нульовим знанням: анонімний платіж, підтвердження особи, обчислення, яке можна перевірити, та анонімне голосування. **

Анонімний платіж

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

Існують спеціальні «монети конфіденційності», призначені для абсолютно анонімних транзакцій. Приклади включають Zcash і Monero, які маскують деталі транзакцій, включаючи адреси відправника/одержувача, тип активу, суму та графік транзакцій. Завдяки впровадженню методів нульового знання в протоколи блокчейн-мережі, орієнтовані на конфіденційність, дозволяють вузлам перевіряти транзакції, не маючи доступу до даних транзакцій.

Докази нульового знання також застосовувалися до анонімних транзакцій у загальнодоступних блокчейнах. Наприклад, Tornado Cash, децентралізована некастодіальна служба, яка дозволяє користувачам проводити приватні транзакції на Ethereum. Tornado Cash використовує нульові докази, щоб приховати деталі транзакцій і гарантувати фінансову конфіденційність.

особистий ідентифікатор

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

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

Перевірений розрахунок

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

Анонімне голосування

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

ЧАСТИНА04

Як працюють докази з нульовим знанням

Докази з нульовим знанням були вперше запропоновані Шафі Голдвассером і Сільвіо Мікалі з Массачусетського технологічного інституту в статті 1985 року під назвою «Складність знань інтерактивних систем доказів». Автор згадав у статті, що прувер може переконати верифікатора в достовірності даних, не розкриваючи конкретних даних. Доказ із нульовим знанням може бути інтерактивним, тобто перевіряльник має довести достовірність даних один раз кожному верифікатору; він також може бути неінтерактивним, тобто перевіряльник створює доказ, і кожен, хто використовує цей доказ, може бути перевіреним. Зараз існує багато реалізацій доказів із нульовим знанням, таких як zk-SNARKS, zk-STARKS, PLONK і Bulletproofs. Кожен метод має свої переваги та недоліки щодо розміру перевірки, часу перевірки та часу перевірки.

Доказ із нульовим знанням має три основні функції, а саме:

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

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

ЧАСТИНА05

Класифікація доказів із нульовим знанням

Доказ з нульовим знанням можна розділити на «інтерактивний доказ з нульовим знанням» і «неінтерактивний доказ з нульовим знанням» відповідно до методу взаємодії.

Інтерактивний доказ нульового знання

Підтверджувач і верифікатор повинні взаємодіяти кілька разів, верифікатор продовжуватиме задавати запитання, щоб кинути виклик перевіряючому, а той продовжуватиме відповідати на ці виклики, доки верифікатор не буде переконаний.

Інтерактивне підтвердження нульового знання - дальтонічна гра

Аліса дальтонік, але Боб не дальтонік. У Боба є дві кулі однакового розміру та форми, але кольори цих двох куль різні. Одна куля синя, а інша червона. Оскільки Аліса дальтонік, тому Аліса не може визначити, чи дві кулі однакові, Бобу потрібно довести Алісі, що дві кулі різні. Тут Аліса називається перевіряючим. Йому потрібно перевірити, чи твердження Боба правильне чи ні. Боб називається доказуючим. Йому потрібно підтвердити своє твердження (є дві кульки різного кольору). У випадку кольорів двох кульок, доведіть Алісі, що кольори двох кульок різні, що узгоджується з визначенням доказу з нульовим знанням.

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

Уперше Аліса таємно помінялася місцем розташування м’яча в руці, а потім Аліса запитала Боба, чи вона змінила положення м’яча.Якщо Боб відповів «Так», то Аліса має 50% ймовірність того, що Боб розрізнить колір дві кулі, тому що Боб має 1/2 шансу зробити це правильно, тому Аліса може спробувати ще раз. Якщо Боб відповість «Ні», тоді Аліса може бути впевнена, що Боб не може розрізнити кольори двох куль.

Другий раз Аліса не поміняла місцями кульки в руках, а потім Аліса запитала Боба, чи він поміняв місцями кульки. Якщо Боб відповість «Ні», тоді Аліса з імовірністю 75% повірить, що Боб може розрізнити кольори двох куль.

Після першої ітерації Аліса може сказати, що твердження, висловлене Бобом, має 50% ймовірність бути істинним. Якщо Боб відповість правильно вдруге, то Аліса може сказати, що твердження Боба вірне з імовірністю 75%. Після третьої ітерації він становитиме 87,5%. Якщо Боб пройшов перевірку n разів поспіль, Аліса має ймовірність 1-(1/2)^n і може вважати, що те, що сказав Боб, правда, і дві кульки справді червоні та сині.

Інтерактивне підтвердження з нульовим знанням — це метод перевірки на основі ймовірностей. Верифікатор ставить запитання перевіряючому на основі певної випадковості. Якщо перевіряючий може дати правильну відповідь, це означає, що він має високу ймовірність отримати всі докази, які він має Заявлене «знання». Доведення з нульовим знанням не є доказом у математичному сенсі, оскільки воно має невелику ймовірність помилки, і обманний доказ може ввести в оману верифікатора через хибні твердження. Іншими словами, докази з нульовим знанням є імовірнісними доказами, а не детермінованими доказами, але існують методи, які можуть зменшити помилки до незначних значень.

Цей інтерактивний підхід має деякі обмеження:

  • Кожна перевірка вимагає цілого тривалого процесу.
  • І перевіряючий, і верифікаційний повинні бути присутні одночасно, будь то в режимі онлайн або віч-на-віч.
  • Лише одному верифікатору можна довіряти. Якщо довіряти кільком верифікаторам, кожен верифікатор повинен пройти процес перевірки.

НЕІНТЕРАКТИВНИЙ ДОКАЗ НУЛЬОВОГО ЗНАННЯ

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

Щоб вирішити проблеми, з якими стикаються інтерактивні докази з нульовим знанням, виникли неінтерактивні докази з нульовим знанням. Мануель Блум, Пол Фельдман і Сільвіо Мікалі запропонували перші інтерактивні докази з нульовим знанням, де перевіряльник і верифікатор мають спільний секрет. Це дозволяє перевіряючому підтверджувати свої знання певної інформації, не надаючи саму інформацію.

Неінтерактивне підтвердження нульового знання --- гра судоку

Судоку — це математична гра, що виникла у Швейцарії у XVIII столітті. Це логічна гра, у якій для обчислень використовуються папір і ручка. Гравцям потрібно визначити номери всіх клітинок, що залишилися, на основі відомих чисел на дошці 9×9 і переконатися, що числа в кожному рядку, кожному стовпчику та кожному палаці товстої лінії (3*3) містять 1- 9. повторити.

Щоб довести Бобу, що вона розгадала головоломку судоку, Аліса створює для цього машину, захищену від втручання. Аліса поміщає згенеровану відповідь судоку в машину, і машина може надіслати доказ Бобу. Машина Аліси дотримується наступного публічно перевіреного протоколу: спочатку Аліса кладе нерозв’язану оригінальну головоломку судоку в машину та три картки головоломки в судоку зображенням догори. Далі Аліса кладе свою відповідь обличчям униз на відповідну клітинку автомата, також розміщуючи по три картки в кожній клітинці. Нарешті Боб отримує підтвердження від машини, і машина повертає Бобу 27 мішків:

Машина дістає 9 карток із кожного ряду судоку, змішує їх окремо та кладе в мішок, всього 9 рядків, і використовує 9 мішків; машина дістає 9 карток із кожного ряду судоку, перемішує їх і кладе їх у мішок, загалом 9 стовпців, використовується 9 мішків; машина дістає картки з кожного палацу товстої лінії (3*3) у судоку, змішує їх і поміщає в мішок, всього 9, використати 9 мішків;

Боб перевіряє кожен із 27 мішків окремо, і якщо картки в кожному мішку містять числа від 1 до 9 і жодне з них не пропущено або не повторюється, тоді Боб може підтвердити, що Аліса справді розгадала судоку, а Боб не взяв Будь-яке знання про розв’язок судоку можна отримати з поверненого доказу, тому що дані, які повертає машина до сумки Боба, перемішуються випадковим чином.

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

Інтерактивний доказ нульового знання VS неінтерактивний доказ нульового знання

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

Неінтерактивні докази зменшують зв’язок між перевірячем і верифікатором, роблячи ZK-докази більш ефективними. Крім того, після створення доказу його може перевірити будь-хто (з доступом до спільного секрету та алгоритму перевірки).

ЧАСТИНА****06

Технічні рішення та застосування доказів нульового знання

Технологія нульового знання дозволяє розробникам не тільки використовувати переваги безпеки базових блокчейнів, таких як Ethereum, але й покращувати пропускну здатність і швидкість транзакцій для dApps, і в той же час розміщувати особисту інформацію користувачів поза мережею для захисту конфіденційності користувачів. Транзакції будуть упаковані та завантажені в ланцюг, щоб зменшити вартість використання для кінцевих користувачів. Зрештою, проекти можуть використовувати ці можливості для створення передових dApps, які не тільки конкурують із системами Web2 за продуктивністю, але й зберігають переваги децентралізації Web3.

(Джерело зображення: Chainlink)

У Layer2 zk-rollup пакує кілька транзакцій разом і публікує їх у блокчейні Layer1, а також публікує підтвердження з нульовим знанням для перевірки дійсності розрахунку. Докази, опубліковані в ланцюжку, також називаються «доказами дійсності». **Технологія перевірки дійсності поділяється на два типи: SNARK і STARK. **

zk-SNARs

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

Кейс: Zcash, Loopring, zkSync1.0, zkSync 2.0, Zigzag, Mine

zk-STARK

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

Варто зазначити, що винахідником STARK є Елі Бен-Сассон, співзасновник StarkWare, команди, яка також розробила StarkEx і StarkNet.

Приклади: StarkEx, StarkNet, Immutable X, Starkware

ЧАСТИНА07

Недоліки доказу з нульовим знанням

Висока вартість обладнання

Залежно від системи підтвердження процес створення підтвердження з нульовим знанням відрізняється. Але врешті-решт ви зіткнетеся зі складними проблемами: множенням великих числових векторів (полів або груп), особливо мультискалярним множенням (MSM) зі змінними та фіксованими основами, або швидким перетворенням Фур’є (FFT) та зворотним FFT.

І MSM, і FFT є повільними операціями. У системі, де існують як FFT, так і MSM, близько 70% часу генерації доказів витрачається на MSM і 30% на FFT. Апаратне прискорення потрібне для реалізації складних обчислень. Зазвичай вважається, що найважливішою технологією для апаратного прискорення ZK є FPGA, а не GPU (через вартість і енергоефективність) або ASIC (через їх негнучкість і довгий цикл ітерації). Топові ПЛІС приблизно в 3 рази дешевші за топові графічні процесори. Крім того, FPGA більш ніж у 10 разів енергоефективніші, ніж графічні процесори, головним чином тому, що графічні процесори потрібно підключати до головного пристрою, який споживає багато енергії.

Вартість перевірки

Перевірка доказу вимагає багатьох складних обчислень, що також збільшує обчислювальні витрати. Наприклад, ZK-rolluos потрібно заплатити близько 500 000 бензину, щоб перевірити одне підтвердження AK-SNARK на Ethereum, а ZK-STARK вимагають ще більших комісій.

Припущення довіри

Передумова доказу з нульовим знанням полягає в тому, що обидві сторони є чесними, хочуть знати справжню відповідь і не будуть фальсифікувати дані. У ZK-SNARK одноразове генерування загальнодоступних параметрів може повторно використовуватися сторонами, які беруть участь у протоколі з нульовим знанням, що означає, що дані, надані учасниками, правильні за замовчуванням.

Але насправді у користувачів немає можливості оцінити чесність учасників, навіть якщо учасники вводять неправдиві дані, користувачі повинні цьому вірити. У ZK-STARK немає припущення про довіру, і зараз дослідники працюють над ненадійними налаштуваннями для ZK-SNARK, щоб покращити безпеку механізму підтвердження.

Загроза квантових обчислень

ZK-SNARK використовує алгоритм цифрового підпису еліптичної кривої (ECDSA) для шифрування.Здається, що алгоритм ECDSA зараз безпечний, але розробка квантових комп’ютерів у майбутньому, ймовірно, зламатиме цей алгоритм.

Загальноприйнято вважати, що ZK-STARK не буде загрожувати квантовими обчисленнями, оскільки він зашифрований за допомогою хешування антиколізій.На відміну від пари відкритих і закритих ключів ECDSA, хешування антиколізій важче зламати квантовими обчисленнями.

Переглянути оригінал
Контент має виключно довідковий характер і не є запрошенням до участі або пропозицією. Інвестиційні, податкові чи юридичні консультації не надаються. Перегляньте Відмову від відповідальності , щоб дізнатися більше про ризики.
  • Нагородити
  • Прокоментувати
  • Поділіться
Прокоментувати
0/400
Немає коментарів
  • Закріпити