ZKP – блокчейн. Союз скорого будущего
Как доказать, что у вас в кармане 100 рублей, не показывая банкноту проверяющему.
Ассоциация ФинТех внимательно следит за развитием технологий, применяемых в блокчейн-сфере. Мы выделяем ZKP в качестве передового способа усиления конфиденциальности в распределённых реестрах. Однако ZKP-протоколы до сих пор остаются недостаточно изученными в контексте блокчейн-технологий и тем более не стандартизированными для применения. Ассоциация ФинТех проводит исследования протоколов и заинтересована в стандартизации ZKP-протоколов для применения в финансовой сфере.
Недавно создатель Ethereum Виталик Бутерин рассказал о «масштабной и тихой технологической революции», которая произошла благодаря применению в блокчейне протокола доказательства с нулевым разглашением. Эта технология позволяет решить одну из проблем, наиболее остро стоящих перед блокчейн-сообществом, а именно обеспечение конфиденциальности передаваемых данных, когда детали операции и корректность транзакций должны подтверждаться участниками сети. В том числе эта проблема препятствует широкому использованию блокчейна корпорациями. Активно исследовать применение протокола в России уже начали разработчики blockchain-платформ.
Доказательство с нулевым разглашением (zero knowledge proof; ZKP) – это криптографический коммуникационный протокол, в котором есть по крайней мере две стороны: доказывающий и проверяющий. Цель доказывающего – убедить проверяющего в том, что некое вычислительное утверждение истинно, не раскрывая дополнительной информации. В самом простом понимании при помощи ZKP вы можете доказать, что у вас в кармане есть 100 рублей, не показывая банкноту проверяющему. Впервые группа криптографов выдвинула концепцию интерактивной системы доказательств с нулевым разглашением в 1985 году.
Почему Бутерин называет это революцией? Он объясняет так. Технология обеспечивает конфиденциальность, сводя при этом необходимость вычислений к минимуму: «Вместо проверки чего-то большого нужно проверить маленькое доказательство».
Развитие протоколов ZKP позволит реализовать много новых бизнес-кейсов на распределённых реестрах, где нужна конфиденциальность бизнес-процессов. Сейчас ZKP-протоколы активно исследуются мировым криптографическим сообществом, но зрелых решений с использованием ZKP ещё нет. Как нет и стандартов: ни NIST, ни ГОСТ, ни ISO… Наиболее известное на сегодня применение доказательства с нулевым разглашением – в анонимной криптовалюте Zcash, обеспечивающей её владельцам конфиденциальность расчётов. В концепрошлого года банк ING – один из наиболее активно развивающих блокчейн – объявил о запуске своего решения для распределённых реестров на основе ZKP, которое может быть востребовано в финансовом секторе, где важной задачей является не только сохранение конфиденциальности, но и соответствие регуляторным требованиям, таким как KYC.
Теория ZKP различает два типа доказательств: ZKP знания (ZKPK) подтверждает владение конфиденциальной информацией, а ZKP принадлежности (ZKPM) доказывает истинность утверждения о вхождении в некоторое множество, набор. Учитывая это, на наш взгляд, можно выделить три сценария применения, для которых протоколы с доказательством с нулевым разглашением подходят лучше всего и где в ближайшее время можно ждать «революции», в том числе и в России.
СОХРАНЕНИЕ КОНФИДЕНЦИАЛЬНОСТИ
Для сохранения конфиденциальности личности. Можно, например, доказать корректность личных данных, например, возраста и места проживания, не раскрывая более подробную информацию, такую как дата рождения и адрес. Идея идентификации при помощи протоколов ZKP заключается в том, что у пользователя есть набор атрибутов, которые подтверждены удостоверяющим центром. Например, для получения финансовой услуги Алисе нужно доказать, что ей больше 18 лет и она живёт в стране, которая входит в ЕАЭС. Алиса могла бы использовать доказательства с нулевым разглашением, чтобы подтвердить, что она соответствует определённым критериям. Например, она может использовать ZKRP (Rangeproof), чтобы доказать, что её возраст превышает 18 лет, и ZKSM, чтобы доказать, что она живёт в стране, которая принадлежит ЕАЭС. Это доказательство может быть передано проверяющему, который должен подтвердить информацию, чтобы разрешить Алисе воспользоваться некоторой услугой. Использование ZKP в этом случае позволит нивелировать риски кражи личных данных, слежки, социальной инженерии и т.д.
ПЕРЕДАЧА АКТИВОВ
Для передачи активов. Финансовые учреждения обычно требуют идентификации отправителя и получателя, а также типа и суммы активов. Протоколы ZKP допускают вариант сохранения конфиденциальности, когда сделка совершается между анонимными сторонами и в то же время гарантирует, что они и их активы удовлетворяют нормативным требованиям (подробнее об этом – в третьем сценарии). В общем случае рассматриваемое состояние системы – это (зашифрованный) баланс счёта каждого пользователя системы. Каждый баланс счёта шифруется с помощью аддитивно гомоморфной криптосистемы ключом владельца счёта. Транзакция уменьшает баланс счёта отправителя, одновременно увеличивая счёт получателя на соответствующую сумму. Если количество пользователей фиксировано и известно заранее, то транзакция может скрыть всю информацию об отправителе и получателе, одновременно обновив все остатки на счетах. Это обеспечивает высокую степень конфиденциальности. Если количество пользователей чрезвычайно велико, динамически изменяется или неизвестно отправителю, он должен выбрать «набор анонимов», которые будут включены в протокол.
СООТВЕТСТВИЕ РЕГУЛЯТОРНЫМ ТРЕБОВАНИЯМ
Для соответствия регуляторным требованиям. Важным типом приложений, в которых используются ZKP-протоколы, являются приложения, в которых регулирующий орган хочет контролировать некоторых участников. Системы, использующие ZKP, позволяют аудитору получить доказательства того, что бизнес-процесс удовлетворяет ряду требований, без необходимости подробно изучать, как они были исполнены. Одним из таких примеров может быть контроль уплаты налогов владельцем счёта; проверка, является ли банк или какое-либо другое финансовое учреждение платёжеспособным.
Регулирующий орган в таких случаях заинтересован в изучении «итоговых показателей», которые обычно выводятся из некоторых совокупных оценок, основанных на более детальных нижележащих данных, но регулятору необязательно знать все детали. Например, ответ на вопрос: «Не брал ли банк слишком много кредитов?» в итоге имеет один бит (Да/Нет) и может быть дан без детализации каждого отдельного кредита. Для того чтобы вычисления над скрытыми данными были полезны, вводимые сведения должны быть изначально корректны (проблема GIGO, «Мусор на входе – мусор на выходе»). В противном случае доказывать правильность вычислений было бы бессмысленно. Поэтому данные, которые используются для доказательств, должны, как правило, передаваться сторонами, которые не ангажированы доказывающему и вряд ли вступят в сговор с проверяющим.
Подводя итог, можно сказать, что использование протоколов ZKP отлично сочетается с блокчейном, такой союз позволит повысить конфиденциальность пользователей и одновременно создать доверие к используемым данным, поскольку блокчейн гарантирует неизменность записываемой в него информации. Использование протокола ZKP для своей цифровой валюты на блокчейне анализировал даже Банк Канады, правда, пока отказался от этой идеи. Но само внимание регулятора к этой технологии говорит о том, что всё больше игроков интересуются этим решением и в будущем мы можем увидеть много новых проектов с использованием ZKP.
Опубликовано: здесь