Система zk-SNARKs впервые появилась в результате исследований Голдвассера, Микали и Раккофа в 1985 году. Они изучали объем знаний, необходимых для доказательства правильности утверждения в интерактивных системах через многоразовые взаимодействия. Если доказательство может быть завершено без обмена какими-либо знаниями, это называется zk-SNARKs.
Ранние системы zk-SNARKs имели недостатки в эффективности и практичности, в основном оставались на теоретическом уровне. За последние 10 лет, с ростом криптографии в области криптовалют, zk-SNARKs начали активно развиваться и стали важным направлением исследований. Одним из ключевых направлений исследования является разработка универсальных, неинтерактивных протоколов zk-SNARKs с ограниченным объемом доказательства.
Одним из важных прорывов в области нулевых доказательств стало короткое парное неинтерактивное нулевое доказательство, предложенное Гротом в 2010 году. Это положило теоретическую основу для zk-SNARKs. В 2015 году Zcash внедрил систему нулевых доказательств для обеспечения конфиденциальности транзакций, что ознаменовало широкое применение нулевых доказательств.
Другие важные научные достижения включают:
Пиноккио 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 использует дизайн единого большого пула смешанных монет, основанный на сети Эфириума, с использованием технологии 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, с совместимостью с Solidity. Недавно совместимость с EVM достигла важного прогресса, что дает надежду на бесшовную миграцию разработчиков.
Принципы реализации zk-SNARKs
ZK-SNARK(Zero-Knowledge Succinct Non-Interactive Argument of Knowledge) является системой zk-SNARKs, обладающей следующими характеристиками:
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 использует дизайн единого большого пула смешанных монет, основанный на сети Эфириума, с использованием технологии 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, с совместимостью с Solidity. Недавно совместимость с EVM достигла важного прогресса, что дает надежду на бесшовную миграцию разработчиков.
Принципы реализации zk-SNARKs
ZK-SNARK(Zero-Knowledge Succinct Non-Interactive Argument of Knowledge) является системой zk-SNARKs, обладающей следующими характеристиками:
Процесс доказательства ZK-SNARK Groth16 включает:
Технология zk-SNARKs продолжает быстро развиваться и в будущем, вероятно, сыграет более значительную роль в защите конфиденциальности и масштабировании.