Найти в Дзене

zk-STARKs и zk-SNARKs: в чем разница и что лучше

Оглавление

Доказательства с нулевым разглашением (zero-knowledge proof, или ZKP) — это криптографические протоколы, которые не позволяют сторонним лицам получить доступ к данным или нарушить конфиденциальность транзакций. И zk-STARKS, и zk-SNARK являются типами неинтерактивных ZKP, однако они отличаются друг от друга по ряду свойств.

Что такое zk-STARKs и zk-SNARKs, чем они отличаются и что лучше | #BTC_2TheMoon
Что такое zk-STARKs и zk-SNARKs, чем они отличаются и что лучше | #BTC_2TheMoon

ZKP дает возможность одному человеку (тот, кто утверждает что-то) доказать подлинность утверждения другому человеку (тот, кто проверяет утверждение) без раскрытия какой-либо подтверждающей информации (пруфов).

Идею «технологии нулевых разглашений» предложили в 1980-х годах Шафи Голдвассер, Сильвио Микали и Чарльз Рэкофф из Массачусетского технологического института.

Работа ZKP должна отвечать следующим трем требованиям:

  • Полнота/неопровержимость: если утверждение (или заявление) является правдивым, то честный доказывающий сможет убедить честного проверяющего в подлинности утверждения, при условии, что оба следуют правилам протокола.
  • Устойчивость: если утверждение не соответствует действительности, существует лишь малая вероятность того, что нечестный доказывающий сможет убедить в этом честного проверяющего.
  • Нулевая осведомленность: если утверждение верно, единственное, что знает проверяющий, — это то, что утверждение верно.
Далее по тексту: доказывающий — prover или прувер, проверяющий — verifier или верификатор.

Как работают доказательства с нулевым разглашением

  • Интерактивные доказательства с нулевым разглашением (Interactive zero-knowledge proofs, или IZKP) включают в себя повторяющиеся взаимодействия между доказывающим и проверяющим.

Прувер шлет верификатору правдивые утверждения, чтобы тот неоднократно продемонстрировал свое знание факта. Процесс повторяется до тех пор, пока верификатор не убедится в правдивости прувера.

  • Неинтерактивные доказательства с нулевым разглашением (Non-Interactive Zero Knowledge, или NIZK) являются противоположностью IZKP-процесса. Они требуют, чтобы обе стороны обменялись одной транзакцией, которая проверяет истинность доказательства только один раз.

Реальные реализации ZKP используют несколько криптографических техник, таких как неинтерактивные доказательства с нулевым разглашением Шнорра (Schnorr Non-Interactive Zero Knowledge proof, или Schnorr NIZK), чтобы сделать возможной проверку вычислительного утверждения.

Schnorr NIZK позволяет продемонстрировать знакомство с дискретным логарифмом, не раскрывая его значения. Многие криптографические протоколы могут выиграть от его использования в качестве ценного компонента, гарантирующего, что участники честно придерживаются спецификаций протокола.

Например, получатель транзакции может использовать ZKP, чтобы убедиться, что отправитель имеет достаточный баланс на своем кошельке, не узнав при этом ничего о балансе. То есть, использование ZKP позволяет обеспечить конфиденциальность и безопасность информации пользователей.

Биткоин не использует доказательства нулевого разглашения. Криптографический алгоритм, лежащий в основе Bitcoin, называется алгоритмом цифровой подписи с использованием эллиптических кривых (ECDSA) и не использует методы ZKP для обеспечения повышенного уровня конфиденциальности и безопасности.

Цифровые подписи чаще всего используются для подписания транзакций и отправки BTC, а ECDSA позволяет использовать закрытый ключ для подписания любого сообщения.

Что такое zk-SNARK и как он работает

Необходимость доверенной настройки — одна из ключевых характеристик zk-SNARKs. Она требует создания криптографических ключей, которые служат доказательством, обязательным для проверки и проведения конфиденциальных транзакций.

«Zero-Knowledge Succinct Non-Interactive Argument of Knowledge», или «zk-SNARK», относится к архитектуре доказательств, в которой можно продемонстрировать владение определенным знанием, например приватным ключом, не раскрывая это знание и не взаимодействуя ни с прувером, ни с верификатором.

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

Отправитель транзакции может сделать все это с помощью zk-SNARKs, не раскрывая ни адресов, ни сумм транзакций.

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

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

Несмотря на то что у zk-SNARKs нет явных недостатков, человек, обладающий приватным ключом, необходимым для настройки протокола, может сфабриковать доказательства и создать фальшивые монеты. Поэтому конфиденциальные криптовалюты на основе zk-SNARK должны гарантировать, что ни одна сторона не имеет доступа к приватному ключу настройки протокола.

Что такое zk-STARK и как он работает

zk-STARK — один из двух прозрачных и масштабируемых методов повышения конфиденциальности. Благодаря общедоступным случайным данным, используемым верификатором, отпадает необходимость в доверенной настройке.

«Zero-Knowledge Scalable Transparent Argument of Knowledge», или «zk-STARK», является разновидностью технологии криптографических доказательств с нулевым разглашением, которые позволяют передавать проверенные данные или выполнять вычисления без раскрытия этих данных или их анализа третьей стороной.

zk-SNARKs, которые использовались для создания zk-защищенных систем до разработки zk-STARKs, решали проблему конфиденциальности участвующих сторон, но им приходилось настраивать zk-защищенную систему. zk-STARKs развивают технологию ZKP, отходя от требования доверенной настройки протокола.

Также с помощью STARK улучшается масштабируемость и решаются проблемы конфиденциальности эксклюзивных блокчейнов. В настоящее время исследования zk-STARKs, проводимые пионером STARK-технологии компанией StarkWare Industries, в первую очередь касаются масштабируемости, а вопросы конфиденциальности будут решены позже.

Технология позволяет разработчикам переносить вычисления и хранение данных за пределы основной цепи (off-chain). При этом STARK-протокол создает доказательства, которые подтверждают правильность этих вычислений. Эти доказательства затем публикуются обратно в блокчейн, чтобы любой желающий мог их проверить. STARK позволяют существующей блокчейн-инфраструктуре экспоненциально масштабироваться без ущерба для вычислительной целостности, поскольку большая часть вычислений выполняется вне цепи.

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

zk-STARKs и zk-SNARKs: что лучше

Основные отличия протоколов zk-STARK и zk-SNARK
Основные отличия протоколов zk-STARK и zk-SNARK

Исходя из вышеизложенного, zk-STARKs явно выигрывают в сравнении с zk-SNARKs. По сравнению с zk-SNARKs они обеспечивают большую масштабируемость, прозрачность и безопасность блокчейна. Однако важно помнить, что zk-STARKs имеют больший размер доказательства и требуют больше времени для проверки.

Предполагается, что zk-SNARKs используют только 24% газа для оплаты сетевой комиссии, а значит использование zk-SNARKs для транзакций значительно дешевле для конечного пользователя. Кроме того, zk-STARKs все еще находятся на начальном этапе, и у них еще много времени, чтобы доказать свою эффективность разработчикам и другим заинтересованным сторонам в экосистеме блокчейна.

Если разработчики начнут активно внедрять в свои решения технологии нулевого разглашения, то zk-SNARKs будут иметь гораздо большую поддержку, чем zk-STARKs.

Что внутри | #BTC_2TheMoon | Биткоин, блокчейн, криптовалюта | Дзен