Современная система 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-SNARKs.
Два, применение zk-SNARKs
Самыми широкими приложениями零知识证明 являются защита конфиденциальности и масштабирование. Ранние проекты по конфиденциальным транзакциям, такие как Zcash и Monero, в какой-то момент привлекали много внимания, но из-за того, что реальные потребности оказались ниже ожидаемых, они постепенно вышли из мейнстрима. В последние годы, с переходом Ethereum 2.0 к маршруту, сосредоточенному на rollup, основанные на ZK решения по масштабированию вновь стали в центре внимания.
Приватные сделки
Представительные проекты по приватным сделкам включают:
Использование Zcash и Tornado на базе zk-SNARKs
Использование 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 включают: низкие расходы, быстрая финализация, защита конфиденциальности и т.д. Недостатки включают: большие вычислительные затраты, соображения безопасности (, такие как необходимость доверенной настройки ), возможные изменения порядка транзакций и т.д.
На данный момент основными проектами 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-SNARKs.
Два, применение 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 включают: низкие расходы, быстрая финализация, защита конфиденциальности и т.д. Недостатки включают: большие вычислительные затраты, соображения безопасности (, такие как необходимость доверенной настройки ), возможные изменения порядка транзакций и т.д.
На данный момент основными проектами 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, его принцип доказательства включает следующие этапы: