Обратная сторона zero knowledge: Бэкдор в zk-SNARK, который невозможно обнаружить
Главная Технологии, Хакеры, Криптовалюты

Александр Дрыгин, эксперт компании SmartDec, которая занимается исследованиями в области безопасности смарт-контрактов, рассказал о том, какие угрозы для криптовалюты может принести использование SNARK-протокола.

Используя протокол доказательства с нулевым разглашением из семейства SNARK, вы никогда не знаете правил игры. Эти правила устанавливают участники процедуры генерации доверенных параметров системы, однако после ее завершения проверить эти правила не представляется возможным. Вы можете поверить в корректность генерации, но, если вы в ней не участвовали, 100-процентных гарантий у вас нет.

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

Одно из наиболее изученных, а что важнее реализованных — семейство протоколов zk-SNARK (Zero-Knowledge Succinct Non-Interactive Argument of Knowledge). Такой протокол используется, в частности, в криптовалюте Zcash.

Популярность SNARK оправдана: протокол позволяет нам доказывать факты с нулевым разглашением, доказательства относительно невелики, и все это с гарантиями безопасности, которые дает нам современная криптография на эллиптических кривых.

Однако без минусов, как обычно, не обошлось: основной недостаток этого семейства zk-протоколов — необходимость в генерации начальных (доверенных) параметров системы. Этот процесс также называют церемонией. Ведь для генерации используются подлежащие уничтожению секретные параметры — их называют токсичными. Главная проблема в том, что в случае сохранения токсичных параметров, владеющий ими сможет доказывать ложные факты (в случае с Zcash — генерировать криптовалюту из воздуха).

Генерация начальных параметров

Далее будет лишь поверхностно затронута математика, лежащая в основе SNARK протоколов. Если вам интересно в ней разобраться — советую цикл статей от Виталика Бутерина на эту тему.

Давайте рассмотрим процесс генерации доверенных параметров. Итак, у нас есть постановка задачи, факт решения которой мы хотим доказывать с нулевым разглашением. Например, мы хотим проверять знание корня квадратного уравнения:

x² − 6x + 5 = 0

По протоколу мы должны привести это уравнение к виду QAP (Quadratic Arithmetic Programs). Далее для генерации и проверки доказательств необходимо получить начальные параметры. Оставим за скобками то, как из QAP получаются доверенные параметры, что это за параметры и как именно с их помощью можно проверять доказательства, чтобы не углубляться в тяжелую математику. Отметим лишь, что параметры представлены в виде точек на эллиптической кривой:

Получены они из постановки задачи в виде QAP при помощи необратимой операции умножения на эллиптической кривой с использованием токсичных параметров.

Теперь, когда начальные параметры созданы, мы можем начать работу с доказательствами. В нашем случае можно сгенерировать и проверить доказательство того, что известен корень уравнения (например, x = 1). При этом доказательство не будет раскрывать значение секрета (корня уравнения) и будет состоять из нескольких точек эллиптической кривой.

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

Церемония

Серьезные проекты, использующие SNARK-протоколы, отлично осведомлены о существовании проблемы токсичных параметров и со всей серьезностью относятся к корректности процедуры генерации начальных параметров. Самый известный пример — это церемония Zcash.

Первая церемония прошла в октябре 2016 года, в ней приняли участие шесть известных разработчиков из криптовалютного сообщества. Протокол церемонии предоставляет достаточные гарантии безопасности. А именно: если хотя бы один участник церемонии будет честным — правильно уничтожит свою часть токсичных параметров — и не будет взломан, то церемония будет безопасной.

Вторая, более совершенная церемония генерации доверенных параметров прошла в 2017−2018 годах. Она состояла уже из двух этапов, в первой части (Powers of Tau) приняли участие 87 человек, в финальной (Sapling MPC) — более 90.

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

В заключение стоит отметить, что критичность церемонии и вытекающих из нее угроз следует рассматривать отдельно для каждой конкретной системы. И в то же время для всех систем, использующих SNARK протоколы, необходима надежная процедура генерации начальных параметров с гарантиями уничтожения токсичных параметров.

Подписывайтесь на наш канал в Яндекс.Дзен. Много эксклюзивных историй, полезных материалов и красивых фото.

Читайте также:
Пожалуйста, опишите ошибку
Закрыть