Что такое доказательство c нулевым разглашением (ZKP)?

Vitaly Fedorov
Chainlink Community
6 min readJan 21, 2023

Хотя прозрачность, присущая блокчейн, дает преимущество во многих ситуациях, существует также ряд случаев использования смарт-контрактов, которые требуют конфиденциальности по различным деловым или юридическим причинам, таким как использование собственных данных в качестве исходных данных для запуска исполнения смарт-контракта. Все более распространенным способом обеспечения конфиденциальности в публичных сетях блокчейн являются доказательства с нулевым разглашением (ZKPs) — метод, позволяющий одной стороне криптографически доказать другой стороне, что она обладает знаниями о части информации, не раскрывая фактической информации. В контексте блокчейн-сетей единственная информация, раскрываемая ZKP на цепочке, заключается в том, что некоторая часть скрытой информации является достоверной и известна доказателю с высокой степенью уверенности.

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

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

Доказательства с нулевым разглашением были впервые описаны в работе Шафи Голдвассера и Сильвио Микали, опубликованной в 1985 году в Массачусетском технологическом институте, под названием “Сложность знаний интерактивных систем доказательств”. В этой работе авторы продемонстрировали, что доказатель может убедить верификатора в истинности конкретного утверждения о точке данных, не раскрывая никакой дополнительной информации о данных. ZKP могут быть либо интерактивными — когда проверяющий убеждает конкретного проверяемого, но должен повторять этот процесс для каждого отдельного проверяемого, либо неинтерактивными — когда проверяющий генерирует доказательство, которое может быть проверено любым человеком, использующим то же доказательство. Кроме того, в настоящее время существуют различные реализации ZKP, включая zk-SNARKS, zk-STARKS, PLONK и Bulletproofs, и каждая из них имеет свои собственные компромиссы в отношении размера доказательства, времени работы проверяющего, времени проверки и т.д.

Три фундаментальные характеристики, определяющие ZKP, включают:

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

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

Концептуальный пример того, как работает доказательство с нулевым разглашением для подтверждения знаний о данных без раскрытия этих данных другой стороне

Концептуальный пример для интуитивного понимания доказательства данных в условиях нулевого знания — представить себе пещеру с одним входом, но двумя путями (путь A и B), которые соединяются у общей двери, запертой парольной фразой. Алиса хочет доказать Бобу, что она знает пароль к двери, но не раскрывая его Бобу. Для этого Боб стоит снаружи пещеры, а Алиса входит внутрь пещеры по одному из двух путей (при этом Боб не знает, какой путь был выбран). Затем Боб просит Алису пройти по одному из двух путей обратно к входу в пещеру (выбранному наугад). Если Алиса первоначально выбрала путь А к двери, а затем Боб попросил ее вернуться по пути В, то единственным способом завершить головоломку будет знание Алисой пароля к запертой двери. Этот процесс можно повторить несколько раз, чтобы доказать, что Алиса знает код доступа к двери, а не выбрала правильный путь изначально с высокой степенью вероятности.

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

Представьте себе вычислительную схему, которая выдает значение на кривой при заданных входных данных. Если пользователь способен последовательно дать правильный ответ на точку на кривой, можно быть уверенным, что он обладает определенными знаниями о кривой, поскольку угадать правильный ответ с каждым последующим раундом становится все более невероятным. Можно представить схему как путь, по которому Алиса идет в пещере. Если она может пройти по схеме со своими входными данными, она доказывает, что обладает некоторыми знаниями, “кодом” к схеме, с высокой степенью вероятности. Возможность доказать знание о точке данных, не раскрывая никакой дополнительной информации, кроме знания данных, дает ряд ключевых преимуществ, особенно в контексте сетей блокчейн.

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

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

Обеспечение конфиденциальности в сетях блокчейн имеет решающее значение для традиционных организаций, таких как компании цепочки поставок, предприятия и банки, которые хотят взаимодействовать со смарт-контрактами и запускать их, но должны сохранять конфиденциальность своих коммерческих секретов, чтобы оставаться конкурентоспособными. Кроме того, такие учреждения часто обязаны по закону защищать персонально идентифицируемую информацию (PII) своих клиентов и соблюдать такие нормативные акты, как Общий регламент защиты данных Европейского союза (GDPR) и Закон о переносимости и подотчетности медицинского страхования США (HIPAA).

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

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

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

Реализацией решения для оракула на основе Zero-Knowledge Proof в стадии разработки является DECO, протокол оракула с сохранением конфиденциальности в наборе безопасных вычислений вне сети Chainlink Network. Расширяя HTTPS/TLS, наиболее распространенный протокол, используемый для передачи данных через Интернет, DECO гарантирует, что данные остаются конфиденциальными и защищенными от взлома во время их доставки из различных частных и премиальных источников данных. DECO работает с современными версиями TLS, не требует доверенного оборудования и работает в режиме обратной совместимости, не требуя модификаций на стороне сервера. В результате ноды оракулов Chainlink с поддержкой DECO могут подтверждать факты о данных, полученных с доверенных серверов, не раскрывая данные на блокчейн, а также подтверждать источник данных, поскольку цепочка хранения данных TLS сохраняется.

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

DECO также может использоваться для создания децентрализованных протоколов идентификации (DID), таких как CanDID, где пользователи могут получать и управлять своими собственными учетными данными, а не полагаться на централизованную третью сторону. Такие удостоверения подписываются организациями, называемыми эмитентами, которые могут авторитетно связывать с пользователями такие характеристики, как гражданство, род занятий, высшее образование и другие. DECO позволяет любому существующему веб-серверу стать эмитентом и обеспечивает управление совместным использованием ключей для резервного копирования учетных записей, а также сохраняющую конфиденциальность форму защиты от Sybil на основе окончательных уникальных идентификаторов, таких как номера социального страхования (SSN).

Наконец, решения ZKP, такие как DECO, приносят пользу не только пользователям, но и позволяют традиционным учреждениям и поставщикам данных монетизировать свои собственные и конфиденциальные наборы данных конфиденциальным образом. Вместо того чтобы размещать данные непосредственно на блокчейн, необходимо публиковать только сертификаты, полученные из ZKP, подтверждающие факты о данных. Это открывает новые рынки для поставщиков данных, которые могут монетизировать существующие наборы данных и увеличить свои доходы, обеспечивая при этом нулевую утечку данных. В сочетании с Chainlink Mixicles конфиденциальность выходит за рамки исходных данных, выполняющих соглашение, и включает в себя условия самого соглашения.

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

Ознакомьтесь с техническим описанием Chainlink 2.0 для более глубокого изучения роли децентрализованных сетей оракулов в системах смарт-контрактов с сохранением конфиденциальности.

Оригинальная статья

Присоединяйтесь к русскоязычному сообществу Chainlink в Телеграм.

Официальные источники на английском: Twitter для новостей, уведомлений о новых статьях; Telegram или Reddit для основных вопросов, Discord — для детальных технических вопросов и дискуссий.

--

--