Что такое доказательства zk-SNARK и zk-STARK?
Основы
Энтузиасты криптовалют высоко ценят приватность, считая её важной для достижения фунгибильности — ключевого свойства денег для их широкого принятия. Большинство держателей криптовалют предпочитают не раскрывать свои балансы и историю транзакций. Для обеспечения приватности в блокчейне были разработаны различные криптографические методы. Двумя из наиболее заметных являются доказательства zk-SNARK и zk-STARK.
Доказательства zk-SNARK и zk-STARK расшифровываются как zero-knowledge succinct non-interactive argument of knowledge и zero-knowledge succinct transparent argument of knowledge соответственно. zk-SNARK уже применяются в Zcash, в блокчейн-платежной системе JP Morgan Chase и как способ аутентификации клиентов на серверах. Хотя zk-SNARK получили широкое признание, zk-STARK были предложены как усовершенствованная версия протокола, решающая некоторые проблемы, с которыми ранее сталкивались zk-SNARK.
Притча о пещере Али-Бабы
Криптограф Жан-Жак Кискватер (Jean-Jacques Quisquater) и его соавторы опубликовали в 1990 году статью под названием «How to Explain Zero-Knowledge Protocols to Your Children», в которой концепция нулевого знания была объяснена через притчу о пещере Али-Бабы. С тех пор появилось несколько адаптаций истории, но основная идея остаётся прежней.
Сюжет притчи вращается вокруг кольцевой пещеры с одним входом и волшебной двери, разделяющей два пути. Чтобы пройти через дверь, нужно прошептать правильные секретные слова. В истории Эмма хочет доказать Давиду, что знает секретные слова, но не раскрывать их. Для этого Давид соглашается остаться у входа, пока Эмма входит в пещеру и идёт в конец одного из двух путей. В данном примере Эмма выбирает Путь 1.
Давид зовёт Эмму из входа и просит выйти через конкретный путь, в данном случае через Путь 2. Если Эмма знает секрет, она появится из указанного пути. Этот процесс можно повторять несколько раз, чтобы убедиться, что Эмма не угадывает случайно.
История о пещере Али-Бабы служит примером нулевых доказательств, которые являются важной частью протоколов zk-SNARK и zk-STARK. Такие доказательства позволяют подтвердить обладание определённой информацией, не раскрывая ничего о самой информации.
Как работают zk-SNARK?
Идея нулевых доказательств была применена для создания первой широко доступной приватной монеты Zcash с использованием zk-SNARK. В отличие от других проектов, ориентированных на приватность и использующих кольцевые подписи и другие приёмы для маскировки транзакций, Zcash принципиально меняет способ обмена данными. Транзакции в сети Zcash остаются зашифрованными, но при этом могут быть проверены как валидные с помощью нулевых доказательств, что позволяет обеспечивать соблюдение правил консенсуса без раскрытия данных каждой транзакции. Однако функции приватности в Zcash по умолчанию не активны и требуют ручной настройки.
Нулевые доказательства позволяют одному человеку доказать другому, что некоторое утверждение истинно, не раскрывая при этом никакой информации, кроме факта истинности утверждения. Участники нулевых доказательств — провайдер доказательства и проверяющий, а секретное утверждение называется свидетельством (witness). Цель нулевых доказательств — раскрыть между сторонами как можно меньше данных.
В аббревиатуре zk-SNARK «succinct» означает, что доказательства имеют небольшой размер и быстро проверяются, а «non-interactive» указывает на минимальное или нулевое взаимодействие между доказывающим и проверяющим. Более старые версии протоколов нулевого знания требовали непрерывного обмена сообщениями между сторонами, делая их «интерактивными» ZK-доказательствами. В «неинтерактивных» конструкциях требуется обмен только одним доказательством.
Хотя zk-SNARK требуют начальной доверенной настройки между доказывающим и проверяющим, исследователи работают над альтернативами, уменьшающими объём доверия, необходимого в процессе. Фаза начальной настройки важна для предотвращения поддельных расходов; в Zcash она известна как церемония генерации параметров.
Свойство soundness в zk-SNARK подразумевает, что злоумышленник имеет ограниченные вычислительные ресурсы, и обладание огромной вычислительной мощностью могло бы позволить создать фальшивые доказательства. Именно поэтому квантовые компьютеры рассматриваются как потенциальная угроза для zk-SNARK и блокчейн-систем.
Наконец, нулевые доказательства быстро проверяются и занимают меньше места по сравнению со стандартными биткойн-транзакциями, что делает их пригодными как для приватности, так и для решения задач масштабируемости.
Как работают zk-STARK?
Эли-Бен Сассон (Eli-Ben Sasson), профессор Техниона — Израильского технологического института, создал zk-STARK как альтернативу zk-SNARK. zk-STARK считаются более эффективными — потенциально быстрее и дешевле в зависимости от реализации. В отличие от zk-SNARK, zk-STARK не требуют начальной доверенной настройки, отсюда и буква «T» в названии — «transparent».
zk-STARK опираются на коллизиестойкие хеш-функции, что исключает числово-теоретические предположения, характерные для zk-SNARK, которые являются вычислительно затратными и теоретически уязвимыми для атак квантовых компьютеров. Такой подход упрощает криптографические допущения.
Однако у zk-STARK есть по крайней мере один существенный недостаток: размеры доказательств больше, чем у zk-SNARK. Это различие в объёме данных может ограничивать их применение в некоторых сценариях, но эта проблема подлежит дальнейшему тестированию и оптимизации.
Заключение
Потенциал zk-SNARK и zk-STARK в мире криптовалют очевиден, поскольку оба протокола отвечают растущему спросу на приватность. Эти технологии многообещающи и могут сыграть значительную роль в более широком принятии криптовалют.