Как в реальной жизни, так и в цифровом мире мы часто хотим что-то доказать другим. Прежде чем войти в офисное здание, сотрудники обычно предъявляют какое-либо удостоверение личности, прежде чем попасть внутрь.
Когда пользователи пытаются войти в приложение, такое как Facebook или Twitter, эти службы должны сначала попросить пользователя войти в систему с паролем, а иногда на их мобильное устройство отправляется одноразовый код доступа (OTP).
Недостатком предоставления доказательств является то, что мы часто выдаем другие типы информации. Предоставление пароля веб-сайту по-прежнему означает, что сам веб-сайт хранит копию хешированного пароля на своих серверах. Если кто-то взломает сканер идентификаторов сотрудников офисного здания, он сможет получить все личные ключи.
Доказательства с нулевым разглашением или ZKP предоставляют способ проверки личности или транзакции без необходимости предоставления дополнительной информации. Из-за применения в криптографии ZKP были адаптированы блокчейны для создания безопасных и масштабируемых протоколов проверки.
Что такое доказательства с нулевым разглашением?
Доказательства с нулевым разглашением были впервые предложены исследователями Массачусетского технологического института Сильвио Микали, Чарльзом Ракоффом и Шафи Голдвассером в 1985 году в их статье. «Сложность знаний интерактивных систем доказательства»
В этой статье было введено понятие сложности знания. Это относится к объему знаний о доказательстве, переданном от доказывающего к проверяющему. Доказательства с нулевым разглашением направлены на то, чтобы позволить стороне доказать, что конкретное утверждение является верным для другой стороны, без необходимости раскрывать какую-либо другую информацию.
ZKP можно использовать в качестве безопасной альтернативы существующим системам аутентификации, а также можно добавить в протоколы блокчейна для обеспечения конфиденциальности транзакций.
Как работают ЗКП?
Пример из реального мира
Чтобы проиллюстрировать, как работают доказательства с нулевым разглашением, давайте рассмотрим абстрактный пример ZKP.
Допустим, у вас есть друг, который не различает красный и зеленый цвета. У вас с собой два одинаковых шара, отличающихся только цветом: один красный, а другой зеленый. Для вашего друга они кажутся одинаковыми, но как человек без дальтонизма вы можете легко отличить их друг от друга.
Можете ли вы доказать своему другу, что они разного цвета, не раскрывая, какой шар красный или зеленый?
На самом деле есть способ доказать это, не раскрывая цвета шаров. Во-первых, вы должны позволить своему другу положить оба мяча за спину и сказать ему, чтобы он показал любой мяч и снова спрятал его. Затем вы говорите своему другу, что у него есть выбор: снова показать тот же мяч или поменять его местами с другим.
Каждый раз, когда показывается новый мяч, вы можете сказать ему, подменил он мяч или нет. Если вы продолжаете угадывать правильный вызов, становится все более и более вероятным, что шары разного цвета. Теперь ваш друг должен убедиться, что шары разного цвета, не говоря ему, какие шары имеют тот или иной цвет.
Практическое применение
Большинство практических примеров доказательств с нулевым разглашением делятся на два типа.
Во-первых, ZKP можно использовать при разработке протоколов. Мы можем гарантировать, что разные стороны не смогут обмануть или воспользоваться преимуществами протокола. Во-вторых, ZKP можно использовать для идентификации.
Например, мы можем использовать ZKP для безопасного входа в веб-приложение без раскрытия самого пароля.
Давайте рассмотрим несколько примеров того, как мы можем использовать доказательства с нулевым разглашением.
Электронное голосование
Одним из часто обсуждаемых приложений ZKP является их возможная роль в онлайн-голосовании. Допустим, у нас есть предстоящий референдум, на котором пользователи могут проголосовать за предложенную политику. Каждому имеющему право избирателю разрешается голосовать либо 1, либо 0 в бюллетене.
Используя ЗКП, избиратели могут доказать свое право голосовать, не раскрывая своей личности. Это гарантирует, что каждое голосование будет действительно анонимным. Дополнительный ZKP также будет использоваться для доказательства того, что голос конкретного пользователя является частью окончательного подсчета голосов.
Что касается самого содержания бюллетеней, система голосования также может генерировать доказательство с нулевым разглашением того, что каждый бюллетень содержит либо 1, либо 0. Это достигается без необходимости знать содержание самого бюллетеня.
Блокчейн Конфиденциальность
Блокчейны, такие как Биткойн и Эфириум, изначально не поддерживают частные транзакции. Пока ваш биткойн-кошелек общедоступен, любой может зайти в обозреватель блоков, такой как Blockstream чтобы увидеть все транзакции, частью которых является кошелек.
Между тем, использование такой услуги, как банк или платежные услуги, такие как Cash App или Venmo, дает вам возможность совершать транзакции в частном порядке. Однако это удобство достигается за счет раскрытия вашей информации централизованной службе.
Мы можем совместить анонимность с децентрализацией, добавив ZKP в протокол блокчейна. Криптовалюты, такие как ZCash, используют ZKP для создания частных транзакций, которые позволяют держателям монет сохранять свою анонимность. Некоторые из этих криптовалют используют тип ZKP, известный как zk-SNARK.
Эти ZKP не требуют взаимодействия между доказывающим и проверяющим.
Накопительные пакеты с нулевым разглашением
ZK-свертки — это масштабируемое решение, которое позволяет мгновенно проверять транзакции вне сети и с минимальными комиссиями за газ. Это способ объединить большое количество транзакций уровня 2 и отправить их в протокол уровня 1.
Помимо обеспечения конфиденциальности, ZKP позволяет масштабировать сложные системы. Протоколы блокчейна могут использовать ZKP, чтобы доказать, что пользователи выполнили правильные транзакции, имеют соответствующий баланс и так далее. Эти безопасные, но масштабируемые решения возможны только благодаря математическим доказательствам, выполненным вне сети в ZKP.
Такие протоколы, как Loopring, используют доказательства с нулевым разглашением, чтобы помочь обрабатывать транзакции вне сети, не ставя под угрозу безопасность.
Преимущества доказательств с нулевым разглашением
- ZKP заменяют менее надежные формы аутентификации, такие как PIN-коды или удостоверения личности.
- ZKPS повышает масштабируемость блокчейнов
- Реализация ZKP требует простых методов шифрования
- Использование ZKPS может сделать системы более безопасными, не требуя хранения ненужной информации в системе.
Заключение
Конфиденциальность данных уже является серьезной проблемой как в централизованных, так и в децентрализованных системах. Доказательства с нулевым разглашением дают возможность различным сторонам подтверждать или подтверждать транзакции и личности без необходимости раскрывать указанные транзакции или личности.
По мере того, как технология блокчейна становится все более широко используемой, принятие ZKP для безопасной обработки проверки будет иметь ключевое значение для проблем масштабируемости.
Оставьте комментарий