Нинішні темпи зростання проектів з нульовим знанням (ZKP) в індустрії блокчейнів вражають, особливо зростання кількості ZKP-додатків на двох рівнях розширення та захисту конфіденційності, що наразило нас на різноманітні проекти з нульовим знанням. Через надзвичайно математичну природу ZKP любителям шифрування значно складніше глибоко зрозуміти ZK. Тому ми також сподіваємося розібратися з деякими змінами в теорії та застосуванні ZKP з самого початку, а також дослідити вплив і значення для криптоіндустрії разом з читачами - навчаючись разом за допомогою кількох звітів, які також служать узагальненням думок HashKey Столична дослідницька група. Ця стаття є першою в серії, головним чином представляючи історію розробки, програми та деякі основні принципи ZKP.
Сучасна система доказів з нульовим знанням виникла на основі статті, спільно опублікованої Голдвассером, Мікалі та Ракоффом: Складність знань інтерактивних систем перевірки (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.
Деякі важливі академічні досягнення за цей період включають:
Інші розробки, включаючи PLONK, Halo2 тощо, також є надзвичайно важливим прогресом і також внесли деякі покращення в zk-SNARK.
Двома найпоширенішими застосуваннями доказів із нульовим знанням є захист конфіденційності та розширення ємності. На початку, із запуском транзакцій конфіденційності та кількох відомих проектів, таких як Zcash і Monero, транзакції конфіденційності колись стали дуже важливою категорією. Однак через те, що необхідність транзакцій конфіденційності була не такою помітною, як сподівалася галузь, цей тип репрезентативних проектів почав сповільнюватися. Повільно входьте в табори другого та третього рівня (не сходіть зі сцени історії). На рівні додатків потреба в розширенні зросла до точки, коли Ethereum 2.0 (який був перейменований на консенсусний рівень) перетворився на зведений маршрут у 2020 році. Серія ZK офіційно повернулася до уваги індустрії та стала центром уваги.
Транзакції конфіденційності: Є багато проектів, які реалізували транзакції конфіденційності, зокрема Zcash із використанням SNARK, Tornado, Monero з використанням bulletproof та Dash. Dash не використовує ZKP у строгому сенсі, а просту та грубу систему змішування валют, яка може приховати лише адресу, але не суму. Я не згадуватиму про це тут.
Етапи транзакцій zk-SNARKs, застосовані Zcash, такі:
Джерело: Демістифікація ролі zk-SNARK в Zcash
Zcash все ще має обмеження щодо використання нульового знання, тобто він заснований на UTXO, тому частина інформації про транзакції лише захищена, а не прихована. Оскільки це окрема мережа, заснована на дизайні Bitcoin, її важко розширити (комбінувати з іншими програмами). Фактичний рівень використання екранування (тобто приватних транзакцій) становить менше 10%, що свідчить про те, що приватні транзакції не були успішно розширені. (з 2202)
Один великий пул змішування, який використовує Tornado, є більш універсальним і базується на «перевіреній» мережі, як-от Ethereum. Torndao — це, по суті, пул змішування валют, який використовує zk-SNARK, а налаштування довіри базується на документі Groth 16. У Tornado Cash доступні такі функції:
Віталік зазначив, що порівняно з розширенням конфіденційність відносно легко реалізувати. Якщо можна встановити деякі протоколи розширення, конфіденційність в основному не буде проблемою.
Розширення: Розширення ZK можна здійснити в мережі першого рівня, наприклад Mina, або в мережі другого рівня, тобто zk-roll up. Ідея ZK roll up, можливо, виникла з публікації Віталіка в 2018 році, масштабування в ланцюжку до потенційно ~500 tx/sec через масову перевірку tx.
ZK-rollup має два типи ролей: одна — це Sequencer, а інша — Aggregator. Секвенсор відповідає за упаковку транзакцій, а агрегатор відповідає за об’єднання великої кількості транзакцій і створення зведення, а також формування доказу SNARK (це також може бути доказ нульового знання на основі інших алгоритмів). Це підтвердження буде порівняно з попереднім станом Layer1, а потім оновлено дерево Ethereum Merkle, обчислено нове дерево стану.
Джерело: Полігон
Переваги та недоліки ZK rollup:
Джерело: дослідження Ethereum
Базуючись на доступності даних і методах перевірки, Starkware має класичну діаграму класифікації для рівня 2 (рівень доступності даних Volition можна вибрати в мережі або поза мережею):
Джерело: Starkware
Найконкурентніші зведені проекти ZK, які зараз є на ринку, включають: StarkNet від Starkware, zkSync від Matterlabs і Aztec connect від Aztec, Hermez і Miden від Polygon, Loopring, Scroll тощо.
В основному технічний шлях полягає у виборі SNARK (і його вдосконалених версій) і STARK, а також підтримки EVM (включаючи сумісність або еквівалентність).
Коротко обговоріть проблеми сумісності EVM:
Сумісність між системою ZK і EVM завжди була головним болем, і більшість проектів вибирають між ними. Ті, хто наголошує на ZK, можуть побудувати віртуальну машину у своїй власній системі та мати власну мову ZK і компілятор, але це ускладнить навчання розробникам, і оскільки це в основному не є відкритим кодом, воно стане чорним ящиком . Загалом, галузь наразі має два варіанти. Одна — бути повністю сумісною з кодами операцій Solidity, а інша — розробити нову віртуальну машину, яка буде дружньою до ZK і сумісною з Solidity. Індустрія не очікувала такої швидкої інтеграції на початку, але швидка ітерація технології за останній рік-два вивела сумісність EVM на новий рівень, і розробники можуть досягти певного ступеня безперебійної міграції (тобто основного Ethereum chain to ZK rollup) — це захоплююча подія, яка вплине на екологію розвитку ZK та конкурентний ландшафт. Детальніше це питання ми обговоримо в наступних звітах.
Голдвассер, Мікалі та Ракофф припустили, що докази з нульовим знанням мають три властивості:
Отже, щоб зрозуміти ZKP, ми починаємо з zk-SNARK, тому що багато сучасних блокчейн-додатків починаються з SNARK. По-перше, давайте подивимося на zk-SNARK.
zk-SNARK означає: підтвердження з нульовим знанням (zh-SNARK) — це стислі неінтерактивні аргументи знань з нульовим знанням.
Принцип доказу zk-SNARK від Groth16 такий:
Джерело: https://learnblockchain.cn/article/3220
Кроки такі:
У наступній статті ми почнемо вивчати принципи та застосування zk-SNARK, розглянемо розвиток ZK-SNARK у кількох випадках і дослідимо його зв’язок із zk-STARK.
Нинішні темпи зростання проектів з нульовим знанням (ZKP) в індустрії блокчейнів вражають, особливо зростання кількості ZKP-додатків на двох рівнях розширення та захисту конфіденційності, що наразило нас на різноманітні проекти з нульовим знанням. Через надзвичайно математичну природу ZKP любителям шифрування значно складніше глибоко зрозуміти ZK. Тому ми також сподіваємося розібратися з деякими змінами в теорії та застосуванні ZKP з самого початку, а також дослідити вплив і значення для криптоіндустрії разом з читачами - навчаючись разом за допомогою кількох звітів, які також служать узагальненням думок HashKey Столична дослідницька група. Ця стаття є першою в серії, головним чином представляючи історію розробки, програми та деякі основні принципи ZKP.
Сучасна система доказів з нульовим знанням виникла на основі статті, спільно опублікованої Голдвассером, Мікалі та Ракоффом: Складність знань інтерактивних систем перевірки (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.
Деякі важливі академічні досягнення за цей період включають:
Інші розробки, включаючи PLONK, Halo2 тощо, також є надзвичайно важливим прогресом і також внесли деякі покращення в zk-SNARK.
Двома найпоширенішими застосуваннями доказів із нульовим знанням є захист конфіденційності та розширення ємності. На початку, із запуском транзакцій конфіденційності та кількох відомих проектів, таких як Zcash і Monero, транзакції конфіденційності колись стали дуже важливою категорією. Однак через те, що необхідність транзакцій конфіденційності була не такою помітною, як сподівалася галузь, цей тип репрезентативних проектів почав сповільнюватися. Повільно входьте в табори другого та третього рівня (не сходіть зі сцени історії). На рівні додатків потреба в розширенні зросла до точки, коли Ethereum 2.0 (який був перейменований на консенсусний рівень) перетворився на зведений маршрут у 2020 році. Серія ZK офіційно повернулася до уваги індустрії та стала центром уваги.
Транзакції конфіденційності: Є багато проектів, які реалізували транзакції конфіденційності, зокрема Zcash із використанням SNARK, Tornado, Monero з використанням bulletproof та Dash. Dash не використовує ZKP у строгому сенсі, а просту та грубу систему змішування валют, яка може приховати лише адресу, але не суму. Я не згадуватиму про це тут.
Етапи транзакцій zk-SNARKs, застосовані Zcash, такі:
Джерело: Демістифікація ролі zk-SNARK в Zcash
Zcash все ще має обмеження щодо використання нульового знання, тобто він заснований на UTXO, тому частина інформації про транзакції лише захищена, а не прихована. Оскільки це окрема мережа, заснована на дизайні Bitcoin, її важко розширити (комбінувати з іншими програмами). Фактичний рівень використання екранування (тобто приватних транзакцій) становить менше 10%, що свідчить про те, що приватні транзакції не були успішно розширені. (з 2202)
Один великий пул змішування, який використовує Tornado, є більш універсальним і базується на «перевіреній» мережі, як-от Ethereum. Torndao — це, по суті, пул змішування валют, який використовує zk-SNARK, а налаштування довіри базується на документі Groth 16. У Tornado Cash доступні такі функції:
Віталік зазначив, що порівняно з розширенням конфіденційність відносно легко реалізувати. Якщо можна встановити деякі протоколи розширення, конфіденційність в основному не буде проблемою.
Розширення: Розширення ZK можна здійснити в мережі першого рівня, наприклад Mina, або в мережі другого рівня, тобто zk-roll up. Ідея ZK roll up, можливо, виникла з публікації Віталіка в 2018 році, масштабування в ланцюжку до потенційно ~500 tx/sec через масову перевірку tx.
ZK-rollup має два типи ролей: одна — це Sequencer, а інша — Aggregator. Секвенсор відповідає за упаковку транзакцій, а агрегатор відповідає за об’єднання великої кількості транзакцій і створення зведення, а також формування доказу SNARK (це також може бути доказ нульового знання на основі інших алгоритмів). Це підтвердження буде порівняно з попереднім станом Layer1, а потім оновлено дерево Ethereum Merkle, обчислено нове дерево стану.
Джерело: Полігон
Переваги та недоліки ZK rollup:
Джерело: дослідження Ethereum
Базуючись на доступності даних і методах перевірки, Starkware має класичну діаграму класифікації для рівня 2 (рівень доступності даних Volition можна вибрати в мережі або поза мережею):
Джерело: Starkware
Найконкурентніші зведені проекти ZK, які зараз є на ринку, включають: StarkNet від Starkware, zkSync від Matterlabs і Aztec connect від Aztec, Hermez і Miden від Polygon, Loopring, Scroll тощо.
В основному технічний шлях полягає у виборі SNARK (і його вдосконалених версій) і STARK, а також підтримки EVM (включаючи сумісність або еквівалентність).
Коротко обговоріть проблеми сумісності EVM:
Сумісність між системою ZK і EVM завжди була головним болем, і більшість проектів вибирають між ними. Ті, хто наголошує на ZK, можуть побудувати віртуальну машину у своїй власній системі та мати власну мову ZK і компілятор, але це ускладнить навчання розробникам, і оскільки це в основному не є відкритим кодом, воно стане чорним ящиком . Загалом, галузь наразі має два варіанти. Одна — бути повністю сумісною з кодами операцій Solidity, а інша — розробити нову віртуальну машину, яка буде дружньою до ZK і сумісною з Solidity. Індустрія не очікувала такої швидкої інтеграції на початку, але швидка ітерація технології за останній рік-два вивела сумісність EVM на новий рівень, і розробники можуть досягти певного ступеня безперебійної міграції (тобто основного Ethereum chain to ZK rollup) — це захоплююча подія, яка вплине на екологію розвитку ZK та конкурентний ландшафт. Детальніше це питання ми обговоримо в наступних звітах.
Голдвассер, Мікалі та Ракофф припустили, що докази з нульовим знанням мають три властивості:
Отже, щоб зрозуміти ZKP, ми починаємо з zk-SNARK, тому що багато сучасних блокчейн-додатків починаються з SNARK. По-перше, давайте подивимося на zk-SNARK.
zk-SNARK означає: підтвердження з нульовим знанням (zh-SNARK) — це стислі неінтерактивні аргументи знань з нульовим знанням.
Принцип доказу zk-SNARK від Groth16 такий:
Джерело: https://learnblockchain.cn/article/3220
Кроки такі:
У наступній статті ми почнемо вивчати принципи та застосування zk-SNARK, розглянемо розвиток ZK-SNARK у кількох випадках і дослідимо його зв’язок із zk-STARK.