Автор: Линь Гуаньхун / Призраки под рукой
Самородки:Талант /user/178526…
Гитхаб: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钱包的主人
А, как верификатор, берет в руки кошелек.В это время В, как доказывающий, хочет доказать А, что кошелек принадлежит ему, то есть доказать, что кошелек принадлежит Б. Чтобы квалифицироваться как доказательство с нулевым разглашением, должны быть выполнены следующие требования к доказательству:
- А не может позволить Б увидеть бумажник в это время, не говоря уже о том, чтобы он увидел, что находится в бумажнике.
- B должен предоставить достаточную точную информацию, чтобы доказать, что кошелек принадлежит ему.
B теперь может предоставить:
- Какой цвет, размер и марка кошелька и т.д.
- Что в кошельке? Например, сколько? Какие документы? Что такое информация о документе?
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