Посібник для початківців із доказів із нульовим знанням: історія розробки, застосування та основні принципи

ПочатківецьJan 06, 2024
У цій статті систематично представлено історію розвитку та основні принципи доказів із нульовим знанням.
Посібник для початківців із доказів із нульовим знанням: історія розробки, застосування та основні принципи

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

1. Історія доказів з нульовим знанням

Сучасна система доказів з нульовим знанням виникла на основі статті, спільно опублікованої Голдвассером, Мікалі та Ракоффом: Складність знань інтерактивних систем перевірки (GMR85), яка була запропонована в 1985 році та опублікована в 1989 році. Ця стаття в основному пояснює, скільки знань потрібно обміняти після K раундів взаємодії в інтерактивній системі, щоб довести, що твердження правильне. Якщо обмін знаннями можна зробити нульовими, це називається доказом нульових знань. Передбачається, що перевіряльник має необмежені ресурси, а верифікатор має лише обмежені ресурси. Проблема з інтерактивними системами полягає в тому, що доказ не є повністю математично доказовим, але правильним у ймовірнісному сенсі, хоча ймовірність дуже мала (1/2^n).

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

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

По суті, доказ з нульовим знанням — це компроміс між швидкістю доказу, швидкістю перевірки та розміром доказу. Ідеальним протоколом є швидка перевірка, швидка перевірка та невеликий розмір перевірки.

Найважливішим проривом у доказі з нульовим знанням є стаття Грота «Short Pairing-based Non-interactive Zero-Knowledge Arguments» у 2010 році, яка також є теоретичним піонером найважливішої групи zk-SNARK у ZKP.

Найважливішою розробкою в застосуванні підтвердження з нульовим знанням є система підтвердження з нульовим знанням, яка використовувалася Z-cash у 2015 році, яка захищала конфіденційність транзакцій і сум. Пізніше він розвинувся в поєднання zk-SNARK і смарт-контрактів, і zk-SNARK увійшов у сценарії застосування Wider.

Деякі важливі академічні досягнення за цей період включають:

  1. Pinocchio (PGHR13) у 2013 році: Pinocchio: Nearly Practical Verifiable Computation, який стискає час перевірки та верифікації до відповідного обсягу, також є основним протоколом, який використовує Zcash.
  2. Groth16 у 2016 році: Про розмір неінтерактивних аргументів на основі пар, який спрощує розмір доказу та покращує ефективність перевірки, наразі є найпоширенішим базовим алгоритмом ZK.
  3. Bulletproofs (BBBPWM17) Bulletproofs: короткі докази для конфіденційних транзакцій і багато іншого у 2017 році запропонували алгоритм Bulletproof, дуже короткий неінтерактивний доказ з нульовим знанням, який не потребує надійного налаштування. Він буде застосований до Monero через 6 місяців і дуже швидкий. Поєднання теорії та застосування.
  4. У 2018 році zk-STARKs (BBHR18) масштабована, прозора та постквантова захищена обчислювальна цілісність запропонувала протокол алгоритму ZK-STARK, який не вимагає надійних налаштувань. Це ще один привабливий напрямок розвитку ZK на даний момент, і він також базується на цьому. На його основі народився StarkWare, найважливіший проект ZK.

Інші розробки, включаючи PLONK, Halo2 тощо, також є надзвичайно важливим прогресом і також внесли деякі покращення в zk-SNARK.

2. Короткий опис застосування доказу з нульовим знанням

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

Транзакції конфіденційності: Є багато проектів, які реалізували транзакції конфіденційності, зокрема Zcash із використанням SNARK, Tornado, Monero з використанням bulletproof та Dash. Dash не використовує ZKP у строгому сенсі, а просту та грубу систему змішування валют, яка може приховати лише адресу, але не суму. Я не згадуватиму про це тут.

Етапи транзакцій zk-SNARKs, застосовані Zcash, такі:

Джерело: Демістифікація ролі zk-SNARK в Zcash

  1. На етапі налаштування системи генерується ключ перевірки (поліном перевірки шифрування) і ключ перевірки за допомогою функції KeyGen
  2. Метод шифрування фази CPA ECIES (інтегрована схема шифрування з еліптичною кривою) використовується для створення відкритих і закритих ключів
  3. Етап карбування монет, кількість згенерованих нових монет. Публічний зв'язок і монети
  4. На етапі заливання генерується сертифікат zk-SNARK і додається до журналу транзакцій заливання.
  5. На етапі перевірки верифікатор перевіряє, чи правильні обсяги транзакцій Mint і Pour.
  6. На етапі отримання одержувач отримує монети. Якщо ви хочете використати отримані монети, продовжуйте викликати Pouring, щоб сформувати перевірку zk-SNARK, повторіть описані вище кроки 4-6, щоб завершити транзакцію.

Zcash все ще має обмеження щодо використання нульового знання, тобто він заснований на UTXO, тому частина інформації про транзакції лише захищена, а не прихована. Оскільки це окрема мережа, заснована на дизайні Bitcoin, її важко розширити (комбінувати з іншими програмами). Фактичний рівень використання екранування (тобто приватних транзакцій) становить менше 10%, що свідчить про те, що приватні транзакції не були успішно розширені. (з 2202)

Один великий пул змішування, який використовує Tornado, є більш універсальним і базується на «перевіреній» мережі, як-от Ethereum. Torndao — це, по суті, пул змішування валют, який використовує zk-SNARK, а налаштування довіри базується на документі Groth 16. У Tornado Cash доступні такі функції:

  1. Вивести можна лише внесені монети.
  2. Жодні монети не можна зняти двічі
  3. Процес перевірки прив’язаний до сповіщення про анулювання валюти (Nullifier). Хеш того самого доказу, але іншого Nullifier не дозволить виводити монети.
  4. Безпека 126-бітна і не буде погіршена через композицію.

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

Розширення: Розширення ZK можна здійснити в мережі першого рівня, наприклад Mina, або в мережі другого рівня, тобто zk-roll up. Ідея ​​ZK roll up, можливо, виникла з публікації Віталіка в 2018 році, масштабування в ланцюжку до потенційно ~500 tx/sec через масову перевірку tx.

ZK-rollup має два типи ролей: одна — це Sequencer, а інша — Aggregator. Секвенсор відповідає за упаковку транзакцій, а агрегатор відповідає за об’єднання великої кількості транзакцій і створення зведення, а також формування доказу SNARK (це також може бути доказ нульового знання на основі інших алгоритмів). Це підтвердження буде порівняно з попереднім станом Layer1, а потім оновлено дерево Ethereum Merkle, обчислено нове дерево стану.

Джерело: Полігон

Переваги та недоліки ZK rollup:

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

Джерело: дослідження Ethereum

Базуючись на доступності даних і методах перевірки, Starkware має класичну діаграму класифікації для рівня 2 (рівень доступності даних Volition можна вибрати в мережі або поза мережею):

Джерело: Starkware

Найконкурентніші зведені проекти ZK, які зараз є на ринку, включають: StarkNet від Starkware, zkSync від Matterlabs і Aztec connect від Aztec, Hermez і Miden від Polygon, Loopring, Scroll тощо.

В основному технічний шлях полягає у виборі SNARK (і його вдосконалених версій) і STARK, а також підтримки EVM (включаючи сумісність або еквівалентність).

  1. Компанія Aztec розробила узагальнений протокол SNARK-протокол Plonk. Запущений Aztec3 може підтримувати EVM, але конфіденційність має пріоритет над сумісністю з EVM.
  2. Starnet використовує zk-STARK, zkp, який не вимагає надійних налаштувань, але наразі не підтримує EVM і має власний компілятор і мову розробки.
  3. zkSync також використовує plonk і підтримує EVM. zkSync 2.0 сумісний з EVM і має власний zkEVM
  4. Scroll, EVM-сумісне зведення ZK, команда також є важливим учасником проекту zkEVM Ethereum Foundation

Коротко обговоріть проблеми сумісності EVM:

Сумісність між системою ZK і EVM завжди була головним болем, і більшість проектів вибирають між ними. Ті, хто наголошує на ZK, можуть побудувати віртуальну машину у своїй власній системі та мати власну мову ZK і компілятор, але це ускладнить навчання розробникам, і оскільки це в основному не є відкритим кодом, воно стане чорним ящиком . Загалом, галузь наразі має два варіанти. Одна — бути повністю сумісною з кодами операцій Solidity, а інша — розробити нову віртуальну машину, яка буде дружньою до ZK і сумісною з Solidity. Індустрія не очікувала такої швидкої інтеграції на початку, але швидка ітерація технології за останній рік-два вивела сумісність EVM на новий рівень, і розробники можуть досягти певного ступеня безперебійної міграції (тобто основного Ethereum chain to ZK rollup) — це захоплююча подія, яка вплине на екологію розвитку ZK та конкурентний ландшафт. Детальніше це питання ми обговоримо в наступних звітах.

3. Основні принципи впровадження ЗК СНАРК

Голдвассер, Мікалі та Ракофф припустили, що докази з нульовим знанням мають три властивості:

  1. Повнота: Кожна заява з розумними свідками може бути перевірена верифікатором
  2. Обґрунтованість: будь-яка претензія лише з необґрунтованими свідками не повинна перевірятися верифікатором
  3. Нульове знання: процес перевірки є нульовим знанням

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

zk-SNARK означає: підтвердження з нульовим знанням (zh-SNARK) — це стислі неінтерактивні аргументи знань з нульовим знанням.

  1. Нульові знання: процес перевірки є нульовим знанням і не розкриває надлишкової інформації.
  2. Коротко: малий розмір підтвердження
  3. Non-interactive: неінтерактивний процес
  4. АРгументи: розрахунок є надійним, тобто перевірник з обмеженою обчислювальною потужністю не може підробити доказ, а доказувач з необмеженою обчислювальною потужністю може підробити доказ.
  5. знань: перевіряючий не може побудувати параметр і доказ, не знаючи дійсної інформації
  6. Неможливо для довідника побудувати набір параметрів і доказ без знання свідка (наприклад, введення хеш-функції або шлях для визначення вузла дерева Меркла).

Принцип доказу zk-SNARK від Groth16 такий:

Джерело: https://learnblockchain.cn/article/3220

Кроки такі:

  1. Перетворіть задачу в схему
  2. Зведіть схему у форму R1CS.
  3. Перетворення R1CS у формат QAP (квадратичні арифметичні програми).
  4. Встановіть надійне налаштування та згенеруйте випадкові параметри, зокрема PK (ключ перевірки) і VK (ключ перевірки)
  5. Генерація доказів і перевірка zk-SNARK

У наступній статті ми почнемо вивчати принципи та застосування zk-SNARK, розглянемо розвиток ZK-SNARK у кількох випадках і дослідимо його зв’язок із zk-STARK.

Відмова від відповідальності:

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

Посібник для початківців із доказів із нульовим знанням: історія розробки, застосування та основні принципи

ПочатківецьJan 06, 2024
У цій статті систематично представлено історію розвитку та основні принципи доказів із нульовим знанням.
Посібник для початківців із доказів із нульовим знанням: історія розробки, застосування та основні принципи

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

1. Історія доказів з нульовим знанням

Сучасна система доказів з нульовим знанням виникла на основі статті, спільно опублікованої Голдвассером, Мікалі та Ракоффом: Складність знань інтерактивних систем перевірки (GMR85), яка була запропонована в 1985 році та опублікована в 1989 році. Ця стаття в основному пояснює, скільки знань потрібно обміняти після K раундів взаємодії в інтерактивній системі, щоб довести, що твердження правильне. Якщо обмін знаннями можна зробити нульовими, це називається доказом нульових знань. Передбачається, що перевіряльник має необмежені ресурси, а верифікатор має лише обмежені ресурси. Проблема з інтерактивними системами полягає в тому, що доказ не є повністю математично доказовим, але правильним у ймовірнісному сенсі, хоча ймовірність дуже мала (1/2^n).

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

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

По суті, доказ з нульовим знанням — це компроміс між швидкістю доказу, швидкістю перевірки та розміром доказу. Ідеальним протоколом є швидка перевірка, швидка перевірка та невеликий розмір перевірки.

Найважливішим проривом у доказі з нульовим знанням є стаття Грота «Short Pairing-based Non-interactive Zero-Knowledge Arguments» у 2010 році, яка також є теоретичним піонером найважливішої групи zk-SNARK у ZKP.

Найважливішою розробкою в застосуванні підтвердження з нульовим знанням є система підтвердження з нульовим знанням, яка використовувалася Z-cash у 2015 році, яка захищала конфіденційність транзакцій і сум. Пізніше він розвинувся в поєднання zk-SNARK і смарт-контрактів, і zk-SNARK увійшов у сценарії застосування Wider.

Деякі важливі академічні досягнення за цей період включають:

  1. Pinocchio (PGHR13) у 2013 році: Pinocchio: Nearly Practical Verifiable Computation, який стискає час перевірки та верифікації до відповідного обсягу, також є основним протоколом, який використовує Zcash.
  2. Groth16 у 2016 році: Про розмір неінтерактивних аргументів на основі пар, який спрощує розмір доказу та покращує ефективність перевірки, наразі є найпоширенішим базовим алгоритмом ZK.
  3. Bulletproofs (BBBPWM17) Bulletproofs: короткі докази для конфіденційних транзакцій і багато іншого у 2017 році запропонували алгоритм Bulletproof, дуже короткий неінтерактивний доказ з нульовим знанням, який не потребує надійного налаштування. Він буде застосований до Monero через 6 місяців і дуже швидкий. Поєднання теорії та застосування.
  4. У 2018 році zk-STARKs (BBHR18) масштабована, прозора та постквантова захищена обчислювальна цілісність запропонувала протокол алгоритму ZK-STARK, який не вимагає надійних налаштувань. Це ще один привабливий напрямок розвитку ZK на даний момент, і він також базується на цьому. На його основі народився StarkWare, найважливіший проект ZK.

Інші розробки, включаючи PLONK, Halo2 тощо, також є надзвичайно важливим прогресом і також внесли деякі покращення в zk-SNARK.

2. Короткий опис застосування доказу з нульовим знанням

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

Транзакції конфіденційності: Є багато проектів, які реалізували транзакції конфіденційності, зокрема Zcash із використанням SNARK, Tornado, Monero з використанням bulletproof та Dash. Dash не використовує ZKP у строгому сенсі, а просту та грубу систему змішування валют, яка може приховати лише адресу, але не суму. Я не згадуватиму про це тут.

Етапи транзакцій zk-SNARKs, застосовані Zcash, такі:

Джерело: Демістифікація ролі zk-SNARK в Zcash

  1. На етапі налаштування системи генерується ключ перевірки (поліном перевірки шифрування) і ключ перевірки за допомогою функції KeyGen
  2. Метод шифрування фази CPA ECIES (інтегрована схема шифрування з еліптичною кривою) використовується для створення відкритих і закритих ключів
  3. Етап карбування монет, кількість згенерованих нових монет. Публічний зв'язок і монети
  4. На етапі заливання генерується сертифікат zk-SNARK і додається до журналу транзакцій заливання.
  5. На етапі перевірки верифікатор перевіряє, чи правильні обсяги транзакцій Mint і Pour.
  6. На етапі отримання одержувач отримує монети. Якщо ви хочете використати отримані монети, продовжуйте викликати Pouring, щоб сформувати перевірку zk-SNARK, повторіть описані вище кроки 4-6, щоб завершити транзакцію.

Zcash все ще має обмеження щодо використання нульового знання, тобто він заснований на UTXO, тому частина інформації про транзакції лише захищена, а не прихована. Оскільки це окрема мережа, заснована на дизайні Bitcoin, її важко розширити (комбінувати з іншими програмами). Фактичний рівень використання екранування (тобто приватних транзакцій) становить менше 10%, що свідчить про те, що приватні транзакції не були успішно розширені. (з 2202)

Один великий пул змішування, який використовує Tornado, є більш універсальним і базується на «перевіреній» мережі, як-от Ethereum. Torndao — це, по суті, пул змішування валют, який використовує zk-SNARK, а налаштування довіри базується на документі Groth 16. У Tornado Cash доступні такі функції:

  1. Вивести можна лише внесені монети.
  2. Жодні монети не можна зняти двічі
  3. Процес перевірки прив’язаний до сповіщення про анулювання валюти (Nullifier). Хеш того самого доказу, але іншого Nullifier не дозволить виводити монети.
  4. Безпека 126-бітна і не буде погіршена через композицію.

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

Розширення: Розширення ZK можна здійснити в мережі першого рівня, наприклад Mina, або в мережі другого рівня, тобто zk-roll up. Ідея ​​ZK roll up, можливо, виникла з публікації Віталіка в 2018 році, масштабування в ланцюжку до потенційно ~500 tx/sec через масову перевірку tx.

ZK-rollup має два типи ролей: одна — це Sequencer, а інша — Aggregator. Секвенсор відповідає за упаковку транзакцій, а агрегатор відповідає за об’єднання великої кількості транзакцій і створення зведення, а також формування доказу SNARK (це також може бути доказ нульового знання на основі інших алгоритмів). Це підтвердження буде порівняно з попереднім станом Layer1, а потім оновлено дерево Ethereum Merkle, обчислено нове дерево стану.

Джерело: Полігон

Переваги та недоліки ZK rollup:

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

Джерело: дослідження Ethereum

Базуючись на доступності даних і методах перевірки, Starkware має класичну діаграму класифікації для рівня 2 (рівень доступності даних Volition можна вибрати в мережі або поза мережею):

Джерело: Starkware

Найконкурентніші зведені проекти ZK, які зараз є на ринку, включають: StarkNet від Starkware, zkSync від Matterlabs і Aztec connect від Aztec, Hermez і Miden від Polygon, Loopring, Scroll тощо.

В основному технічний шлях полягає у виборі SNARK (і його вдосконалених версій) і STARK, а також підтримки EVM (включаючи сумісність або еквівалентність).

  1. Компанія Aztec розробила узагальнений протокол SNARK-протокол Plonk. Запущений Aztec3 може підтримувати EVM, але конфіденційність має пріоритет над сумісністю з EVM.
  2. Starnet використовує zk-STARK, zkp, який не вимагає надійних налаштувань, але наразі не підтримує EVM і має власний компілятор і мову розробки.
  3. zkSync також використовує plonk і підтримує EVM. zkSync 2.0 сумісний з EVM і має власний zkEVM
  4. Scroll, EVM-сумісне зведення ZK, команда також є важливим учасником проекту zkEVM Ethereum Foundation

Коротко обговоріть проблеми сумісності EVM:

Сумісність між системою ZK і EVM завжди була головним болем, і більшість проектів вибирають між ними. Ті, хто наголошує на ZK, можуть побудувати віртуальну машину у своїй власній системі та мати власну мову ZK і компілятор, але це ускладнить навчання розробникам, і оскільки це в основному не є відкритим кодом, воно стане чорним ящиком . Загалом, галузь наразі має два варіанти. Одна — бути повністю сумісною з кодами операцій Solidity, а інша — розробити нову віртуальну машину, яка буде дружньою до ZK і сумісною з Solidity. Індустрія не очікувала такої швидкої інтеграції на початку, але швидка ітерація технології за останній рік-два вивела сумісність EVM на новий рівень, і розробники можуть досягти певного ступеня безперебійної міграції (тобто основного Ethereum chain to ZK rollup) — це захоплююча подія, яка вплине на екологію розвитку ZK та конкурентний ландшафт. Детальніше це питання ми обговоримо в наступних звітах.

3. Основні принципи впровадження ЗК СНАРК

Голдвассер, Мікалі та Ракофф припустили, що докази з нульовим знанням мають три властивості:

  1. Повнота: Кожна заява з розумними свідками може бути перевірена верифікатором
  2. Обґрунтованість: будь-яка претензія лише з необґрунтованими свідками не повинна перевірятися верифікатором
  3. Нульове знання: процес перевірки є нульовим знанням

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

zk-SNARK означає: підтвердження з нульовим знанням (zh-SNARK) — це стислі неінтерактивні аргументи знань з нульовим знанням.

  1. Нульові знання: процес перевірки є нульовим знанням і не розкриває надлишкової інформації.
  2. Коротко: малий розмір підтвердження
  3. Non-interactive: неінтерактивний процес
  4. АРгументи: розрахунок є надійним, тобто перевірник з обмеженою обчислювальною потужністю не може підробити доказ, а доказувач з необмеженою обчислювальною потужністю може підробити доказ.
  5. знань: перевіряючий не може побудувати параметр і доказ, не знаючи дійсної інформації
  6. Неможливо для довідника побудувати набір параметрів і доказ без знання свідка (наприклад, введення хеш-функції або шлях для визначення вузла дерева Меркла).

Принцип доказу zk-SNARK від Groth16 такий:

Джерело: https://learnblockchain.cn/article/3220

Кроки такі:

  1. Перетворіть задачу в схему
  2. Зведіть схему у форму R1CS.
  3. Перетворення R1CS у формат QAP (квадратичні арифметичні програми).
  4. Встановіть надійне налаштування та згенеруйте випадкові параметри, зокрема PK (ключ перевірки) і VK (ключ перевірки)
  5. Генерація доказів і перевірка zk-SNARK

У наступній статті ми почнемо вивчати принципи та застосування zk-SNARK, розглянемо розвиток ZK-SNARK у кількох випадках і дослідимо його зв’язок із zk-STARK.

Відмова від відповідальності:

  1. Цю статтю передруковано з [HashKey Capital]. Усі авторські права належать оригінальному автору [HashKey Capital]. Якщо є заперечення щодо цього передруку, будь ласка, зв’яжіться з командою Gate Learn , і вони негайно розглянуть це.
  2. Відмова від відповідальності: погляди та думки, висловлені в цій статті, належать виключно автору та не є жодною інвестиційною порадою.
  3. Переклади статті на інші мови виконує команда Gate Learn. Якщо не зазначено вище, копіювання, розповсюдження або плагіат перекладених статей заборонено.
Розпочати зараз
Зареєструйтеся та отримайте ваучер на
$100
!