Применение доказательств с нулевым разглашением (ZKP) для конфиденциальных транзакций с ЦФА
Применение доказательств с нулевым разглашением (ZKP) для конфиденциальных транзакций с ЦФА
Блокчейн по своей природе открыт: любой участник сети может проследить историю транзакций. Для цифровых финансовых активов это создаёт проблему — инвестор может не желать, чтобы размер его портфеля и его сделки были видны другим участникам платформы. Доказательства с нулевым разглашением (Zero-Knowledge Proofs, ZKP) предлагают технологическое решение этой проблемы.
Что такое ZKP простыми словами
Доказательство с нулевым разглашением — это криптографический протокол, позволяющий одной стороне доказать другой, что некое утверждение истинно, не раскрывая при этом никаких дополнительных сведений.
Пример из жизни: вы хотите доказать, что вам больше 18 лет, не называя точную дату рождения. ZKP позволяет именно это — подтвердить соответствие условию (старше 18) без раскрытия самого факта (дата рождения).
В контексте ЦФА это может означать: доказать, что у вас достаточно средств для покупки, не раскрывая точный баланс. Или подтвердить, что вы прошли идентификацию, не раскрывая личные данные.
Применение ZKP к транзакциям с ЦФА
Защита конфиденциальности баланса
В классическом блокчейне (например, на базе Ethereum или Hyperledger) баланс каждого кошелька виден всем. При работе с ЦФА это означает, что конкурент, контрагент или любой другой участник платформы может узнать размер ваших активов.
ZKP позволяет скрыть сумму и отправителя транзакции, предоставляя криптографическое доказательство её валидности. Верификатор (узел сети или смарт-контракт) проверяет, что:
- У отправителя действительно есть необходимое количество ЦФА.
- Транзакция подписана владельцем.
- Сумма не отрицательна.
При этом ни балансы, ни суммы отдельных транзакций не раскрываются.
Конфиденциальные аукционы
При первичном размещении ЦФА заявок цена, предложенная каждым участником, может быть скрыта с помощью ZKP. Смарт-контракт проверяет корректность заявки (наличие средств, соответствие параметрам аукциона) без раскрытия цены другим участникам.
Соответствие KYC/AML без раскрытия данных
Оператор может использовать ZKP для подтверждения, что клиент прошёл идентификацию, не передавая его персональные данные в блокчейн. Данные хранятся у оператора (off-chain), а в реестре фиксируется только криптографическое подтверждение.
Технические реализации ZKP
Существует несколько типов доказательств с нулевым разглашением, различающихся по вычислительной сложности и уровню конфиденциальности:
| Тип ZKP | Особенности | Вычислительная нагрузка | Уровень зрелости |
|---|---|---|---|
| zk-SNARKs | Компактные доказательства, быстрый verify | Высокая (генерация) | Высокий (Zcash, Ethereum) |
| zk-STARKs | Не требуют доверенной настройки | Очень высокая | Средний |
| Bulletproofs | Баланс между размером и скоростью | Средняя | Средний |
| PLONK | Универсальная система, гибкая | Средняя | Средний |
Проблема: конфликт ZKP и антиотмывочного законодательства
Главное препятствие для внедрения ZKP в российские системы ЦФА — требования законодательства о противодействии легализации доходов (№ 115-ФЗ). Банк России требует от операторов прозрачности операций для целей финансового мониторинга.
Оператор обязан:
- Хранить все данные о транзакциях и предоставлять их Росфинмониторингу по запросу.
- Иметь возможность идентифицировать стороны каждой сделки.
- Отслеживать подозрительные операции.
Полная конфиденциальность транзакций через ZKP противоречит этим требованиям. Возможное решение — «схема с восстановлением»: оператор хранит ключи дешифрования и может раскрыть детали транзакции по запросу регулятора. Это снижает уровень конфиденциальности, но удовлетворяет требованиям АМЛ/КВТ.
Текущее состояние внедрения
Ни одна из действующих российских платформ ЦФА не реализовала ZKP в полном объёме. Технически это связано с:
- Относительной молодостью технологии и малым числом разработчиков ZKP в России.
- Высокими вычислительными затратами, несовместимыми с текущей пропускной способностью платформ.
- Отсутствием нормативных требований к конфиденциальности транзакций с ЦФА.
Однако отдельные элементы криптографической защиты конфиденциальности применяются: например, шифрование данных о балансе при передаче между узлами сети.
Часто задаваемые вопросы
Вопрос: Могу ли я потребовать от оператора скрыть мои транзакции с ЦФА?
Ответ: Закон не даёт вам такого права. Оператор обязан обеспечить прозрачность для целей финансового мониторинга. Если оператор внедрит ZKP, он будет использовать схему с возможностью раскрытия для регулятора.
Вопрос: ZKP замедляет транзакции?
Ответ: Да, генерация доказательства требует дополнительных вычислений. В зависимости от типа ZKP и сложности транзакции замедление может составлять от десятков миллисекунд до нескольких секунд.
Вопрос: Может ли ЦБ РФ обязать операторов внедрить ZKP?
Ответ: Теоретически да, если будет признано, что конфиденциальность транзакций необходима для защиты инвесторов. Практически — это потребует серьёзной переработки технических стандартов.
Вопрос: Если ZKP скрывает детали транзакции, как налоговая будет проверять сделки?
Ответ: Оператор, как налоговый агент или информационный посредник, будет предоставлять налоговому органу данные о сделках в расшифрованном виде. ZKP защищает конфиденциальность от других участников сети, а не от государства.
Вопрос: Используется ли ZKP в зарубежных системах цифровых активов?
Ответ: Да. Zcash использует zk-SNARKs для защиты конфиденциальности транзакций. Aztec Network на Ethereum предлагает конфиденциальные смарт-контракты на базе zk-SNARKs. Но эти системы не регулируются как финансовые инфраструктуры в российском понимании.
Источники
- Федеральный закон №259-ФЗ — «О цифровых финансовых активах, цифровой валюте и о внесении изменений в отдельные законодательные акты Российской Федерации»
- Федеральный закон № 115-ФЗ — требования к финансовому мониторингу
- Информация ЦБ РФ — официальные материалы регулятора