Подробное объяснение: начало zk-SNARK доказательства с нулевым разглашением

внешний интерфейс блокчейн
Подробное объяснение: начало zk-SNARK доказательства с нулевым разглашением

Автор: Линь Гуаньхун / Призраки под рукой

Самородки:Талант /user/178526…

Блог:www.cnblogs.com/linguanh/

Гитхаб:GitHub.com/afan913337456…

Облачная колонка Tencent:cloud.Tencent.com/developer/U…

Колонка блокчейна червоточины:woohoo.impulsecommunity.com/article/153…


содержание

  • пролог
  • Сертификат нулевых знаний
  • Ноль сертификата знаний и отношения ZK-Snark
  • Чего достигает ZCash с помощью zk-SNARK?

PS: Моя техническая книга: «Практика разработки блокчейн-приложений Ethereum» опубликована, и ее можно приобрести онлайн.

пролог

zk-SNARKПолное название — «Краткий неинтерактивный аргумент знания с нулевым знанием», а китайский — «Краткий неинтерактивный аргумент знания с нулевым знанием».

zk-SNARKЭто теория «доказательства с нулевым разглашением» в区块链Один из аргументов, который был применен к земле.

узнал раньшеzk-SNARK,В то время статьи которые Ву Най мог немного объяснить были довольно редки.Я сам человек часто пишу технические статьи.Самая легкая ситуация для писателей-писать и писать.Некоторые слова в статье вдруг появились,только Я знал, как он рассчитывается, но не объяснил. Читатели чувствуют себя запутанными и необъяснимыми.

zk-SNARKЧасть знаний разделена на несколько частей. Части, если честно, неразделимы数学知识Читателям, не владеющим математикой, довольно сложно понять приложение. Я разобью его на 5 статей, чтобы полностью объяснить их одну за другой. Вступительная глава, которая является первой главой, представляет собой главу с широким термином.

доказательство с нулевым разглашением

теперь, когдаzk-SNARKоснован на零知识证明Теоретически, тогда мы должны сначала понять零知识证明.零知识证明ОтS.Goldwasser,S.MicaliиC.RackoffЭти три были предложены в начале 1980-х годов. но真正让它火了起来это блокчейнzk-SNARK.

零知识证明, что относится к证明者в состоянии не验证者предоставить любой有用的信息В случае заставить проверяющего поверить в правильность утверждения.

Есть две роли,证明者и验证者, и суть:有用的信息.

  • 证明者, чтобы доказать, что вы знаете ответ на вопрос
  • 验证者, проверяет правильность ответа доказывающего

Ниже приведены 2 примера для иллюстрации零知识证明.

Пример 1钱包的主人

А, как верификатор, берет в руки кошелек.В это время В, как доказывающий, хочет доказать А, что кошелек принадлежит ему, то есть доказать, что кошелек принадлежит Б. Чтобы квалифицироваться как доказательство с нулевым разглашением, должны быть выполнены следующие требования к доказательству:

  1. А не может позволить Б увидеть бумажник в это время, не говоря уже о том, чтобы он увидел, что находится в бумажнике.
  2. B должен предоставить достаточную точную информацию, чтобы доказать, что кошелек принадлежит ему.

B теперь может предоставить:

  1. Какой цвет, размер и марка кошелька и т.д.
  2. Что в кошельке? Например, сколько? Какие документы? Что такое информация о документе?

A проверяет после ответа B, и если B говорит все правильно, подтверждает, что B является владельцем кошелька. Это средство проверки информации является доказательством с нулевым разглашением. В случае, если B не предоставляет кошелек A напрямую, это доказывает, что кошелек принадлежит ему, и он не может предоставить кошелек, потому что кошелек находится в руках верификатора A. Кошелек объекта является представителем有用的信息.

Пример 2阿里巴巴和40大盗

Это очень распространенная история в Интернете零知识证明пример. Алибаба — это личное имя, именуемое в дальнейшем А, А证明者, вор это验证者.

А знает заклинание, чтобы открыть пещеру, где спрятан клад. Грабитель поймал его и велел произнести заклинание. Если A произносит заклинание, оно будет убито без какой-либо пользы. Если А будет настаивать на том, чтобы этого не говорить, грабитель не поверит, что действительно владеет заклинанием, и убьет его. Подумав путь, он сказал разбойнику: «Ты в двух шагах от меня, укажи на меня луками и стрелами, подними правую руку, и я произнесу заклинание, чтобы открыть каменные ворота, подними левую руку и я буду петь заклинание, чтобы закрыть каменные ворота, если я это сделаю, Если ты не дотянешься или не убежишь, ты выстрелишь в меня из лука и стрел».

Таким образом, А может произнести заклинание, чтобы открыть каменные ворота достаточно далеко от грабителя, и грабитель не услышит, что это за заклинание, А. Грабитель увидел, что поверил, и каменные ворота действительно открылись, удостоверившись, что А действительно овладел заклинанием. Этот процесс А напрямую не раскрывается заклинанию вора, заклинание有用的信息.

Существует также数独пример. Заинтересованные читатели могут самостоятельно перейти в браузер для поиска. Этот метод доказательства чем-то похож на метод в математике.间接证明значение.

Связь между доказательствами с нулевым разглашением и zk-SNARK

Доказательство с нулевым разглашением, я считаю, что через два приведенных выше примера все могут понять. Если вы все еще не можете понять это, я думаю, что вы можете прочитать мою статью снова через некоторое время, и не рекомендуется продолжать чтение сейчас.

Если непосредственно в жизни, используя слова, действия для完成一次零知识证明, который отлично работает. Как и в случае с кошельком, все собираются, разговаривают, и это можно сделать.

Однако с точки зрения компьютера, как преобразовать проблему в форму программы, пусть компьютер сделает это для нас零知识证明Шерстяная ткань? Это требует от нас реального零知识证明Задачи класса преобразуются в математические описания, которые затем могут быть выражены с помощью компьютерных программ.

zk-SNARK, это способ преобразовать фактический零知识证明Теория преобразования классовых задач в задачи компьютерных программ. Полное название «Краткий неинтерактивный аргумент знаний с нулевым знанием» можно разделить на следующие пункты для понимания:

  • Нулевое знание, нулевое знание, то есть не раскрывает никакой полезной информации.
  • Лаконично, лаконично, в основном относится к тому, что процесс проверки программ для ЭВМ не предполагает передачи большого объема данных и обеспечивает простоту алгоритма проверки.
  • неинтерактивный, неинтерактивный.交互是个抽象名词,我这里要解释一下它。比如交互式程序就是你给它一个指令,它反馈给你一个对应的信息,而非交互式程序就是你给它一个指令,正确它就执行,错误它就不执行,而且它也不会将错误信息反馈给你。 следовательноzk-SNARKотсутствия взаимодействия, т.证明者После представления доказательства, когда оно неверно验证者Это не собирается показывать, что является неправильной информацией.
  • аргументы, споры.zk-SNARKСуществует диспут, который подвергается нападению только и только в том случае, если доказывающий足够的算力ковать证据Чтобы обмануть верификатор, он будет существовать, обратите внимание на ключевые слова:足够的算力, достаточно взломать шифрование открытого ключа, поэтому можно сказать, что вероятность крайне мала.

В настоящее время публичная цепочка в блокчейнеZCashтолько что подал заявкуzk-SNARKтеория.

ZCashиспользоватьzk-SNARKЧто было достигнуто

В настоящее время блокчейн в какой-то известной публичной цепочке, например,BTCиETHтранзакция, после успешной транзакции переходим к区块链浏览器или позвоните в соответствующийRPC接口При просмотре соответствующих записей транзакций. да это видно包含但不限于из следующих данных:

  • 交易发送者地址
  • 交易接收者地址
  • Значение транзакции

Хотя в одиночку обращайтесь к серии номеров и букв, например:0xD224cA0c819e8E97ba0136B3b95ceFf503B79f53Это также имеет хороший эффект анонимности, потому что как наблюдатель мы понятия не имеем, кто человек с адресом, мужчина это или женщина.

В погоне за абсолютными крайностями, можно ли скрыть вышеуказанные данные, чтобы добиться эффекта анонимности всех данных? использовалzk-SNARKпринципZCashПубличная сеть делает это.

ZCashИмеет систему анонимных транзакций, которая поддерживает несколько типов транзакций, одним из которых является возможность скрытия交易双方地址и交易数值транзакция. Это полностью скрыто, а не то, что данные все еще хранятся вZCashВ базе данных узла нет скрытого отображения. Но даже узлы не знают содержания транзакции. Можно сказать, что некоторые данные, скрытые доказательством с нулевым разглашением, очень высоки в некоторых приложениях, требующих высоких требований к конфиденциальности.

оZCashиспользуется в транзакциях между скрытыми адресамиzk-SNARK. Во второй статье я остановлюсь на:ZCashТранзакции между скрытыми адресами.

Вторая статья:Подробно объяснить: Zcash Zero - доказательством доказательств полной транзакции Anonymous