Що таке докази знань нулю?

Ця стаття надає детальне доказ про нуль-знання докази (ZKP).

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

Докази з нульовим розголошенням поліпшилися з роками і зараз вони використовуються в кількох реальних додатках.

Чому нам потрібні докази про нульовий рівень знань?

Докази з нульовим розголошенням стали проривом у застосованій криптографії, оскільки вони обіцяли покращити безпеку інформації для осіб. Подумайте, як ви можете довести твердження (наприклад, „Я є громадянином країни Х“) іншій стороні (наприклад, постачальнику послуг). Вам потрібно буде надати „докази“, щоб підтвердити своє твердження, такі як національний паспорт або посвідчення водія.

Але є проблеми з таким підходом, головним чином - відсутність конфіденційності. Особиста ідентифікована інформація (ОІІ), яка ділиться з послугами сторонніх сторін, зберігається в центральних базах даних, які піддаються вразливості від взломів. З поширенням крадіжок особистості стає критичною проблемою, і є заклики до більш конфіденційних засобів обміну чутливою інформацією.

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

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

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

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

Протокол з нульовими знаннями повинен задовольняти наступні критерії:

  1. Повнота: Якщо вхід є дійсним, протокол з нульовим доказом завжди повертає «true». Таким чином, якщо базове твердження є правдивим, а доказуючий та перевіряючий діють чесно, доказ може бути прийнятий.
  2. Здоров'я: Якщо введені дані є недійсними, теоретично неможливо обманути протокол з нульовим доказом, щоб повернутися 'true'. Отже, брехливий доводчик не може обдурити чесного перевіряючого вважати недійсним висловлюванням є валідним (крім невеликого ймовірнісного маржі).
  3. Нуль-знання: Верифікатор нічого не дізнається про твердження, крім його вірності або хибності (вони мають "нуль-знання" про твердження). Це вимога також перешкоджає верифікатору виводити початковий ввід (зміст твердження) з доказу.

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

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

Вище описана структура 'інтерактивного доказу знань нуля'. Ранні протоколи нуль-знань використовували інтерактивне доведення, де перевірка валідності твердження вимагала взаємодії між доводами та перевіряючими.

Добрий приклад, який ілюструє, як працюють інтерактивні докази, - це відомий Жан-Жак КіскартерКазка про печеру Алі-Баби

(відкривається в новій вкладці)

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

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

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

Для вирішення цієї проблеми Мануель Блум, Пол Фелдман та Сільвіо Мікалі запропонували перше невзаємодійні докази нульового знання

(opens in a new tab)

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

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

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

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

Типи доказів нульового знання

ZK-SNARKs

ZK-SNARK - це скорочення від Zero-Knowledge Succinct Non-Interactive Argument of Knowledge. Протокол ZK-SNARK має наступні якості:

  • Zero-знання: перевірник може підтвердити цілісність заяви, не знаючи нічого іншого про заяву. Єдина інформація, яку перевірник має про заяву, це чи вона є правдивою чи хибною.
  • Коротко: Доказ знань з меншим обсягом вияву доказу може бути швидко перевірений.
  • Неінтерактивний: Доказ є 'неінтерактивним', оскільки доказувач і перевіряючий взаємодіють лише один раз, на відміну від інтерактивних доказів, які вимагають кількох раундів спілкування.
  • Аргумент: Доказ задовольняє вимогу 'звуковості', тому обман малоймовірний.
  • (Про) Знання: Доказ нуль-знання не може бути побудований без доступу до секретної інформації (свідка). Для доведення, яке не має свідка, важко, якщо не неможливо, обчислити дійсний доказ нуль-знання.

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

Багатосторонні обчислення (MPC)

(відкривається в новій вкладці)

це спосіб зменшення ризиків при формуванні загальних параметрів. В процесі беруть участь кілька сторін.церемонія довіреного налаштування

(відкривається в новій вкладці)

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

Довірені налаштування потребують від користувачів довіри до учасників у генерації параметрів. Однак розробка ZK-STARKs дозволила створити протоколи доведення, які працюють без довіреної настройки.

ZK-STARKs

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

  • Масштабований: ZK-STARK працює швидше, ніж ZK-SNARK у генерації та перевірці доказів, коли розмір свідка великий. З доказами STARK часи доказування та перевірки лише незначно збільшуються, коли зростає розмір свідка (часи доказування та верифікації SNARK збільшуються лінійно з розміром свідка).
  • Прозорість: ZK-STARK ґрунтується на публічно перевіреній випадковості для генерації публічних параметрів для доведення та верифікації замість довіреної налаштування. Таким чином, вони є більш прозорими порівняно з ZK-SNARKs.

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

Використання нульових доказів

Анонімні платежі

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

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

Існують конкретні «конфіденційні монети», призначені для повністю анонімних транзакцій. Блокчейни, що акцентують на приватності, такі як Zcash та Monero, захищають деталі транзакцій, включаючи адреси відправника/одержувача, тип активу, кількість та часову шкалу транзакції.

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

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

Захист особистості

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

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

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

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

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

Перевірна обчислення

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

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

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

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

Ось як це працює на практиці:

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

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

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

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

доказ процесу) гарантує, що транзакція є дійсною, дозволяючи Ethereum застосувати результат до свого стану—не чекаючи, поки хтось не заперечить це.

Zero-knowledge rollups та validiumsдва рішення позашляхового масштабування, які використовують докази достовірності для забезпечення безпечного масштабованості. Ці протоколи виконують тисячі транзакцій позашляхово і подають докази для перевірки на Ethereum. Ці результати можуть бути застосовані негайно після того, як доказ буде перевірено, що дозволяє Ethereum обробляти більше транзакцій без збільшення обчислень на базовому рівні.

Зменшення хабарництва та змови в ланцюжковому голосуванні

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

Визначивши як «координацію з метою обмеження відкритої конкуренції шляхом обману, шахрайства та вводження в оману інших», змова може приймати форму зловмисника, що впливає на голосування, пропонуючи хабарі. Наприклад, Аліса може отримати хабар від Боба за голосування за варіант B на бюлетені навіть якщо вона віддає перевагу варіанту A.

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

Наприклад, квадратичні механізми фінансування

(відкривається в новій вкладці)

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

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

На щастя, нові рішення, такі як MACI (Мінімальна інфраструктура проти злочинних угод), використовують докази нульового знання для того, щоб зробити голосування на ланцюжку (наприклад, квадратичні фінансові механізми) стійкими до підкупу та зговору. MACI - це набір смарт-контрактів та скриптів, які дозволяють центральному адміністраторові (званий “координатором”) агрегувати голоси та підбивати підсумки, не розкриваючи конкретики того, як голосував кожен окремий учасник. Тим не менш, все ще можна перевірити, що голоси були правильно підраховані, або підтвердити, що певна особа брала участь у голосуванні.

Як працює MACI з доказами нульового знання?

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

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

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

  • Еліс реєструється для голосування, надсилаючи свій відкритий ключ у розумний контракт.
  • Аліса погоджується проголосувати за варіант B в обмін на хабар від Боба.
  • Аліса голосує за варіант B.
  • Аліса таємно відправляє зашифровану транзакцію, щоб змінити відкритий ключ, пов'язаний з її ідентичністю.
  • Елісея відправляє ще одне (зашифроване) повідомлення до розумного контракту, яке голосує за варіант A, використовуючи новий відкритий ключ.
  • Еліс показує Бобу транзакцію, яка показує, що вона проголосувала за варіант В (що є недійсним, оскільки публічний ключ більше не пов'язаний із ідентифікацією Еліс в системі)
  • Під час обробки повідомлень координатор пропускає голос Аліси за варіант B та рахує лише голос за варіант A. Таким чином, спроба Боба зговоритися з Алісою та маніпулювати голосуванням на ланцюжку виявляється невдачею.

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

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

(відкривається в новій вкладці)

) які сильно покладаються на цілісність виборів кожної окремої особи.

Дізнайтеся більше про MACI

(відкривається в новій вкладці)

.

Недоліки використання нульових доказів

Витрати на обладнання

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

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

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

Довіряти припущенням

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

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

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

ZK-SNARK використовує криптографію еліптичних кривих

ECDSA) для шифрування. Хоча алгоритм ECDSA наразі є безпечним, розвиток квантових комп'ютерів може порушити його модель безпеки у майбутньому.

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

Disclaimer:

  1. Ця стаття переписана з [GateEthereum]. Усі авторські права належать оригінальному автору [Ethereum]. Якщо є зауваження до цього повторення, будь ласка, зв'яжіться з Gate Learnкоманди, і вони вирішать це негайно.
  2. Відповідальність за відмову: Погляди та думки, висловлені в цій статті, є виключно тими, що належать автору і не становлять жодної інвестиційної поради.
  3. Переклади статті на інші мови виконуються командою Gate Learn. Якщо не зазначено, копіювання, поширення або плагіат перекладених статей заборонені.

Що таке докази знань нулю?

Початківець1/4/2024, 6:21:16 PM
Ця стаття надає детальне доказ про нуль-знання докази (ZKP).

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

Докази з нульовим розголошенням поліпшилися з роками і зараз вони використовуються в кількох реальних додатках.

Чому нам потрібні докази про нульовий рівень знань?

Докази з нульовим розголошенням стали проривом у застосованій криптографії, оскільки вони обіцяли покращити безпеку інформації для осіб. Подумайте, як ви можете довести твердження (наприклад, „Я є громадянином країни Х“) іншій стороні (наприклад, постачальнику послуг). Вам потрібно буде надати „докази“, щоб підтвердити своє твердження, такі як національний паспорт або посвідчення водія.

Але є проблеми з таким підходом, головним чином - відсутність конфіденційності. Особиста ідентифікована інформація (ОІІ), яка ділиться з послугами сторонніх сторін, зберігається в центральних базах даних, які піддаються вразливості від взломів. З поширенням крадіжок особистості стає критичною проблемою, і є заклики до більш конфіденційних засобів обміну чутливою інформацією.

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

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

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

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

Протокол з нульовими знаннями повинен задовольняти наступні критерії:

  1. Повнота: Якщо вхід є дійсним, протокол з нульовим доказом завжди повертає «true». Таким чином, якщо базове твердження є правдивим, а доказуючий та перевіряючий діють чесно, доказ може бути прийнятий.
  2. Здоров'я: Якщо введені дані є недійсними, теоретично неможливо обманути протокол з нульовим доказом, щоб повернутися 'true'. Отже, брехливий доводчик не може обдурити чесного перевіряючого вважати недійсним висловлюванням є валідним (крім невеликого ймовірнісного маржі).
  3. Нуль-знання: Верифікатор нічого не дізнається про твердження, крім його вірності або хибності (вони мають "нуль-знання" про твердження). Це вимога також перешкоджає верифікатору виводити початковий ввід (зміст твердження) з доказу.

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

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

Вище описана структура 'інтерактивного доказу знань нуля'. Ранні протоколи нуль-знань використовували інтерактивне доведення, де перевірка валідності твердження вимагала взаємодії між доводами та перевіряючими.

Добрий приклад, який ілюструє, як працюють інтерактивні докази, - це відомий Жан-Жак КіскартерКазка про печеру Алі-Баби

(відкривається в новій вкладці)

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

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

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

Для вирішення цієї проблеми Мануель Блум, Пол Фелдман та Сільвіо Мікалі запропонували перше невзаємодійні докази нульового знання

(opens in a new tab)

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

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

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

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

Типи доказів нульового знання

ZK-SNARKs

ZK-SNARK - це скорочення від Zero-Knowledge Succinct Non-Interactive Argument of Knowledge. Протокол ZK-SNARK має наступні якості:

  • Zero-знання: перевірник може підтвердити цілісність заяви, не знаючи нічого іншого про заяву. Єдина інформація, яку перевірник має про заяву, це чи вона є правдивою чи хибною.
  • Коротко: Доказ знань з меншим обсягом вияву доказу може бути швидко перевірений.
  • Неінтерактивний: Доказ є 'неінтерактивним', оскільки доказувач і перевіряючий взаємодіють лише один раз, на відміну від інтерактивних доказів, які вимагають кількох раундів спілкування.
  • Аргумент: Доказ задовольняє вимогу 'звуковості', тому обман малоймовірний.
  • (Про) Знання: Доказ нуль-знання не може бути побудований без доступу до секретної інформації (свідка). Для доведення, яке не має свідка, важко, якщо не неможливо, обчислити дійсний доказ нуль-знання.

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

Багатосторонні обчислення (MPC)

(відкривається в новій вкладці)

це спосіб зменшення ризиків при формуванні загальних параметрів. В процесі беруть участь кілька сторін.церемонія довіреного налаштування

(відкривається в новій вкладці)

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

Довірені налаштування потребують від користувачів довіри до учасників у генерації параметрів. Однак розробка ZK-STARKs дозволила створити протоколи доведення, які працюють без довіреної настройки.

ZK-STARKs

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

  • Масштабований: ZK-STARK працює швидше, ніж ZK-SNARK у генерації та перевірці доказів, коли розмір свідка великий. З доказами STARK часи доказування та перевірки лише незначно збільшуються, коли зростає розмір свідка (часи доказування та верифікації SNARK збільшуються лінійно з розміром свідка).
  • Прозорість: ZK-STARK ґрунтується на публічно перевіреній випадковості для генерації публічних параметрів для доведення та верифікації замість довіреної налаштування. Таким чином, вони є більш прозорими порівняно з ZK-SNARKs.

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

Використання нульових доказів

Анонімні платежі

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

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

Існують конкретні «конфіденційні монети», призначені для повністю анонімних транзакцій. Блокчейни, що акцентують на приватності, такі як Zcash та Monero, захищають деталі транзакцій, включаючи адреси відправника/одержувача, тип активу, кількість та часову шкалу транзакції.

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

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

Захист особистості

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

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

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

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

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

Перевірна обчислення

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

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

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

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

Ось як це працює на практиці:

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

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

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

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

доказ процесу) гарантує, що транзакція є дійсною, дозволяючи Ethereum застосувати результат до свого стану—не чекаючи, поки хтось не заперечить це.

Zero-knowledge rollups та validiumsдва рішення позашляхового масштабування, які використовують докази достовірності для забезпечення безпечного масштабованості. Ці протоколи виконують тисячі транзакцій позашляхово і подають докази для перевірки на Ethereum. Ці результати можуть бути застосовані негайно після того, як доказ буде перевірено, що дозволяє Ethereum обробляти більше транзакцій без збільшення обчислень на базовому рівні.

Зменшення хабарництва та змови в ланцюжковому голосуванні

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

Визначивши як «координацію з метою обмеження відкритої конкуренції шляхом обману, шахрайства та вводження в оману інших», змова може приймати форму зловмисника, що впливає на голосування, пропонуючи хабарі. Наприклад, Аліса може отримати хабар від Боба за голосування за варіант B на бюлетені навіть якщо вона віддає перевагу варіанту A.

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

Наприклад, квадратичні механізми фінансування

(відкривається в новій вкладці)

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

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

На щастя, нові рішення, такі як MACI (Мінімальна інфраструктура проти злочинних угод), використовують докази нульового знання для того, щоб зробити голосування на ланцюжку (наприклад, квадратичні фінансові механізми) стійкими до підкупу та зговору. MACI - це набір смарт-контрактів та скриптів, які дозволяють центральному адміністраторові (званий “координатором”) агрегувати голоси та підбивати підсумки, не розкриваючи конкретики того, як голосував кожен окремий учасник. Тим не менш, все ще можна перевірити, що голоси були правильно підраховані, або підтвердити, що певна особа брала участь у голосуванні.

Як працює MACI з доказами нульового знання?

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

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

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

  • Еліс реєструється для голосування, надсилаючи свій відкритий ключ у розумний контракт.
  • Аліса погоджується проголосувати за варіант B в обмін на хабар від Боба.
  • Аліса голосує за варіант B.
  • Аліса таємно відправляє зашифровану транзакцію, щоб змінити відкритий ключ, пов'язаний з її ідентичністю.
  • Елісея відправляє ще одне (зашифроване) повідомлення до розумного контракту, яке голосує за варіант A, використовуючи новий відкритий ключ.
  • Еліс показує Бобу транзакцію, яка показує, що вона проголосувала за варіант В (що є недійсним, оскільки публічний ключ більше не пов'язаний із ідентифікацією Еліс в системі)
  • Під час обробки повідомлень координатор пропускає голос Аліси за варіант B та рахує лише голос за варіант A. Таким чином, спроба Боба зговоритися з Алісою та маніпулювати голосуванням на ланцюжку виявляється невдачею.

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

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

(відкривається в новій вкладці)

) які сильно покладаються на цілісність виборів кожної окремої особи.

Дізнайтеся більше про MACI

(відкривається в новій вкладці)

.

Недоліки використання нульових доказів

Витрати на обладнання

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

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

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

Довіряти припущенням

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

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

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

ZK-SNARK використовує криптографію еліптичних кривих

ECDSA) для шифрування. Хоча алгоритм ECDSA наразі є безпечним, розвиток квантових комп'ютерів може порушити його модель безпеки у майбутньому.

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

Disclaimer:

  1. Ця стаття переписана з [GateEthereum]. Усі авторські права належать оригінальному автору [Ethereum]. Якщо є зауваження до цього повторення, будь ласка, зв'яжіться з Gate Learnкоманди, і вони вирішать це негайно.
  2. Відповідальність за відмову: Погляди та думки, висловлені в цій статті, є виключно тими, що належать автору і не становлять жодної інвестиційної поради.
  3. Переклади статті на інші мови виконуються командою Gate Learn. Якщо не зазначено, копіювання, поширення або плагіат перекладених статей заборонені.
เริ่มตอนนี้
สมัครและรับรางวัล
$100