Что такое zk-SNARK? Доказательство с нулевым разглашением

«Лично я считаю, что zk-SNARK – чрезвычайно важная, абсолютно изменяющая игру технология … Они сейчас самые сильные в криптографии»

– Виталик Бутерин

«Я согласен с Виталиком. Доказательство с нулевым разглашением является будущим частной торговли »

– Эдвард Сноуден

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

zk-SNARK расшифровывается как Zero-Knowledge Succinct Non-Interactive Argument of Knowledge,  и работает, чтобы доказать определенные условия, не раскрывая информацию, которая должна быть конфиденциальной. Разберем это на составные части, чтобы было легче понять.

Zero-knowledge (нулевое разглашение) = сохраняет конфиденциальность и секретность

Succinct (краткий)  = доказательства обычно проверяются в течение миллисекунд

Non-Interactive (не интерактивный) = конструкция доказательства, где сообщение может быть отправлено из проверки в верификатор без необходимости постоянно отправлять сообщения туда и обратно

Argument of Knowledge (доказательство) = проводник может убедить верификатора в том, что существует определенная информация, и к ней можно получить доступ, не раскрывая при этом всю информацию целиком.

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

Денис (доказывающий) может доказать Василию(верификатору), что утверждение верно, не раскрывая всю информацию целиком. Денис может убедить Василия, что информация существует, и что еще более важно, что он может получить доступ к этой информации, даже не раскрывая, что это на самом деле (“Да точно тебе говорю, всё есть! Но показывать не буду”)

И вот ещё пример на тот случай, если вам потребуется объяснить эту тему пятилетке. Действующие лица те же:

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

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

На картинке ниже Денис пошел путем А, а затем Вася подошел к входу и попросил его выйти со стороны В. Денис кричит «Без проблем!» и использует секретное слово, чтобы открыть волшебную дверь и выходит со стороны В.

Конечно, можно подумать, что есть вероятность 50/50, что запрос Васи совпадет с тем, куда в действительности пошел Денис, и Денис на самом деле не знает никакого пароля.

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

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

Доказательства с нулевым разглашением должны удовлетворять трем основным свойствам (с минимальной вероятностью ошибки):

Полнота. У доказывающего есть способ убедить верификатора, что любое утверждение верно

Надежность – ни один читер не может убедить верификатора в ложном утверждении

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

Zk-SNARK защищает транзакции и обеспечивает конфиденциальность и приватность, поэтому Zcash интегрирует технологию в свою криптовалюту. Это только один из многих вариантов использования для zk-SNARK, но с учетом его вычислительной сложности, все еще нецелесообразно использовать его за пределами сферы валюты, ориентированной на конфиденциальность. Теоретически вы можете использовать zk-SNARK для проверки любой транзакции или отношений между двумя сторонами, не раскрывая информации между участвующими сторонами.

Принятие Zk-SNARK Ethereum’ом  было бы, по меньшей мере, гейм-чейнджером.  Учитывая нынешнюю непростую нормативную среду, все больше людей начинают интересоваться цифровыми валютами, ориентированным на конфиденциальность. Тем не менее, правительства всегда могут блокировать  доступ к сети, что по-прежнему является серьезной проблемой в вопросе подлинной децентрализации.

Добавить комментарий

КриптоГуру