Автор: Александр Подобных, руководитель Санкт-Петербургского РО АРСИБ, руководитель Комитета по безопасности цифровых активов и противодействию мошенничеству, судебный эксперт
Доказательство с нулевым разглашением (Zero-Knowledge Proof, ZK-доказательства, ZKP) – это криптографический протокол, который позволяет одному лицу (доказывающему) убедить другого (проверяющего) в том, что некоторое конкретное утверждение верно, не раскрывая никаких подробностей о самом утверждении. То есть одна сторона может доказать, что знает секретные данные, не раскрывая их или их детали, а вторая может только убедиться, что доказывающая сторона имеет доступ к этой информации.
Эта концепция играет важную роль в информационной безопасности вообще и в сфере блокчейн-технологий в частности. В качестве примеров ее применения можно привести аутентификацию без раскрытия пароля, проверку ПДн без их публикации, доказательство владения определенным частным ключом в блокчейне без публичного раскрытия этого ключа.
Идея доказательств с нулевым разглашением была предложена в работе "The Knowledge Complexity of Interactive ProofSystems" авторами Шафи Голдвассер, Сильвио Микали и Чарльз Раккофф в далеком 1985 г.
Исследователи представили новый класс протоколов интерактивных доказательств, которые позволяют одной стороне доказывать свое знание о некоторой информации без раскрытия самой информации. Этот важный концепт привлек много внимания и был затем усовершенствован в последующих работах.
Канонически доказательство с нулевым разглашением должно соответствовать следующим трем критериям:
Понятие знания играет фундаментальную роль в концепции доказательств с нулевым разглашением. Знание описывает информацию или данные, которые доказывающая сторона знает или обладает ими. Это может быть, например, секретный ключ, пароль, номер паспорта и т.п.
Доказательство знания заключается в том, чтобы, используя математические и криптографические методы, убедить проверяющую сторону, что доказывающая сторона реально обладает знанием, не раскрывая при этом сами данные или информацию.
Примером реализации идеи может служить неинтерактивный протокол ZK-SNARK (Zero-Knowledge Succinct Non-Interactive Argument of Knowledge). Неинтерактивность в данном случае подразумевает, что доказательство представляет собой блок данных и не требует прямого взаимодействия сторон протокола.
Цифровая подпись – это важный компонент для создания безопасных и приватных ZK-доказательств, позволяющий доказывающей стороне аутентифицировать себя и подтверждать правильность утверждений без раскрытия конфиденциальных данных. Цифровая подпись позволяет доказать, что отправитель знает закрытый ключ, который соответствует открытому ключу, используемому для верификации.
Подпись также обеспечивает подтверждение целостности данных. В ZK-доказательствах отправитель может использовать цифровую подпись для демонстрации того, что данные не были изменены после их подписания.
Цифровая подпись может использоваться в ZK-доказательствах для подтверждения правильности определенных операций без раскрытия конкретных данных. Например, отправитель может подписать хеш данных и предоставить его для верификации вместо самих данных.
Конечно же, ZK-доказательства для повышения конфиденциальности транзакций и масштабируемости имеют важное значение в мире блокчейна как в наиболее подготовленной для инновация сфере. Они позволяют осуществлять анонимные транзакции без раскрытия их деталей или личности участников. Так работает, например, блокчейн Zcash, а сеть Ethereum использует ZK-Rollups для создания сжатых доказательств о состоянии целой группы транзакций, что позволяет значительно увеличить производительность блокчейна.
ZK-доказательства могут использоваться в полях аутентификации и контроля доступа, чтобы продемонстрировать знание пароля или криптографического ключа, не раскрывая сам пароль или ключ.
ZK-доказательства также используются в системах электронного голосования, где они позволяют избирателям продемонстрировать легитимность своего волеизъявления, не раскрывая подробностей голосования, защищая целостность избирательного процесса.
Доказательства с нулевым разглашением могут улучшить конфиденциальность транзакций в цифровых валютах центрального банка (CBDC), облегчая частные транзакции и поддерживая анонимность пользователей. Балансируя между конфиденциальностью и прозрачностью транзакций CBDC, ZKP обеспечивает возможность аудита без раскрытия специфики транзакции. Например, в технологии цифрового рубля ZKP можно использовать для повышения конфиденциальности, а также для сохранения анонимности при трансграничных переводах между разрабатываемым белорусским цифровым рублем и перспективной единой цифровой валютой БРИКС.
В качестве еще одного приложения можно привести Filecoin, децентрализованное хранилище данных, которое использует ZK-SNARK для обеспечения безопасной и эффективной проверки целостности данных, хранящихся на сети.
Доказательства с нулевым разглашением могут подвергаться различным видам атак:
Есть и другие недостатки ZKP, не связанные с информационной безопасностью.
Разработка и проверка ZK-доказательств может быть трудоемкой с точки зрения ресурсов и вычислений, особенно для сложных вариантов реализации технологии. Увеличение времени обработки транзакций и объема вычислительной работы может затруднить масштабирование блокчейн-систем.
Кроме того, ZK-доказательства добавляют новый уровень сложности к исходной информационной системе, затрудняя ее аудит и проверку протокола. В свою очередь, это создает риск в части информационной безопасности и эксплуатации незамеченных багов.
Уже сегодня технологию доказательства с нулевым разглашением в совокупности с блокчейнами и распределенными реестрами можно эффективно использовать в сфере защиты данных, в том числе и ПДн. При этом сами данные могут вообще не передаваться по внешней сети, а пользователь сможет в режиме онлайн отслеживать согласия на обработку.
В настоящее время у технического комитета ISO/IEC JTC 1/SC 27 Information security, cybersecurity and privacy protection находятся в разработке рекомендации по сохранению конфиденциальности, основанные на доказательствах с нулевым разглашением (ISO/IEC WD 27565.3) [1].
Этот документ будет содержать рекомендации по использованию доказательств с нулевым разглашением для улучшения конфиденциальности путем снижения рисков, связанных с совместным использованием или передачей персональных данных между организациями и пользователями, путем сведения к минимуму объема передаваемой информации. В нем будут приведены несколько функциональных требований ZKP, относящихся к целому ряду различных вариантов бизнес-использования, а затем описано, как можно использовать различные модели ZKP для надежного удовлетворения этих функциональных требований.