#практика 

Всем привет!

Сегодня мы поговорим, как работает протокол консенсуса с нулевым разглашением Zero Knowledge Proof (ZKP).

Виталик Бутерин неоднократно заявлял, что по его мнению, это самая перспективная технология, которая позволит интегрировать крипто-платежи в повседневную жизнь.

Почему так? Давайте разбираться!

Представьте, что вы живете в мире, где любой товар или услугу можно оплатить Биткоином. Пришли вы в свою любимую кофейню купить ванильный капучино, платите Биткоином, а продавец, видя с какого кошелька пришла оплата, в пару кликов может посмотреть совокупный баланс вашего кошелька, и если у вас там лежит несколько десятков Битков, то можно однажды не дойти до дома, мысль вы поняли.

Смысл блокчейнов, построенных на протоколе ZKP, заключается в том, что пользователи, валидаторы, ноды, разработчики и тд. не в курсе у кого какой баланс на кошельке, эта информация зашифрована. 

Блокчейн-проектов, построенных по данному принципу достаточно много: zkSynk, Celo, Zcash, Mina, поддерживает данную технологию Polygon. Мы видим, как команды, ведущие разработку своих проектов на основе протокола ZKP привлекают сотни миллионов долларов венчурных инвестиций. 

В недавнем разборе проекта IronFish (https://t.me/block4block/354), мы рассказывали, как команда добавила дополнительный приватный ключ каждому пользователю, чтобы те могли предоставлять их контролирующим органам, при этом сторонние наблюдатели не могут посмотреть стоимость активов на конкретном кошельке, в отличии от публичных блокчейнов типа Bitcoin или Ethereum.

У внимательного читателя уже мог возникнуть вопрос. 

Как ноды, обрабатывающие транзакции, приходят к общему консенсусу по поводу их истинности, если вся информация о состояния балансов зашифрована, и как они договариваются о добавлении пула транзакций в блок?  

Ответить на этот вопрос без лишнего занудства непросто, поэтому расскажем вам сказку. 

История про Алису и Али Бабу (интерпретация Block4Block)

Обратите внимание на картинку. Мы видим лабиринт, посреди которого есть 2 закрытых на пароль двери. Алиса утверждает Али Бабе, что знает пароль от каждой из них, но при этом не может их рассказать. 

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

Затем они меняются местами. Али Баба отправляется через первый вход к 1 двери, а Алиса идет через второй вход, открывает дверь номер 2 и стучит в первую дверь с обратной стороны. Так Али Баба удостоверился в истинности знаний Алисы, при это не получив доступ к паролям дверей. 

Данная история позволяет вам примерно представить, как можно доказать истинность какой-либо информации не раскрывая ее детали. Протоколы взаимодействия нод, позволяют им прийти к консенсусу и подтвердить истинность информации, сохранив приватность кошельков, участвующих в транзакции. 

Протоколы с нулевым разглашением - это произведение искусства в области криптографии. Кстати, команда Zcash первыми разработала блокчейн на данной технологии.