Развитие и применение технологий zk-SNARKs: Обзор в области Блокчейн
Резюме
zk-SNARKs(ZKP) как важный прорыв в области криптографии играет ключевую роль в технологиях Блокчейн. В данной статье представлен систематический обзор развития ZKP за последние сорок лет и последних исследований.
Во-первых, была представлена основная концепция и исторический контекст 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
Потенциальные недостатки и вызовы
Четыре, модель zk-SNARKs
Фон
Распространенные алгоритмические модели
Решение на основе линейного PCP и задачи дискретного логарифма
Решение, основанное на доказательствах обычных людей
Классификация на этапе настройки общего доказательства CPC(, основанного на )
Пятый. Обзор и развитие zk-SNARKs виртуальной машины
Фон
Существующая классификация ZKVM
Парадигма фронтенда и бэкенда
Плюсы и минусы парадигмы ZKVM
Шесть. Обзор и развитие zk-SNARKs Ethereum Virtual Machine
Фон
Принцип работы ZKEVM
Процесс реализации ZKEVM
Особенности ZKEVM
Семь. Обзор и развитие решений второго уровня с использованием zk-SNARKs
Фон
Механизм работы zk-Rollup
Недостатки и оптимизация ZK Rollup
Восемь. Направления будущего развития zk-SNARKs
Ускорение развития вычислительной среды
Появление и развитие ZKML
Развитие технологий масштабирования zk-SNARKs
Развитие совместимости zk-SNARKs
Девять, заключение
Введение
Интернет вступает в эпоху Web3, приложения на Блокчейн (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 году ученые Голдвассер, Микали и Раккоф впервые предложили концепцию zk-SNARKs (Zero-Knowledge Proof, ZKP ) и интерактивные нулевые знания (Interactive Zero-Knowledge, IZK ). Эта работа стала основополагающей для нулевых доказательств и определила множество понятий, оказавших влияние на последующие научные исследования. Например, определение знания — это "недоступный для вычисления вывод", то есть знание должно быть выводом, и это недоступное для вычисления, что означает, что оно не может быть простой функцией, а должно быть сложной функцией. Недоступное для вычисления обычно можно понимать как NP-проблему, то есть проблему, решение которой можно проверить на правильность за полиномиальное время; полиномиальное время означает, что время выполнения алгоритма может быть представлено в виде полиномиальной функции от размера входных данных. Это важный критерий для оценки эффективности и реализуемости алгоритмов в информатике. Поскольку процесс решения NP-проблем сложен, его считают недоступным для вычисления; однако процесс проверки относительно прост, поэтому он очень подходит для проверки нулевых доказательств.
Классическим примером NP-проблемы является задача о коммивояжере, в которой необходимо найти кратчайший путь, проходящий через ряд городов и возвращающийся в начальную точку. Хотя найти кратчайший путь может быть трудно, проверка того, является ли данный путь кратчайшим, относительно проста. Потому что проверка общего расстояния конкретного пути может быть выполнена за полиномиальное время.
В своей работе Голдвассер и др. ввели концепцию "сложности знаний", чтобы количественно оценить объем знаний, раскрываемых доказателем верификатору в интерактивных системах доказательства. Они также предложили интерактивные системы доказательства (Interactive Proof Systems, IPS), в которых доказатель (Prover) и верификатор (Verifier) доказывают истинность определенного утверждения через многократные взаимодействия.
Таким образом, определение zk-SNARKs, предложенное Голдвассером и др., является особым интерактивным доказательством, в котором проверяющий не получает никакой дополнительной информации, кроме истинности утверждения в процессе проверки; также были предложены три основных характеристики, включая:
Полнота ( completeness ): Если утверждение истинно, честный доказатель может убедить честного проверяющего в этом факте;
Надежность ( soundness ): если доказатель не знает содержание заявления, он может обмануть проверяющего только с незначительной вероятностью;
zk-SNARKs (zero-knowledge): После завершения процесса доказательства, проверяющий получает только информацию "доказательство наличия этих знаний", но не может получить никаких дополнительных данных.
2. Пример zk-SNARKs
Для лучшего понимания zk-SNARKs и его свойств, ниже приведен пример проверки того, обладает ли доказатель что-то конфиденциальной информацией. Этот пример разделен на три этапа: настройка, вызов и ответ.
Первый шаг: установка (Setup)
На этом этапе задача доказателя — создать доказательство того, что он знает некое секретное число s, но при этом не показывать s напрямую. Пусть секретное число s;
Выберите два больших простых числа p и q, вычислите их произведение n. Задайте простые числа p и q, вычислите полученное n;
Вычисление v=s^2 mod n, здесь v отправляется валидатору как часть доказательства, но этого недостаточно, чтобы валидатор или любой наблюдатель могли сделать вывод о s;
Случайным образом выберите целое число r, вычислите x=r^2 mod n и отправьте его верификатору. Это значение x используется в последующем процессе верификации, но также не раскрывает s. Пусть случайное целое число r, вычисленное значение x.
Второй шаг: вызов (Challenge)
Валидатор случайным образом выбирает бит a(, который может быть 0 или 1), а затем отправляет его доказателю. Этот "вызов" определяет, какие шаги должен предпринять доказатель.
Третий шаг: ответ (Response)
В соответствии с a-значением, выданным валидатором, доказатель отвечает:
Если a=0, тогда доказатель отправляет g=r(, где r — это случайно выбранное им число ).
Если a=1, то доказатель вычисляет g=rs mod n и отправляет. Пусть проверяющий отправляет случайный бит a, в зависимости от значения a, доказатель вычисляет g;
В конце концов, валидатор проверяет, равняется ли x g^2 mod n на основе полученного g. Если равенство выполняется, валидатор принимает это доказательство. Когда a=0, валидатор вычисляет x=g^2 mod n, справа проверяет g^2 mod n; когда a=1, валидатор вычисляет x=g^2/v mod n, справа проверяет (rs)^2/s^2 mod n.
Здесь мы видим, что x=g^2 mod n, вычисленный валидатором, показывает, что доказатель успешно прошел процесс проверки, не раскрывая при этом своего секретного числа s. Здесь, поскольку a может принимать только 0 или 1, существует только две возможности, вероятность того, что доказатель пройдет проверку полагаясь на удачу, равна 1/2(, когда a равно 0. Но валидатор затем снова вызывает доказателя k раз, доказатель постоянно меняет соответствующие числа и подает их валидатору, и всегда успешно проходит процесс проверки, таким образом вероятность того, что доказатель пройдет проверку полагаясь на удачу, равна )1/2(^k), бесконечно стремится к 0(, что подтверждает, что доказатель действительно знает некое секретное число s. Этот пример демонстрирует целостность, надежность и нулевую знание системы нулевых знаний.
Два, неинтерактивные zk-SNARKs
) 1. Фон
zk-SNARKs###ZKP(в традиционном понимании обычно представляют собой интерактивные и онлайн-протоколы; например, протокол Сигмы обычно требует от трех до пяти раундов взаимодействия для завершения сертификации. Однако в таких сценариях, как мгновенные транзакции или голосование, зачастую нет возможности для многократного взаимодействия, особенно в приложениях технологии Блокчейн, функция оффлайн-верификации становится особенно важной.
) 2. Предложение NIZK
В 1988 году Блум, Фельдман и Микали впервые предложили концепцию неинтерактивных нулевых знаний ###NIZK(, доказав возможность завершения процесса аутентификации между доказателем )Prover( и проверяющим )Verifier( без необходимости многократного взаимодействия. Этот прорыв сделал возможным реализацию мгновенных транзакций, голосования и приложений на Блокчейн.
Они предложили неинтерактивные zk-SNARKs ) NIZK (, которые можно разделить на три этапа:
Настройки
Вычисление
Проверка
На этапе настройки используется вычислительная функция, которая преобразует параметры безопасности в общие знания ), доступные как для доказателя, так и для проверяющего. Обычно это кодируется в общей ссылочной строке ( CRS ). Это способ вычисления доказательства и проверки с использованием правильных параметров и алгоритмов.
На этапе вычислений используются вычислительная функция, ключи ввода и доказательства, а на выходе получают результаты вычислений и доказательства.
На этапе проверки подлинности осуществляется проверка действительности доказательства с помощью проверочного ключа.
Предложенная ими модель общих ссылочных строк (CRS) основана на том, что все участники делят одну строку для достижения нерекурсивного доказательства нулевого знания для NP-проблем. Работоспособность этой модели зависит от надежной генерации CRS, и все участники должны иметь доступ к одной и той же строке. Без правильной и безопасной генерации CRS схемы, реализуемые по этой модели, не могут гарантировать безопасность. Для большого числа участников процесс генерации CRS может быть как сложным, так и времязатратным, поэтому, хотя такие схемы обычно просты в использовании и имеют небольшой объем доказательства, их настройка является довольно сложной задачей.
Затем технология NIZK пережила стремительное развитие, появилось множество методов преобразования интерактивных零知识证明 в неинтерактивные доказательства. Эти методы в построении систем
На этой странице может содержаться сторонний контент, который предоставляется исключительно в информационных целях (не в качестве заявлений/гарантий) и не должен рассматриваться как поддержка взглядов компании Gate или как финансовый или профессиональный совет. Подробности смотрите в разделе «Отказ от ответственности» .
14 Лайков
Награда
14
8
Репост
Поделиться
комментарий
0/400
JustHereForAirdrops
· 08-13 20:37
zkвойти в позицию скорость быстрая...сначала действительно не понимал
Посмотреть ОригиналОтветить0
LiquidityWitch
· 08-13 04:43
zk магическое варение... темные пулы математических истин, где древняя криптография встречается с алхимией блокчейна
Посмотреть ОригиналОтветить0
SigmaBrain
· 08-11 01:18
Будет ли zk оптимальным решением для L2?
Посмотреть ОригиналОтветить0
NotSatoshi
· 08-11 01:16
Несколько лет назад я уже углубился в zk, но так и не смог разобраться.
Посмотреть ОригиналОтветить0
WagmiWarrior
· 08-11 01:15
Снова вижу, как кто-то хвалит zk, сначала сделайте базовое исследование.
Глубина анализа технологии zk-SNARKs: всесторонний обзор от Алгоритма до применения
Развитие и применение технологий zk-SNARKs: Обзор в области Блокчейн
Резюме
zk-SNARKs(ZKP) как важный прорыв в области криптографии играет ключевую роль в технологиях Блокчейн. В данной статье представлен систематический обзор развития ZKP за последние сорок лет и последних исследований.
Во-первых, была представлена основная концепция и исторический контекст 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 виртуальной машины
Шесть. Обзор и развитие zk-SNARKs Ethereum Virtual Machine
Семь. Обзор и развитие решений второго уровня с использованием zk-SNARKs
Восемь. Направления будущего развития zk-SNARKs
Девять, заключение
Введение
Интернет вступает в эпоху Web3, приложения на Блокчейн (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 году ученые Голдвассер, Микали и Раккоф впервые предложили концепцию zk-SNARKs (Zero-Knowledge Proof, ZKP ) и интерактивные нулевые знания (Interactive Zero-Knowledge, IZK ). Эта работа стала основополагающей для нулевых доказательств и определила множество понятий, оказавших влияние на последующие научные исследования. Например, определение знания — это "недоступный для вычисления вывод", то есть знание должно быть выводом, и это недоступное для вычисления, что означает, что оно не может быть простой функцией, а должно быть сложной функцией. Недоступное для вычисления обычно можно понимать как NP-проблему, то есть проблему, решение которой можно проверить на правильность за полиномиальное время; полиномиальное время означает, что время выполнения алгоритма может быть представлено в виде полиномиальной функции от размера входных данных. Это важный критерий для оценки эффективности и реализуемости алгоритмов в информатике. Поскольку процесс решения NP-проблем сложен, его считают недоступным для вычисления; однако процесс проверки относительно прост, поэтому он очень подходит для проверки нулевых доказательств.
Классическим примером NP-проблемы является задача о коммивояжере, в которой необходимо найти кратчайший путь, проходящий через ряд городов и возвращающийся в начальную точку. Хотя найти кратчайший путь может быть трудно, проверка того, является ли данный путь кратчайшим, относительно проста. Потому что проверка общего расстояния конкретного пути может быть выполнена за полиномиальное время.
В своей работе Голдвассер и др. ввели концепцию "сложности знаний", чтобы количественно оценить объем знаний, раскрываемых доказателем верификатору в интерактивных системах доказательства. Они также предложили интерактивные системы доказательства (Interactive Proof Systems, IPS), в которых доказатель (Prover) и верификатор (Verifier) доказывают истинность определенного утверждения через многократные взаимодействия.
Таким образом, определение zk-SNARKs, предложенное Голдвассером и др., является особым интерактивным доказательством, в котором проверяющий не получает никакой дополнительной информации, кроме истинности утверждения в процессе проверки; также были предложены три основных характеристики, включая:
Полнота ( completeness ): Если утверждение истинно, честный доказатель может убедить честного проверяющего в этом факте;
Надежность ( soundness ): если доказатель не знает содержание заявления, он может обмануть проверяющего только с незначительной вероятностью;
zk-SNARKs (zero-knowledge): После завершения процесса доказательства, проверяющий получает только информацию "доказательство наличия этих знаний", но не может получить никаких дополнительных данных.
2. Пример zk-SNARKs
Для лучшего понимания zk-SNARKs и его свойств, ниже приведен пример проверки того, обладает ли доказатель что-то конфиденциальной информацией. Этот пример разделен на три этапа: настройка, вызов и ответ.
Первый шаг: установка (Setup)
На этом этапе задача доказателя — создать доказательство того, что он знает некое секретное число s, но при этом не показывать s напрямую. Пусть секретное число s;
Выберите два больших простых числа p и q, вычислите их произведение n. Задайте простые числа p и q, вычислите полученное n;
Вычисление v=s^2 mod n, здесь v отправляется валидатору как часть доказательства, но этого недостаточно, чтобы валидатор или любой наблюдатель могли сделать вывод о s;
Случайным образом выберите целое число r, вычислите x=r^2 mod n и отправьте его верификатору. Это значение x используется в последующем процессе верификации, но также не раскрывает s. Пусть случайное целое число r, вычисленное значение x.
Второй шаг: вызов (Challenge)
Валидатор случайным образом выбирает бит a(, который может быть 0 или 1), а затем отправляет его доказателю. Этот "вызов" определяет, какие шаги должен предпринять доказатель.
Третий шаг: ответ (Response)
В соответствии с a-значением, выданным валидатором, доказатель отвечает:
Если a=0, тогда доказатель отправляет g=r(, где r — это случайно выбранное им число ).
Если a=1, то доказатель вычисляет g=rs mod n и отправляет. Пусть проверяющий отправляет случайный бит a, в зависимости от значения a, доказатель вычисляет g;
В конце концов, валидатор проверяет, равняется ли x g^2 mod n на основе полученного g. Если равенство выполняется, валидатор принимает это доказательство. Когда a=0, валидатор вычисляет x=g^2 mod n, справа проверяет g^2 mod n; когда a=1, валидатор вычисляет x=g^2/v mod n, справа проверяет (rs)^2/s^2 mod n.
Здесь мы видим, что x=g^2 mod n, вычисленный валидатором, показывает, что доказатель успешно прошел процесс проверки, не раскрывая при этом своего секретного числа s. Здесь, поскольку a может принимать только 0 или 1, существует только две возможности, вероятность того, что доказатель пройдет проверку полагаясь на удачу, равна 1/2(, когда a равно 0. Но валидатор затем снова вызывает доказателя k раз, доказатель постоянно меняет соответствующие числа и подает их валидатору, и всегда успешно проходит процесс проверки, таким образом вероятность того, что доказатель пройдет проверку полагаясь на удачу, равна )1/2(^k), бесконечно стремится к 0(, что подтверждает, что доказатель действительно знает некое секретное число s. Этот пример демонстрирует целостность, надежность и нулевую знание системы нулевых знаний.
Два, неинтерактивные zk-SNARKs
) 1. Фон
zk-SNARKs###ZKP(в традиционном понимании обычно представляют собой интерактивные и онлайн-протоколы; например, протокол Сигмы обычно требует от трех до пяти раундов взаимодействия для завершения сертификации. Однако в таких сценариях, как мгновенные транзакции или голосование, зачастую нет возможности для многократного взаимодействия, особенно в приложениях технологии Блокчейн, функция оффлайн-верификации становится особенно важной.
) 2. Предложение NIZK
В 1988 году Блум, Фельдман и Микали впервые предложили концепцию неинтерактивных нулевых знаний ###NIZK(, доказав возможность завершения процесса аутентификации между доказателем )Prover( и проверяющим )Verifier( без необходимости многократного взаимодействия. Этот прорыв сделал возможным реализацию мгновенных транзакций, голосования и приложений на Блокчейн.
Они предложили неинтерактивные zk-SNARKs ) NIZK (, которые можно разделить на три этапа:
На этапе настройки используется вычислительная функция, которая преобразует параметры безопасности в общие знания ), доступные как для доказателя, так и для проверяющего. Обычно это кодируется в общей ссылочной строке ( CRS ). Это способ вычисления доказательства и проверки с использованием правильных параметров и алгоритмов.
На этапе вычислений используются вычислительная функция, ключи ввода и доказательства, а на выходе получают результаты вычислений и доказательства.
На этапе проверки подлинности осуществляется проверка действительности доказательства с помощью проверочного ключа.
Предложенная ими модель общих ссылочных строк (CRS) основана на том, что все участники делят одну строку для достижения нерекурсивного доказательства нулевого знания для NP-проблем. Работоспособность этой модели зависит от надежной генерации CRS, и все участники должны иметь доступ к одной и той же строке. Без правильной и безопасной генерации CRS схемы, реализуемые по этой модели, не могут гарантировать безопасность. Для большого числа участников процесс генерации CRS может быть как сложным, так и времязатратным, поэтому, хотя такие схемы обычно просты в использовании и имеют небольшой объем доказательства, их настройка является довольно сложной задачей.
Затем технология NIZK пережила стремительное развитие, появилось множество методов преобразования интерактивных零知识证明 в неинтерактивные доказательства. Эти методы в построении систем