Применение и развитие технологии zk-SNARKs в сфере Блокчейн
Резюме
Данная статья представляет собой систематический обзор исторической литературы и последних исследований технологии zk-SNARKs за последние сорок лет. Сначала вводится основное понятие и исторический контекст ZKP, затем акцентируется внимание на технологии ZKP, основанной на схемах, включая проектирование, применение и методы оптимизации моделей, таких как zkSNARK, Ben-Sasson, Pinocchio, Bulletproofs и Ligero. В области вычислительных сред статья описывает ZKVM и ZKEVM, исследует, как они могут повысить производительность обработки транзакций, защитить конфиденциальность и улучшить эффективность верификации. Статья также знакомит с механизмом работы и методами оптимизации零知识 Rollup как решения для расширения второго уровня, а также с последними достижениями в области аппаратного ускорения, гибридных решений и специализированного ZK EVM.
В конце статьи рассматриваются новые концепции, такие как ZKCoprocessor, ZKML, ZKThreads, ZK Sharding и ZK StateChannels, и обсуждается их потенциал в области масштабируемости, интероперабельности и защиты конфиденциальности Блокчейн. Анализируя эти новейшие технологии и тенденции, статья предоставляет комплексный взгляд на понимание и применение технологий ZKP, демонстрируя их огромный потенциал в повышении эффективности и безопасности Блокчейн-систем, что служит важной основой для будущих инвестиционных решений.
( Содержание
Предисловие
Од. Основы zk-SNARKs
Обзор
Пример zk-SNARKs
Два, неинтерактивные zk-SNARKs
Фон
Появление NIZK
Преобразование Фиата-Шамира
Йенс Грот и его исследование
Другие исследования
Три. Нулевое знание на основе схемы
Фон
Основные концепции и характеристики электрических схем
Проектирование и применение цепей в zk-SNARKs
Потенциальные недостатки и вызовы
Четыре, модель zk-SNARKs
Фон
Распространенные алгоритмические модели
Схема, основанная на линейном PCP и проблеме дискретного логарифма
Решение, основанное на доказательствах обычных людей
Основываясь на вероятностном доказательстве ) PCP ### zk-SNARKs
Классификация на этапе настройки на основе CPC
Пятый, обзор и развитие zk-SNARKs виртуальной машины
Фон
Существующая классификация ZKVM
Парадигмы фронтенда и бэкенда
Преимущества и недостатки парадигмы ZKVM
Шесть. Обзор и развитие zk-SNARKs виртуальной машины Ethereum
Фон
Принцип работы ZKEVM
Процесс реализации ZKEVM
Особенности ZKEVM
Семь. Обзор и развитие решений второго уровня с нулевым знанием
Фон
Механизм работы ZK Rollup
Недостатки и оптимизация ZK Rollup
Восемь, направления будущего развития zk-SNARKs
Ускорение развития вычислительной среды
Появление и развитие zk-ML
Развитие технологий расширения ZKP
Развитие совместимости zk-SNARKs
Девять, вывод
( Введение
В последние годы развитие приложений Блокчейн )DApps### идет стремительными темпами, каждый день появляются новые приложения. Блокчейн-платформы ежедневно обрабатывают миллионы действий пользователей и десятки миллиардов транзакций. Огромные объемы данных, генерируемые этими транзакциями, часто содержат чувствительную личную информацию, такую как идентичность пользователя, сумма транзакции, адреса аккаунтов и балансы аккаунтов. Учитывая открытость и прозрачность Блокчейна, эти хранимые данные открыты для всех, что вызывает множество проблем с безопасностью и конфиденциальностью.
В настоящее время существует несколько криптографических технологий, которые могут справиться с этими вызовами, включая гомоморфное шифрование, кольцевые подписи, безопасные многопартнерские вычисления и zk-SNARKs. Гомоморфное шифрование позволяет выполнять операции без расшифровки зашифрованных данных, что помогает защищать безопасность баланса аккаунта и суммы транзакций, но не может защитить безопасность адреса аккаунта. Кольцевые подписи предлагают особую форму цифровой подписи, которая может скрывать личность подписанта, тем самым защищая безопасность адреса аккаунта, но не может обеспечить защиту баланса аккаунта и суммы транзакций. Безопасные многопартнерские вычисления позволяют распределять вычислительные задачи между несколькими участниками, не давая ни одному участнику знать данные других участников, эффективно защищая безопасность баланса аккаунта и суммы транзакций, но также не может защитить безопасность адреса аккаунта. Кроме того, гомоморфное шифрование, кольцевые подписи и безопасные многопартнерские вычисления не могут использоваться для проверки, обладает ли доказатель в среде Блокчейн достаточной суммой транзакции без раскрытия суммы транзакции, адреса аккаунта и баланса аккаунта.
zk-SNARKs является более комплексным решением, этот протокол верификации позволяет проверять правильность определённых утверждений без раскрытия каких-либо промежуточных данных. Протокол не требует сложной инфраструктуры открытых ключей, а его повторное использование не даёт злонамеренным пользователям возможности получить дополнительную полезную информацию. Используя ZKP, проверяющий может удостовериться в том, что заявитель имеет достаточное количество средств для транзакции, не раскрывая никаких личных данных о транзакции. Процесс верификации включает в себя генерацию доказательства, которое содержит заявленную заявителем сумму транзакции, после чего это доказательство передаётся проверяющему, который выполняет предопределённые вычисления и выдает окончательный результат вычислений, чтобы прийти к выводу о принятии заявления заявителя. Если заявление заявителя принимается, это означает, что у него достаточно средств для транзакции. Указанный процесс верификации может быть записан в Блокчейн, без каких-либо подделок.
Эта особенность ZKP делает его ключевым элементом в Блокчейн-транзакциях и приложениях для криптовалют, особенно в области защиты конфиденциальности и масштабирования сети, что делает его не только объектом академического исследования, но и широко признаваемым как одно из самых важных технологических нововведений с момента успешной реализации распределенных реестровых технологий — особенно биткойна. Также это ключевая область для отраслевых приложений и венчурного капитала.
Таким образом, множество сетевых проектов на основе ZKP, таких как ZkSync, StarkNet, Mina, Filecoin и Aleo, появились один за другим. С развитием этих проектов алгоритмические инновации в области ZKP возникают одна за другой, и, по сообщениям, почти каждую неделю появляются новые алгоритмы. Кроме того, разработка аппаратного обеспечения, связанного с технологией ZKP, также стремительно продвигается, включая чипы, оптимизированные специально для ZKP. Например, такие проекты, как Ingonyama, Irreducible и Cysic, уже завершили масштабные сборы средств; эти достижения не только демонстрируют быстрый прогресс технологии ZKP, но и отражают переход от универсального оборудования к специализированному оборудованию, такому как GPU, FPGA и ASIC.
Эти достижения показывают, что технология zk-SNARKs является не только важным прорывом в области криптографии, но и ключевым фактором для реализации более широкого применения Блокчейн-технологий — особенно в повышении защиты конфиденциальности и производительности.
Поэтому мы решили систематически собрать знания о zk-SNARKs ( ZKP ), чтобы лучше помочь нам в принятии инвестиционных решений в будущем. Для этого мы провели обзор ключевых научных статей, связанных с ZKP (, отсортировав их по релевантности и количеству цитирований ); одновременно мы подробно проанализировали материалы и белые книги ведущих проектов в этой области (, отсортировав их по объему финансирования ). Эти комплексные сборы и анализ материалов предоставили прочную основу для написания данной статьи.
( Один. Основы zk-SNARKs
)# 1.Обзор
В 1985 году ученые Голдвассер, Микали и Раффок в своей статье «Сложность знаний интерактивных доказательств» впервые предложили концепцию нулевых знаний ###Zero-Knowledge Proof, ZKP### и интерактивных знаний (Interactive Zero-Knowledge, IZK). Эта статья стала основополагающей в области нулевых знаний, определив множество концепций, которые оказали влияние на последующие научные исследования. Например, определение знания звучит как "выход нереализуемых вычислений" (unfeasible computation), то есть знания должны быть выходом, и это нереализуемые вычисления, что означает, что они не могут быть простыми функциями, а должны быть сложными функциями. Нереализуемые вычисления обычно понимаются как NP-проблемы, то есть проблемы, для которых можно проверить правильность решения за полиномиальное время, где полиномиальное время подразумевает, что время выполнения алгоритма может быть представлено полиномиальной функцией от размера входных данных. Это важный критерий для оценки эффективности и целесообразности алгоритма в компьютерных науках. Поскольку процесс решения NP-проблем сложен, их считают нереализуемыми вычислениями; но процесс их проверки относительно прост, поэтому они очень подходят для верификации нулевых знаний.
Классическим примером задачи NP является задача коммивояжера, в которой необходимо найти кратчайший путь, посещая ряд городов и возвращаясь в начальную точку. Хотя найти кратчайший путь может быть сложно, проверка, является ли данный путь кратчайшим, относительно проста. Поскольку проверка общей длины конкретного пути может быть выполнена за полиномиальное время.
Голдвассер и др. в своей статье ввели концепцию "сложности знаний" ( knowledge complexity ), чтобы количественно оценить объем знаний, которые доказатель передает верификатору в интерактивных системах доказательства. Они также предложили интерактивные системы доказательства ( Interactive Proof Systems, IPS ), в которых доказатель ( Prover ) и верификатор ( Verifier ) взаимодействуют в нескольких раундах, чтобы доказать истинность определенного утверждения.
Таким образом, определение zk-SNARKs, приведенное Голдвасером и др., представляет собой специальное интерактивное доказательство, в котором проверяющий не получает никакой дополнительной информации, кроме истинности утверждения; и было предложено три основных свойства, включая:
Полнота ( completeness ): если доказательство истинно, честный доказатель может убедить честного проверяющего в этом факте;
Надежность (soundness ): Если доказатель не знает содержание утверждения, он может обмануть проверяющего только с незначительной вероятностью;
3.零知识性(zero-knowledge):После завершения процесса доказательства, проверяющий получает только информацию "доказатель имеет это знание", и не может получить никакого дополнительного содержания.
(# 2.zk-SNARKs примеры
Для лучшего понимания zk-SNARKs и его свойств, ниже приведен пример проверки того, обладает ли доказатель подтверждающей стороной некоторой конфиденциальной информацией. Этот пример разделен на три этапа: настройка, вызов и ответ.
Первый шаг: настройка )Setup###
На этом этапе задача доказателя заключается в создании доказательства того, что он знает некое секретное число s, но не показывает s напрямую. Пусть секретное число s=5;
Выберите два больших простых числа p и q, вычислите их произведение n. Пусть простые числа p=11, q=13, полученное n=143;
Вычисляем v=s^2 mod n, здесь v отправляется к проверяющему как часть доказательства, но этого недостаточно, чтобы проверяющий или любой наблюдатель смогли вывести s. v=5^2 mod 143=25;
Случайным образом выберите целое число r, вычислите x=r^2 mod n и отправьте его проверяющему. Это значение x используется в дальнейшем процессе проверки, но также не раскрывает s. Пусть случайное целое число r=7, вычисленное x=49.
Второй шаг: вызов (Challenge)
Валидатор случайным образом выбирает бит a(, который может быть 0 или 1), а затем отправляет его доказателю. Этот "вызов" определяет, какие шаги должен предпринять доказатель.
Третий шаг: ответ (Response)
Согласно значению a, выданному валидатором, доказатель отвечает:
Если a=0, то доказатель отправляет g=r(, где r - это случайно выбранное число ).
Если a=1, то доказатель вычисляет g=rs mod n и отправляет. Пусть отправленная проверяющим случайная битовая a=1, в зависимости от значения a, доказатель вычисляет g=75 mod 143=35;
Наконец, валидатор проверяет, равно ли x g^2/v^a mod n на основе полученного g. Если равенство выполняется, валидатор принимает это доказательство. Когда a=0, валидатор вычисляет g^2 mod n, правая сторона проверяет x=49; когда a=1, валидатор вычисляет g^2/v mod n=35^2/25 mod 143=49, правая сторона проверяет x=49.
Здесь мы видим, что значение x, вычисленное валидатором, показывает, что доказатель успешно прошел процесс верификации, не раскрывая при этом своего секретного числа s. Здесь, поскольку a может принимать только 0 или 1, существует лишь две возможности: вероятность того, что доказатель пройдет верификацию на удачу, составляет (1/2)(, когда a равно 0, ). Но затем валидатор задает доказателю n вопросов, доказатель постоянно меняет соответствующие числа и отправляет их валидатору, и всегда успешно проходит процесс верификации, таким образом вероятность того, что доказатель пройдет верификацию на удачу, составляет (1/2)^n( и бесконечно стремится к 0), что подтверждает, что доказатель действительно знает некое секретное число s. Этот пример подтверждает целостность, надежность и нулевую знание системы нулевых знаний.
( Два, неинтерактивные zk-SNARKs
)# 1.Фон
zk-SNARKs###ZKP###в традиционном понимании обычно представляет собой интерактивную и онлайн-протокольную форму; например, протокол Sigma обычно требует три-пять раундов взаимодействия для завершения аутентификации. Однако в таких сценариях, как мгновенные транзакции или голосование, часто нет возможности для многораундного взаимодействия, особенно в приложениях технологии Блокчейн, офлайн-проверка функций становится особенно важной.
(# 2.Предложение NIZK
В 1988 году Блум, Фельдман и Микали впервые предложили концепцию неинтерактивных零知识证明ов ) NIZK ###, доказав, что это возможно без необходимости многораундного взаимодействия.
На этой странице может содержаться сторонний контент, который предоставляется исключительно в информационных целях (не в качестве заявлений/гарантий) и не должен рассматриваться как поддержка взглядов компании Gate или как финансовый или профессиональный совет. Подробности смотрите в разделе «Отказ от ответственности» .
8 Лайков
Награда
8
2
Поделиться
комментарий
0/400
GweiTooHigh
· 08-04 10:36
То есть код поет, а Кошелек копирует.
Посмотреть ОригиналОтветить0
GasSavingMaster
· 08-04 10:32
zk так популярен, потому что весь день не может обогнать эту схему.
Применение технологии zk-SNARKs в Блокчейн и тенденции будущего развития
Применение и развитие технологии zk-SNARKs в сфере Блокчейн
Резюме
Данная статья представляет собой систематический обзор исторической литературы и последних исследований технологии zk-SNARKs за последние сорок лет. Сначала вводится основное понятие и исторический контекст ZKP, затем акцентируется внимание на технологии ZKP, основанной на схемах, включая проектирование, применение и методы оптимизации моделей, таких как zkSNARK, Ben-Sasson, Pinocchio, Bulletproofs и Ligero. В области вычислительных сред статья описывает ZKVM и ZKEVM, исследует, как они могут повысить производительность обработки транзакций, защитить конфиденциальность и улучшить эффективность верификации. Статья также знакомит с механизмом работы и методами оптимизации零知识 Rollup как решения для расширения второго уровня, а также с последними достижениями в области аппаратного ускорения, гибридных решений и специализированного ZK EVM.
В конце статьи рассматриваются новые концепции, такие как ZKCoprocessor, ZKML, ZKThreads, ZK Sharding и ZK StateChannels, и обсуждается их потенциал в области масштабируемости, интероперабельности и защиты конфиденциальности Блокчейн. Анализируя эти новейшие технологии и тенденции, статья предоставляет комплексный взгляд на понимание и применение технологий ZKP, демонстрируя их огромный потенциал в повышении эффективности и безопасности Блокчейн-систем, что служит важной основой для будущих инвестиционных решений.
( Содержание
Предисловие
Од. Основы zk-SNARKs
Два, неинтерактивные zk-SNARKs
Три. Нулевое знание на основе схемы
Четыре, модель zk-SNARKs
Пятый, обзор и развитие zk-SNARKs виртуальной машины
Шесть. Обзор и развитие zk-SNARKs виртуальной машины Ethereum
Семь. Обзор и развитие решений второго уровня с нулевым знанием
Восемь, направления будущего развития zk-SNARKs
Девять, вывод
( Введение
В последние годы развитие приложений Блокчейн )DApps### идет стремительными темпами, каждый день появляются новые приложения. Блокчейн-платформы ежедневно обрабатывают миллионы действий пользователей и десятки миллиардов транзакций. Огромные объемы данных, генерируемые этими транзакциями, часто содержат чувствительную личную информацию, такую как идентичность пользователя, сумма транзакции, адреса аккаунтов и балансы аккаунтов. Учитывая открытость и прозрачность Блокчейна, эти хранимые данные открыты для всех, что вызывает множество проблем с безопасностью и конфиденциальностью.
В настоящее время существует несколько криптографических технологий, которые могут справиться с этими вызовами, включая гомоморфное шифрование, кольцевые подписи, безопасные многопартнерские вычисления и zk-SNARKs. Гомоморфное шифрование позволяет выполнять операции без расшифровки зашифрованных данных, что помогает защищать безопасность баланса аккаунта и суммы транзакций, но не может защитить безопасность адреса аккаунта. Кольцевые подписи предлагают особую форму цифровой подписи, которая может скрывать личность подписанта, тем самым защищая безопасность адреса аккаунта, но не может обеспечить защиту баланса аккаунта и суммы транзакций. Безопасные многопартнерские вычисления позволяют распределять вычислительные задачи между несколькими участниками, не давая ни одному участнику знать данные других участников, эффективно защищая безопасность баланса аккаунта и суммы транзакций, но также не может защитить безопасность адреса аккаунта. Кроме того, гомоморфное шифрование, кольцевые подписи и безопасные многопартнерские вычисления не могут использоваться для проверки, обладает ли доказатель в среде Блокчейн достаточной суммой транзакции без раскрытия суммы транзакции, адреса аккаунта и баланса аккаунта.
zk-SNARKs является более комплексным решением, этот протокол верификации позволяет проверять правильность определённых утверждений без раскрытия каких-либо промежуточных данных. Протокол не требует сложной инфраструктуры открытых ключей, а его повторное использование не даёт злонамеренным пользователям возможности получить дополнительную полезную информацию. Используя ZKP, проверяющий может удостовериться в том, что заявитель имеет достаточное количество средств для транзакции, не раскрывая никаких личных данных о транзакции. Процесс верификации включает в себя генерацию доказательства, которое содержит заявленную заявителем сумму транзакции, после чего это доказательство передаётся проверяющему, который выполняет предопределённые вычисления и выдает окончательный результат вычислений, чтобы прийти к выводу о принятии заявления заявителя. Если заявление заявителя принимается, это означает, что у него достаточно средств для транзакции. Указанный процесс верификации может быть записан в Блокчейн, без каких-либо подделок.
Эта особенность ZKP делает его ключевым элементом в Блокчейн-транзакциях и приложениях для криптовалют, особенно в области защиты конфиденциальности и масштабирования сети, что делает его не только объектом академического исследования, но и широко признаваемым как одно из самых важных технологических нововведений с момента успешной реализации распределенных реестровых технологий — особенно биткойна. Также это ключевая область для отраслевых приложений и венчурного капитала.
Таким образом, множество сетевых проектов на основе ZKP, таких как ZkSync, StarkNet, Mina, Filecoin и Aleo, появились один за другим. С развитием этих проектов алгоритмические инновации в области ZKP возникают одна за другой, и, по сообщениям, почти каждую неделю появляются новые алгоритмы. Кроме того, разработка аппаратного обеспечения, связанного с технологией ZKP, также стремительно продвигается, включая чипы, оптимизированные специально для ZKP. Например, такие проекты, как Ingonyama, Irreducible и Cysic, уже завершили масштабные сборы средств; эти достижения не только демонстрируют быстрый прогресс технологии ZKP, но и отражают переход от универсального оборудования к специализированному оборудованию, такому как GPU, FPGA и ASIC.
Эти достижения показывают, что технология zk-SNARKs является не только важным прорывом в области криптографии, но и ключевым фактором для реализации более широкого применения Блокчейн-технологий — особенно в повышении защиты конфиденциальности и производительности.
Поэтому мы решили систематически собрать знания о zk-SNARKs ( ZKP ), чтобы лучше помочь нам в принятии инвестиционных решений в будущем. Для этого мы провели обзор ключевых научных статей, связанных с ZKP (, отсортировав их по релевантности и количеству цитирований ); одновременно мы подробно проанализировали материалы и белые книги ведущих проектов в этой области (, отсортировав их по объему финансирования ). Эти комплексные сборы и анализ материалов предоставили прочную основу для написания данной статьи.
( Один. Основы zk-SNARKs
)# 1.Обзор
В 1985 году ученые Голдвассер, Микали и Раффок в своей статье «Сложность знаний интерактивных доказательств» впервые предложили концепцию нулевых знаний ###Zero-Knowledge Proof, ZKP### и интерактивных знаний (Interactive Zero-Knowledge, IZK). Эта статья стала основополагающей в области нулевых знаний, определив множество концепций, которые оказали влияние на последующие научные исследования. Например, определение знания звучит как "выход нереализуемых вычислений" (unfeasible computation), то есть знания должны быть выходом, и это нереализуемые вычисления, что означает, что они не могут быть простыми функциями, а должны быть сложными функциями. Нереализуемые вычисления обычно понимаются как NP-проблемы, то есть проблемы, для которых можно проверить правильность решения за полиномиальное время, где полиномиальное время подразумевает, что время выполнения алгоритма может быть представлено полиномиальной функцией от размера входных данных. Это важный критерий для оценки эффективности и целесообразности алгоритма в компьютерных науках. Поскольку процесс решения NP-проблем сложен, их считают нереализуемыми вычислениями; но процесс их проверки относительно прост, поэтому они очень подходят для верификации нулевых знаний.
Классическим примером задачи NP является задача коммивояжера, в которой необходимо найти кратчайший путь, посещая ряд городов и возвращаясь в начальную точку. Хотя найти кратчайший путь может быть сложно, проверка, является ли данный путь кратчайшим, относительно проста. Поскольку проверка общей длины конкретного пути может быть выполнена за полиномиальное время.
Голдвассер и др. в своей статье ввели концепцию "сложности знаний" ( knowledge complexity ), чтобы количественно оценить объем знаний, которые доказатель передает верификатору в интерактивных системах доказательства. Они также предложили интерактивные системы доказательства ( Interactive Proof Systems, IPS ), в которых доказатель ( Prover ) и верификатор ( Verifier ) взаимодействуют в нескольких раундах, чтобы доказать истинность определенного утверждения.
Таким образом, определение zk-SNARKs, приведенное Голдвасером и др., представляет собой специальное интерактивное доказательство, в котором проверяющий не получает никакой дополнительной информации, кроме истинности утверждения; и было предложено три основных свойства, включая:
Полнота ( completeness ): если доказательство истинно, честный доказатель может убедить честного проверяющего в этом факте;
Надежность (soundness ): Если доказатель не знает содержание утверждения, он может обмануть проверяющего только с незначительной вероятностью;
3.零知识性(zero-knowledge):После завершения процесса доказательства, проверяющий получает только информацию "доказатель имеет это знание", и не может получить никакого дополнительного содержания.
(# 2.zk-SNARKs примеры
Для лучшего понимания zk-SNARKs и его свойств, ниже приведен пример проверки того, обладает ли доказатель подтверждающей стороной некоторой конфиденциальной информацией. Этот пример разделен на три этапа: настройка, вызов и ответ.
Первый шаг: настройка )Setup###
На этом этапе задача доказателя заключается в создании доказательства того, что он знает некое секретное число s, но не показывает s напрямую. Пусть секретное число s=5;
Выберите два больших простых числа p и q, вычислите их произведение n. Пусть простые числа p=11, q=13, полученное n=143;
Вычисляем v=s^2 mod n, здесь v отправляется к проверяющему как часть доказательства, но этого недостаточно, чтобы проверяющий или любой наблюдатель смогли вывести s. v=5^2 mod 143=25;
Случайным образом выберите целое число r, вычислите x=r^2 mod n и отправьте его проверяющему. Это значение x используется в дальнейшем процессе проверки, но также не раскрывает s. Пусть случайное целое число r=7, вычисленное x=49.
Второй шаг: вызов (Challenge)
Валидатор случайным образом выбирает бит a(, который может быть 0 или 1), а затем отправляет его доказателю. Этот "вызов" определяет, какие шаги должен предпринять доказатель.
Третий шаг: ответ (Response)
Согласно значению a, выданному валидатором, доказатель отвечает:
Если a=0, то доказатель отправляет g=r(, где r - это случайно выбранное число ).
Если a=1, то доказатель вычисляет g=rs mod n и отправляет. Пусть отправленная проверяющим случайная битовая a=1, в зависимости от значения a, доказатель вычисляет g=75 mod 143=35;
Наконец, валидатор проверяет, равно ли x g^2/v^a mod n на основе полученного g. Если равенство выполняется, валидатор принимает это доказательство. Когда a=0, валидатор вычисляет g^2 mod n, правая сторона проверяет x=49; когда a=1, валидатор вычисляет g^2/v mod n=35^2/25 mod 143=49, правая сторона проверяет x=49.
Здесь мы видим, что значение x, вычисленное валидатором, показывает, что доказатель успешно прошел процесс верификации, не раскрывая при этом своего секретного числа s. Здесь, поскольку a может принимать только 0 или 1, существует лишь две возможности: вероятность того, что доказатель пройдет верификацию на удачу, составляет (1/2)(, когда a равно 0, ). Но затем валидатор задает доказателю n вопросов, доказатель постоянно меняет соответствующие числа и отправляет их валидатору, и всегда успешно проходит процесс верификации, таким образом вероятность того, что доказатель пройдет верификацию на удачу, составляет (1/2)^n( и бесконечно стремится к 0), что подтверждает, что доказатель действительно знает некое секретное число s. Этот пример подтверждает целостность, надежность и нулевую знание системы нулевых знаний.
( Два, неинтерактивные zk-SNARKs
)# 1.Фон
zk-SNARKs###ZKP###в традиционном понимании обычно представляет собой интерактивную и онлайн-протокольную форму; например, протокол Sigma обычно требует три-пять раундов взаимодействия для завершения аутентификации. Однако в таких сценариях, как мгновенные транзакции или голосование, часто нет возможности для многораундного взаимодействия, особенно в приложениях технологии Блокчейн, офлайн-проверка функций становится особенно важной.
(# 2.Предложение NIZK
В 1988 году Блум, Фельдман и Микали впервые предложили концепцию неинтерактивных零知识证明ов ) NIZK ###, доказав, что это возможно без необходимости многораундного взаимодействия.