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