Текущие темпы роста проектов с доказательством нулевого знания (ZKP) в индустрии блокчейна поражают воображение, особенно рост числа приложений ZKP на двух уровнях - расширения и защиты конфиденциальности, что привело к появлению множества проектов с доказательством нулевого знания. Из-за чрезвычайно математической природы ZKP, энтузиастам шифрования значительно сложнее понять ZK досконально. Поэтому мы также надеемся разобраться с некоторыми изменениями в теории и применении ZKP с самого начала, а также изучить влияние и значение для криптоиндустрии вместе с читателями - учиться вместе в нескольких отчетах, которые также служат кратким изложением мыслей исследовательской команды HashKey Capital. Эта статья - первая в серии, в ней рассказывается об истории развития, применении и некоторых основных принципах ZKP.
Современная система доказательств с нулевым знанием возникла из работы, совместно опубликованной Голдвассером, Микали и Рэкоффом: The Knowledge Complexity of Interactive Proof Systems (GMR85), которая была предложена в 1985 году и опубликована в 1989. В этой статье главным образом объясняется, каким количеством знаний необходимо обменяться после K раундов взаимодействий в интерактивной системе, чтобы доказать, что утверждение верно. Если обмен знаниями можно сделать нулевым, это называется доказательством с нулевыми знаниями. Предполагается, что у проверяющего есть неограниченные ресурсы, а у верификатора - только ограниченные. Проблема с интерактивными системами заключается в том, что доказательство не является полностью математически доказуемым, а является верным в вероятностном смысле, хотя вероятность этого очень мала (1/2^n).
Поэтому интерактивная система не совершенна и имеет лишь приблизительную полноту. Неинтерактивная система (NP), рожденная на этой основе, обладает полнотой и становится идеальным выбором для системы доказательств с нулевым знанием.
Ранние системы доказательств с нулевым знанием не отличались эффективностью и удобством использования, поэтому они всегда оставались на теоретическом уровне. Только в последние 10 лет они начали процветать. По мере того, как криптография становилась все более заметной, доказательства с нулевым знанием вышли на первый план и стали важнейшим направлением. В частности, разработка общего, неинтерактивного протокола доказательства с нулевым знанием и ограниченным размером доказательства - одно из наиболее важных направлений исследований.
По сути, доказательство с нулевым знанием - это компромисс между скоростью доказательства, скоростью проверки и размером доказательства. Идеальный протокол - это быстрое доказательство, быстрая проверка и небольшой размер доказательства.
Самым важным прорывом в доказательстве с нулевым знанием является статья Грофа 2010 года "Short Pairing-based Non-interactive Zero-Knowledge Arguments", которая также является теоретическим родоначальником самой важной группы zk-SNARKs в ZKP.
Самым важным событием в применении доказательств с нулевым знанием является система доказательств с нулевым знанием, использованная Z-cash в 2015 году, которая защитила конфиденциальность транзакций и сумм. Позже она превратилась в комбинацию zk-SNARK и смарт-контрактов, и zk-SNARK вошла в более широкие сценарии применения.
К числу важных академических достижений этого периода относятся:
Другие разработки, включая PLONK, Halo2 и т.д., также являются чрезвычайно важным прогрессом и также внесли некоторые улучшения в zk-SNARK.
Два наиболее распространенных применения доказательств с нулевым знанием - это защита конфиденциальности и расширение возможностей. В самом начале, с запуском транзакций конфиденциальности и нескольких известных проектов, таких как Zcash и Monero, транзакции конфиденциальности однажды стали очень важной категорией. Однако из-за того, что необходимость в операциях с конфиденциальной информацией оказалась не столь заметной, как рассчитывала индустрия, этот тип представительских проектов начал замедляться. Медленно переходите в лагеря второго и третьего эшелонов (не уходите с исторической сцены). На уровне приложений потребность в расширении возросла настолько, что в 2020 году Ethereum 2.0 (который был переименован в слой консенсуса) превратится в маршрут, ориентированный на роллы. Серия ZK официально вернулась к вниманию индустрии и стала центром внимания.
Конфиденциальные транзакции: Существует множество проектов, в которых реализованы приватные транзакции, включая Zcash, использующий SNARK, Tornado, Monero, использующий bulletproof, и Dash. Dash использует не ZKP в строгом смысле этого слова, а простую и грубую систему смешивания валют, которая может скрыть только адрес, но не сумму. Я не буду упоминать об этом здесь.
Этапы транзакции zk-SNARKs, применяемые Zcash, выглядят следующим образом:
Источник: Разъяснение роли zk-SNARK в Zcash
Zcash все еще имеет ограничения в использовании нулевого знания, т.е. он основан на UTXO, поэтому часть информации о транзакциях лишь экранируется, но не скрывается по-настоящему. Поскольку это отдельная сеть, основанная на дизайне Биткойна, ее трудно расширить (объединить с другими приложениями). Фактический уровень использования экранирования (то есть частных сделок) составляет менее 10%, что говорит о том, что частные сделки не были успешно расширены. (с 2202)
Единый большой пул, используемый в Tornado, более универсален и основан на такой "проверенной и испытанной" сети, как Ethereum. Torndao - это, по сути, пул для смешивания валют, использующий zk-SNARK, а настройки доверия основаны на документе Groth 16. Среди возможностей, доступных с Tornado Cash, - следующие:
Виталик отметил, что по сравнению с расширением, конфиденциальность относительно легко реализовать. Если удастся установить некоторые протоколы расширения, конфиденциальность в принципе не будет проблемой.
Расширение: Расширение ZK может происходить как в сети первого уровня, например, Mina, так и в сети второго уровня, то есть zk-roll up. Идея свертывания ZK, возможно, возникла из сообщения Виталика в 2018 году "Масштабирование цепочки до потенциально ~500 ткс/сек за счет массовой проверки ткс".
В ZK-rollup есть два типа ролей, одна из которых - Sequencer, а другая - Aggregator. Секвенсор отвечает за упаковку транзакций, а Агрегатор - за объединение большого количества транзакций, создание рулона и формирование доказательства SNARK (это также может быть доказательство с нулевым знанием, основанное на других алгоритмах). Это доказательство будет сравниваться с предыдущим состоянием Layer1, а затем обновлять дерево Меркла Ethereum, вычисляя новое дерево состояний.
Источник: Polygon
Преимущества и недостатки сворачивания ZK:
Источник: Исследование Ethereum
Основываясь на доступности данных и методах доказательства, Starkware предлагает классическую схему классификации L2 (уровень доступности данных Volition можно выбрать on-chain или off-chain):
Источник: Starkware
Наиболее конкурентоспособные проекты ZK rollup, представленные в настоящее время на рынке, включают: Starkware's StarkNet, Matterlabs's zkSync и Aztec's Aztec connect, Polygon's Hermez и Miden, Loopring, Scroll и т.д.
В основном, технический путь заключается в выборе SNARK (и его улучшенных версий) и STARK, а также в поддержке EVM (включая совместимость или эквивалентность).
Кратко обсудите проблемы совместимости EVM:
Совместимость между системой ZK и EVM всегда была головной болью, и большинство проектов выбирают между ними. Те, кто делает упор на ZK, могут создать виртуальную машину в своей собственной системе, иметь свой собственный язык ZK и компилятор, но это усложнит процесс обучения для разработчиков, а поскольку это не открытый исходный код, он превратится в "черный ящик". Вообще говоря, в настоящее время у индустрии есть два варианта. Одна из них - полная совместимость с опкодами Solidity, а другая - разработка новой виртуальной машины, дружественной к ZK и совместимой с Solidity. Вначале индустрия не ожидала такой быстрой интеграции, но быстрая итерация технологии в последние год-два вывела совместимость EVM на новый уровень, и разработчики могут достичь определенной степени бесшовной миграции (то есть перехода от главной цепочки Ethereum к ZK rollup) - это захватывающее развитие, которое повлияет на экологию развития ZK и конкурентную среду. Мы подробно обсудим этот вопрос в последующих отчетах.
Голдвассер, Микали и Ракофф предложили, чтобы доказательства с нулевым знанием обладали тремя свойствами:
Поэтому, чтобы понять ZKP, мы начнем с zk-SNARK, потому что многие современные блокчейн-приложения начинаются с SNARK. Сначала давайте посмотрим на zk-SNARK.
zk-SNARK означает: Zero-knowledge proof (zh-SNARK) - это нулевое доказательство, состоящее из последовательных неинтерактивных аргументов знания.
Принцип доказательства zk-SNARK Грофа16 заключается в следующем:
Источник: https://learnblockchain.cn/article/3220
Шаги таковы:
В следующей статье мы начнем изучать принципы и применение zk-SNARK, рассмотрим развитие ZK-SNARK на примере нескольких случаев и исследуем его связь с zk-STARK.
Текущие темпы роста проектов с доказательством нулевого знания (ZKP) в индустрии блокчейна поражают воображение, особенно рост числа приложений ZKP на двух уровнях - расширения и защиты конфиденциальности, что привело к появлению множества проектов с доказательством нулевого знания. Из-за чрезвычайно математической природы ZKP, энтузиастам шифрования значительно сложнее понять ZK досконально. Поэтому мы также надеемся разобраться с некоторыми изменениями в теории и применении ZKP с самого начала, а также изучить влияние и значение для криптоиндустрии вместе с читателями - учиться вместе в нескольких отчетах, которые также служат кратким изложением мыслей исследовательской команды HashKey Capital. Эта статья - первая в серии, в ней рассказывается об истории развития, применении и некоторых основных принципах ZKP.
Современная система доказательств с нулевым знанием возникла из работы, совместно опубликованной Голдвассером, Микали и Рэкоффом: The Knowledge Complexity of Interactive Proof Systems (GMR85), которая была предложена в 1985 году и опубликована в 1989. В этой статье главным образом объясняется, каким количеством знаний необходимо обменяться после K раундов взаимодействий в интерактивной системе, чтобы доказать, что утверждение верно. Если обмен знаниями можно сделать нулевым, это называется доказательством с нулевыми знаниями. Предполагается, что у проверяющего есть неограниченные ресурсы, а у верификатора - только ограниченные. Проблема с интерактивными системами заключается в том, что доказательство не является полностью математически доказуемым, а является верным в вероятностном смысле, хотя вероятность этого очень мала (1/2^n).
Поэтому интерактивная система не совершенна и имеет лишь приблизительную полноту. Неинтерактивная система (NP), рожденная на этой основе, обладает полнотой и становится идеальным выбором для системы доказательств с нулевым знанием.
Ранние системы доказательств с нулевым знанием не отличались эффективностью и удобством использования, поэтому они всегда оставались на теоретическом уровне. Только в последние 10 лет они начали процветать. По мере того, как криптография становилась все более заметной, доказательства с нулевым знанием вышли на первый план и стали важнейшим направлением. В частности, разработка общего, неинтерактивного протокола доказательства с нулевым знанием и ограниченным размером доказательства - одно из наиболее важных направлений исследований.
По сути, доказательство с нулевым знанием - это компромисс между скоростью доказательства, скоростью проверки и размером доказательства. Идеальный протокол - это быстрое доказательство, быстрая проверка и небольшой размер доказательства.
Самым важным прорывом в доказательстве с нулевым знанием является статья Грофа 2010 года "Short Pairing-based Non-interactive Zero-Knowledge Arguments", которая также является теоретическим родоначальником самой важной группы zk-SNARKs в ZKP.
Самым важным событием в применении доказательств с нулевым знанием является система доказательств с нулевым знанием, использованная Z-cash в 2015 году, которая защитила конфиденциальность транзакций и сумм. Позже она превратилась в комбинацию zk-SNARK и смарт-контрактов, и zk-SNARK вошла в более широкие сценарии применения.
К числу важных академических достижений этого периода относятся:
Другие разработки, включая PLONK, Halo2 и т.д., также являются чрезвычайно важным прогрессом и также внесли некоторые улучшения в zk-SNARK.
Два наиболее распространенных применения доказательств с нулевым знанием - это защита конфиденциальности и расширение возможностей. В самом начале, с запуском транзакций конфиденциальности и нескольких известных проектов, таких как Zcash и Monero, транзакции конфиденциальности однажды стали очень важной категорией. Однако из-за того, что необходимость в операциях с конфиденциальной информацией оказалась не столь заметной, как рассчитывала индустрия, этот тип представительских проектов начал замедляться. Медленно переходите в лагеря второго и третьего эшелонов (не уходите с исторической сцены). На уровне приложений потребность в расширении возросла настолько, что в 2020 году Ethereum 2.0 (который был переименован в слой консенсуса) превратится в маршрут, ориентированный на роллы. Серия ZK официально вернулась к вниманию индустрии и стала центром внимания.
Конфиденциальные транзакции: Существует множество проектов, в которых реализованы приватные транзакции, включая Zcash, использующий SNARK, Tornado, Monero, использующий bulletproof, и Dash. Dash использует не ZKP в строгом смысле этого слова, а простую и грубую систему смешивания валют, которая может скрыть только адрес, но не сумму. Я не буду упоминать об этом здесь.
Этапы транзакции zk-SNARKs, применяемые Zcash, выглядят следующим образом:
Источник: Разъяснение роли zk-SNARK в Zcash
Zcash все еще имеет ограничения в использовании нулевого знания, т.е. он основан на UTXO, поэтому часть информации о транзакциях лишь экранируется, но не скрывается по-настоящему. Поскольку это отдельная сеть, основанная на дизайне Биткойна, ее трудно расширить (объединить с другими приложениями). Фактический уровень использования экранирования (то есть частных сделок) составляет менее 10%, что говорит о том, что частные сделки не были успешно расширены. (с 2202)
Единый большой пул, используемый в Tornado, более универсален и основан на такой "проверенной и испытанной" сети, как Ethereum. Torndao - это, по сути, пул для смешивания валют, использующий zk-SNARK, а настройки доверия основаны на документе Groth 16. Среди возможностей, доступных с Tornado Cash, - следующие:
Виталик отметил, что по сравнению с расширением, конфиденциальность относительно легко реализовать. Если удастся установить некоторые протоколы расширения, конфиденциальность в принципе не будет проблемой.
Расширение: Расширение ZK может происходить как в сети первого уровня, например, Mina, так и в сети второго уровня, то есть zk-roll up. Идея свертывания ZK, возможно, возникла из сообщения Виталика в 2018 году "Масштабирование цепочки до потенциально ~500 ткс/сек за счет массовой проверки ткс".
В ZK-rollup есть два типа ролей, одна из которых - Sequencer, а другая - Aggregator. Секвенсор отвечает за упаковку транзакций, а Агрегатор - за объединение большого количества транзакций, создание рулона и формирование доказательства SNARK (это также может быть доказательство с нулевым знанием, основанное на других алгоритмах). Это доказательство будет сравниваться с предыдущим состоянием Layer1, а затем обновлять дерево Меркла Ethereum, вычисляя новое дерево состояний.
Источник: Polygon
Преимущества и недостатки сворачивания ZK:
Источник: Исследование Ethereum
Основываясь на доступности данных и методах доказательства, Starkware предлагает классическую схему классификации L2 (уровень доступности данных Volition можно выбрать on-chain или off-chain):
Источник: Starkware
Наиболее конкурентоспособные проекты ZK rollup, представленные в настоящее время на рынке, включают: Starkware's StarkNet, Matterlabs's zkSync и Aztec's Aztec connect, Polygon's Hermez и Miden, Loopring, Scroll и т.д.
В основном, технический путь заключается в выборе SNARK (и его улучшенных версий) и STARK, а также в поддержке EVM (включая совместимость или эквивалентность).
Кратко обсудите проблемы совместимости EVM:
Совместимость между системой ZK и EVM всегда была головной болью, и большинство проектов выбирают между ними. Те, кто делает упор на ZK, могут создать виртуальную машину в своей собственной системе, иметь свой собственный язык ZK и компилятор, но это усложнит процесс обучения для разработчиков, а поскольку это не открытый исходный код, он превратится в "черный ящик". Вообще говоря, в настоящее время у индустрии есть два варианта. Одна из них - полная совместимость с опкодами Solidity, а другая - разработка новой виртуальной машины, дружественной к ZK и совместимой с Solidity. Вначале индустрия не ожидала такой быстрой интеграции, но быстрая итерация технологии в последние год-два вывела совместимость EVM на новый уровень, и разработчики могут достичь определенной степени бесшовной миграции (то есть перехода от главной цепочки Ethereum к ZK rollup) - это захватывающее развитие, которое повлияет на экологию развития ZK и конкурентную среду. Мы подробно обсудим этот вопрос в последующих отчетах.
Голдвассер, Микали и Ракофф предложили, чтобы доказательства с нулевым знанием обладали тремя свойствами:
Поэтому, чтобы понять ZKP, мы начнем с zk-SNARK, потому что многие современные блокчейн-приложения начинаются с SNARK. Сначала давайте посмотрим на zk-SNARK.
zk-SNARK означает: Zero-knowledge proof (zh-SNARK) - это нулевое доказательство, состоящее из последовательных неинтерактивных аргументов знания.
Принцип доказательства zk-SNARK Грофа16 заключается в следующем:
Источник: https://learnblockchain.cn/article/3220
Шаги таковы:
В следующей статье мы начнем изучать принципы и применение zk-SNARK, рассмотрим развитие ZK-SNARK на примере нескольких случаев и исследуем его связь с zk-STARK.