Система zk-SNARKs вперше виникла в результатах дослідження Голдвассера, Мікалі та Ракоффа у 1985 році. Вони досліджували обсяг знань, які необхідно обміняти під час багатократної взаємодії для підтвердження правильності твердження в інтерактивних системах. Якщо підтвердження може бути завершено без обміну будь-якими знаннями, це називається zk-SNARKs.
Ранні системи zk-SNARKs мали недоліки в ефективності та практичності, в основному залишаючись на теоретичному рівні. За останні 10 років, з розвитком криптографії у сфері криптовалют, zk-SNARKs почали активно розвиватися, ставши важливим напрямком досліджень. Серед них розробка універсальних, неінтерактивних, обмежених за розміром zk-SNARKs-протоколів є одним із ключових напрямків досліджень.
Одним із важливих проривів у сфері нульових знань стало коротке парне неінтерактивне нульове знання, запропоноване Гротом у 2010 році. Це заклало теоретичну основу для zk-SNARKs. У 2015 році Zcash впровадив систему нульових знань для захисту приватності транзакцій, що стало знаковим моментом для широкого застосування нульових знань.
Інші важливі наукові досягнення включають:
Pinocchio 2013: стиснення часу доказів і перевірки до придатного діапазону
Groth16 2016 року: зменшено розмір доказу, підвищено ефективність перевірки
Bulletproofs 2017 року: запропоновано короткі докази без необхідності надійної настройки
zk-STARKs 2018 року: запропоновано новий тип протоколу без потреби в надійних налаштуваннях
Крім того, PLONK, Halo2 та інші є важливими досягненнями, які вдосконалили zk-SNARKs.
zk-SNARKs в застосуванні
Найбільш поширеними двома застосуваннями zk-SNARKs є захист конфіденційності та масштабування.
захист конфіденційності
Ранні проекти з приватної торгівлі, такі як Zcash та Monero, після свого запуску стали важливим напрямком. Але через те, що необхідність у приватній торгівлі не виправдала очікувань, такі проекти поступово перейшли до другої та третьої ліги.
Zcash використовує технологію zk-SNARKs, а його етапи транзакції включають: налаштування системи, генерацію публічного та приватного ключів, карбування монет, генерацію доказів, верифікацію та отримання. Але Zcash базується на моделі UTXO, він лише приховує частину інформації про транзакції, а не повністю приховує. Рівень використання його конфіденційних транзакцій становить менше 10%.
Tornado Cash використовує дизайн єдиного великого пулу для змішування монет, оснований на мережі Ethereum, з використанням технології zk-SNARKs. Це гарантує, що тільки монети, які були внесені, можуть бути вилучені, кожна монета може бути вилучена лише один раз, а процес підтвердження пов'язаний з повідомленням про скасування.
розширення
Розширення ZK може бути реалізоване в мережі першого рівня (, такій як Mina ), або в мережі другого рівня (, тобто zk-rollup ). zk-rollup включає дві ролі: Sequencer та Aggregator. Sequencer відповідає за пакування транзакцій, Aggregator об'єднує велику кількість транзакцій і генерує zk-SNARKs, оновлюючи дерево станів Ethereum.
Переваги zk-rollup полягають у низьких витратах та швидкому досягненні фінальності, недоліки - у великій обчислювальній потужності та можливих проблемах безпеки.
Наразі основні проекти zk-rollup включають: StarkNet, zkSync, Aztec Connect, Polygon Hermez/Miden, Loopring, Scroll тощо. Вони мають різні вибори SNARK/STARK та сумісність з EVM.
Сумісність з EVM завжди була проблемою. Деякі проекти вибирають розробку власних віртуальних машин і мов, але це підвищує витрати на навчання розробників. Наразі в галузі існує два основні підходи: повна сумісність з операційними кодами Solidity або розробка нової віртуальної машини, дружньої до zk-SNARKs, з сумісністю з Solidity. Нещодавно досягнуто важливих успіхів у сумісності з EVM, що дозволяє сподіватися на безшовну міграцію розробників.
Принцип реалізації zk-SNARKs
ZK-SNARK(Стислий неінтерактивний аргумент Knowledge) з нульовим розголошенням - це система доведення з нульовим розголошенням з наступними характеристиками:
zk-SNARKs: процес доказування не розкриває додаткову інформацію
Лаконічність: невеликий обсяг перевірки
Ненадійний: не потребує багатоетапної взаємодії
Надійність: довіритель з обмеженими обчислювальними можливостями не може підробити доказ
Знання: доказник повинен знати дійсну інформацію, щоб побудувати докази
Процес доказування ZK-SNARK Groth16 включає:
Перетворення проблеми на електричну схему
Перетворення схеми в форму R1CS
Перетворення R1CS у форму QAP
Створення надійних налаштувань, генерація proving key та verifying key
Генерація та перевірка доказів zk-SNARKs
Технологія zk-SNARKs все ще швидко розвивається, в майбутньому вона має потенціал відіграти більшу роль у захисті конфіденційності, масштабуванні та інших аспектах.
Ця сторінка може містити контент третіх осіб, який надається виключно в інформаційних цілях (не в якості запевнень/гарантій) і не повинен розглядатися як схвалення його поглядів компанією Gate, а також як фінансова або професійна консультація. Див. Застереження для отримання детальної інформації.
Аналіз розвитку та застосування технології zk-SNARKs: від захисту приватності до масштабування Layer2
Розвиток та застосування zk-SNARKs
zk-SNARKs історія
Система zk-SNARKs вперше виникла в результатах дослідження Голдвассера, Мікалі та Ракоффа у 1985 році. Вони досліджували обсяг знань, які необхідно обміняти під час багатократної взаємодії для підтвердження правильності твердження в інтерактивних системах. Якщо підтвердження може бути завершено без обміну будь-якими знаннями, це називається zk-SNARKs.
Ранні системи zk-SNARKs мали недоліки в ефективності та практичності, в основному залишаючись на теоретичному рівні. За останні 10 років, з розвитком криптографії у сфері криптовалют, zk-SNARKs почали активно розвиватися, ставши важливим напрямком досліджень. Серед них розробка універсальних, неінтерактивних, обмежених за розміром zk-SNARKs-протоколів є одним із ключових напрямків досліджень.
Одним із важливих проривів у сфері нульових знань стало коротке парне неінтерактивне нульове знання, запропоноване Гротом у 2010 році. Це заклало теоретичну основу для zk-SNARKs. У 2015 році Zcash впровадив систему нульових знань для захисту приватності транзакцій, що стало знаковим моментом для широкого застосування нульових знань.
Інші важливі наукові досягнення включають:
Крім того, PLONK, Halo2 та інші є важливими досягненнями, які вдосконалили zk-SNARKs.
zk-SNARKs в застосуванні
Найбільш поширеними двома застосуваннями zk-SNARKs є захист конфіденційності та масштабування.
захист конфіденційності
Ранні проекти з приватної торгівлі, такі як Zcash та Monero, після свого запуску стали важливим напрямком. Але через те, що необхідність у приватній торгівлі не виправдала очікувань, такі проекти поступово перейшли до другої та третьої ліги.
Zcash використовує технологію zk-SNARKs, а його етапи транзакції включають: налаштування системи, генерацію публічного та приватного ключів, карбування монет, генерацію доказів, верифікацію та отримання. Але Zcash базується на моделі UTXO, він лише приховує частину інформації про транзакції, а не повністю приховує. Рівень використання його конфіденційних транзакцій становить менше 10%.
Tornado Cash використовує дизайн єдиного великого пулу для змішування монет, оснований на мережі Ethereum, з використанням технології zk-SNARKs. Це гарантує, що тільки монети, які були внесені, можуть бути вилучені, кожна монета може бути вилучена лише один раз, а процес підтвердження пов'язаний з повідомленням про скасування.
розширення
Розширення ZK може бути реалізоване в мережі першого рівня (, такій як Mina ), або в мережі другого рівня (, тобто zk-rollup ). zk-rollup включає дві ролі: Sequencer та Aggregator. Sequencer відповідає за пакування транзакцій, Aggregator об'єднує велику кількість транзакцій і генерує zk-SNARKs, оновлюючи дерево станів Ethereum.
Переваги zk-rollup полягають у низьких витратах та швидкому досягненні фінальності, недоліки - у великій обчислювальній потужності та можливих проблемах безпеки.
Наразі основні проекти zk-rollup включають: StarkNet, zkSync, Aztec Connect, Polygon Hermez/Miden, Loopring, Scroll тощо. Вони мають різні вибори SNARK/STARK та сумісність з EVM.
Сумісність з EVM завжди була проблемою. Деякі проекти вибирають розробку власних віртуальних машин і мов, але це підвищує витрати на навчання розробників. Наразі в галузі існує два основні підходи: повна сумісність з операційними кодами Solidity або розробка нової віртуальної машини, дружньої до zk-SNARKs, з сумісністю з Solidity. Нещодавно досягнуто важливих успіхів у сумісності з EVM, що дозволяє сподіватися на безшовну міграцію розробників.
Принцип реалізації zk-SNARKs
ZK-SNARK(Стислий неінтерактивний аргумент Knowledge) з нульовим розголошенням - це система доведення з нульовим розголошенням з наступними характеристиками:
Процес доказування ZK-SNARK Groth16 включає:
Технологія zk-SNARKs все ще швидко розвивається, в майбутньому вона має потенціал відіграти більшу роль у захисті конфіденційності, масштабуванні та інших аспектах.