Система нулевых знаний берет свое начало из статьи «О сложности знаний интерактивных доказательных систем», опубликованной в 1985 году Голдвассером, Микали и Раккоффом. В этой статье рассматривается объем знаний, который необходимо обменять в интерактивной системе для доказательства истинности утверждения через много раундов взаимодействия. Если доказательство может быть завершено без раскрытия какой-либо дополнительной информации, это называется нулевым знанием.
Ранние системы zk-SNARKs имели низкую эффективность и практическую ценность, оставаясь в основном на теоретическом уровне. Лишь в последние 10 лет, с широким применением криптографии в области криптовалют, zk-SNARKs постепенно стали важным направлением исследований. Ключевой целью является разработка универсальных, неинтерактивных протоколов zk-SNARKs с ограниченным размером доказательства.
Прорыв в области нулевых знаний был достигнут в 2010 году благодаря статье Грота, которая заложила теоретическую основу zk-SNARKs. В 2015 году Zcash применил нулевые знания для защиты конфиденциальности транзакций, что открыло широкое применение нулевых знаний в реальных сценариях.
С тех пор некоторые важные академические достижения включают:
Протокол Пиноккио 2013 года значительно повысил эффективность доказательства и верификации
Groth16 2016 года, который дополнительно сократил размер доказательства и повысил эффективность верификации
Bulletproofs 2017 года предложили короткие алгоритмы доказательства без необходимости в доверенной настройке.
В 2018 году были предложены zk-STARKs, которые представляют собой квантово-устойчивый протокол нулевых знаний.
Другие новые разработки, такие как PLONK, Halo2 и т.д., также улучшили zk-SNARK в разных аспектах.
Основные приложения zk-SNARKs
Наиболее распространенные два применения zk-SNARKs в настоящее время — это защита конфиденциальности и масштабирование.
Ранее такие приложения для обеспечения конфиденциальности, как Zcash и Monero, пользовались большим вниманием, но потребность в конфиденциальности не оказалась столь ярко выраженной, и такие проекты постепенно отошли на второй план. В то же время потребность в масштабировании становится всё более актуальной. Особенно после того, как Ethereum 2.0 перешёл на путь, ориентированный на rollup, решения по масштабированию на основе zk-SNARKs вернулись в фокус внимания отрасли.
Приватные сделки
Представительные проекты по приватным сделкам включают:
Zcash: использование zk-SNARKs для обеспечения конфиденциальности транзакций
Monero: использует алгоритм Bulletproofs
Tornado Cash: смеситель на базе Ethereum, использующий zk-SNARKs
Процесс конфиденциальной транзакции Zcash включает в себя настройку системы, генерацию ключей, чеканку, создание доказательства транзакции, верификацию и получение и т.д. Однако у Zcash есть и некоторые ограничения, такие как основание на модели UTXO, что затрудняет интеграцию с другими приложениями, а фактическая частота использования конфиденциальных транзакций не высока.
Tornado Cash использует единый большой пул смешанных монет, что обеспечивает лучшую универсальность. Он основан на реализации zk-SNARKs на основе Groth16, что гарантирует, что только депонированные монеты могут быть выведены, и каждая монета может быть выведена только один раз.
расширение
Применение zk-SNARKs в области масштабирования в основном заключается в zk-rollup. Основные роли в zk-rollup выполняют Sequencer и Aggregator. Sequencer отвечает за упаковку транзакций, а Aggregator объединяет большое количество транзакций и генерирует zk-SNARKs для обновления дерева состояния Ethereum.
Преимущества zk-rollup заключаются в низких затратах, высокой скорости транзакций и защите конфиденциальности. Недостатки заключаются в большом объеме вычислений для генерации доказательства, а также в том, что SNARK требует доверительной настройки.
В настоящее время основными проектами zk-rollup являются:
StarkNet: использует zk-STARKs, не поддерживает EVM
zkSync: использует PLONK, поддерживает EVM
Aztec: разработал протокол PLONK, приоритет конфиденциальности
Scroll: стремится реализовать совместимость EVM с zk-rollup
Совместимость с EVM является одной из основных проблем, с которыми сталкивается zk-rollup. В настоящее время существуют два основных решения: полная совместимость с опкодами Solidity или разработка новой виртуальной машины, дружелюбной к ZK, с совместимостью с Solidity. Улучшение совместимости с EVM существенно повлияет на развитие экосистемы ZK.
Основные принципы zk-SNARKs
zk-SNARKs обозначает "нуль- conocimientos сжатые неинтерактивные доказательства". Он имеет следующие характеристики:
zk-SNARKs: не раскрывая дополнительную информацию
Простота: низкие затраты на верификацию
Неинтерактивный: не требует многократного взаимодействия
Доказательство: вычислительно надежно
Знания: Доказатель должен знать действительную информацию
Принцип реализации zk-SNARK Groth16 включает в себя следующие шаги:
Преобразуйте проблему в схему
Преобразование схемы в форму R1CS
Преобразование R1CS в форму QAP
Генерация параметров доверенной настройки
Генерация и верификация zk-SNARKs
Технология zk-SNARKs быстро развивается и в будущем ожидается, что она сыграет важную роль в большем количестве областей.
На этой странице может содержаться сторонний контент, который предоставляется исключительно в информационных целях (не в качестве заявлений/гарантий) и не должен рассматриваться как поддержка взглядов компании Gate или как финансовый или профессиональный совет. Подробности смотрите в разделе «Отказ от ответственности» .
Эволюция технологий zk-SNARKs: от теоретических прорывов до приложений для масштабирования
zk-SNARKs: эволюция от теории к практике
Развитие zk-SNARKs
Система нулевых знаний берет свое начало из статьи «О сложности знаний интерактивных доказательных систем», опубликованной в 1985 году Голдвассером, Микали и Раккоффом. В этой статье рассматривается объем знаний, который необходимо обменять в интерактивной системе для доказательства истинности утверждения через много раундов взаимодействия. Если доказательство может быть завершено без раскрытия какой-либо дополнительной информации, это называется нулевым знанием.
Ранние системы zk-SNARKs имели низкую эффективность и практическую ценность, оставаясь в основном на теоретическом уровне. Лишь в последние 10 лет, с широким применением криптографии в области криптовалют, zk-SNARKs постепенно стали важным направлением исследований. Ключевой целью является разработка универсальных, неинтерактивных протоколов zk-SNARKs с ограниченным размером доказательства.
Прорыв в области нулевых знаний был достигнут в 2010 году благодаря статье Грота, которая заложила теоретическую основу zk-SNARKs. В 2015 году Zcash применил нулевые знания для защиты конфиденциальности транзакций, что открыло широкое применение нулевых знаний в реальных сценариях.
С тех пор некоторые важные академические достижения включают:
Другие новые разработки, такие как PLONK, Halo2 и т.д., также улучшили zk-SNARK в разных аспектах.
Основные приложения zk-SNARKs
Наиболее распространенные два применения zk-SNARKs в настоящее время — это защита конфиденциальности и масштабирование.
Ранее такие приложения для обеспечения конфиденциальности, как Zcash и Monero, пользовались большим вниманием, но потребность в конфиденциальности не оказалась столь ярко выраженной, и такие проекты постепенно отошли на второй план. В то же время потребность в масштабировании становится всё более актуальной. Особенно после того, как Ethereum 2.0 перешёл на путь, ориентированный на rollup, решения по масштабированию на основе zk-SNARKs вернулись в фокус внимания отрасли.
Приватные сделки
Представительные проекты по приватным сделкам включают:
Процесс конфиденциальной транзакции Zcash включает в себя настройку системы, генерацию ключей, чеканку, создание доказательства транзакции, верификацию и получение и т.д. Однако у Zcash есть и некоторые ограничения, такие как основание на модели UTXO, что затрудняет интеграцию с другими приложениями, а фактическая частота использования конфиденциальных транзакций не высока.
Tornado Cash использует единый большой пул смешанных монет, что обеспечивает лучшую универсальность. Он основан на реализации zk-SNARKs на основе Groth16, что гарантирует, что только депонированные монеты могут быть выведены, и каждая монета может быть выведена только один раз.
расширение
Применение zk-SNARKs в области масштабирования в основном заключается в zk-rollup. Основные роли в zk-rollup выполняют Sequencer и Aggregator. Sequencer отвечает за упаковку транзакций, а Aggregator объединяет большое количество транзакций и генерирует zk-SNARKs для обновления дерева состояния Ethereum.
Преимущества zk-rollup заключаются в низких затратах, высокой скорости транзакций и защите конфиденциальности. Недостатки заключаются в большом объеме вычислений для генерации доказательства, а также в том, что SNARK требует доверительной настройки.
В настоящее время основными проектами zk-rollup являются:
Совместимость с EVM является одной из основных проблем, с которыми сталкивается zk-rollup. В настоящее время существуют два основных решения: полная совместимость с опкодами Solidity или разработка новой виртуальной машины, дружелюбной к ZK, с совместимостью с Solidity. Улучшение совместимости с EVM существенно повлияет на развитие экосистемы ZK.
Основные принципы zk-SNARKs
zk-SNARKs обозначает "нуль- conocimientos сжатые неинтерактивные доказательства". Он имеет следующие характеристики:
Принцип реализации zk-SNARK Groth16 включает в себя следующие шаги:
Технология zk-SNARKs быстро развивается и в будущем ожидается, что она сыграет важную роль в большем количестве областей.