zk-SNARK против zk-STARK: различия в технологиях с нулевым разглашением
Перевод материала с Panther Academy
Какой бы прекрасной ни была идея публичного и неконтролируемого блокчейна, без конфиденциальности данных Web3 будущее может выглядеть как антиутопия, в которой каждая отдельная транзакция оставляет четкий след, открытый для публики.
Так же отсутствие масштабируемости может серьезно ограничить перспективы внедрения блокчейна. Без ущерба для децентрализации нынешнее состояние технологии блокчейна просто не может поддерживать приложения, которые достигают массового внедрения.
Затем появились доказательства с нулевым разглашением — единственное решение обеих проблем.
ZKP — решение загадки конфиденциальности/масштабируемости блокчейна
Доказательство с нулевым разглашением (zero-knowledge proof - ZKP) позволяет одной стороне проверить заявление о том, что транзакция действительна или правильна, без необходимости предоставления дополнительной информации о транзакции. Это способ доказать подлинность транзакции без раскрытия конфиденциальной информации.
ZK-доказательства не только могли бы обеспечить действительно частные транзакции, но и могли бы помочь таким сетям, как Ethereum, масштабироваться.
Чтобы доказательство с нулевым разглашением работало, оно должно соответствовать трем условиям — полноте, надежности и нулевому разглашению. ZKP могут быть одного из двух типов — интерактивные и неинтерактивные. Интерактивные доказательства с нулевым разглашением требовали постоянного взаимодействия между доказывающим и проверяющим до тех пор, пока проверяющий не подтвердит истинность утверждений доказывающего.
Неинтерактивные ZKP не требуют такого взаимодействия, а одного обмена информацией достаточно для удовлетворения обеих сторон. Наиболее известными неинтерактивными ZKP являются zk-SNARK и zk-STARK. В этой статье мы рассмотрим, что такое zk-SNARK и zk-STARK, их различия, области применения и варианты использования.
Что такое zk-SNARK?
zkSNARK (Zero-knowledge Succinct Non-interactive Argument of Knowledge) — это сокращение от «Краткий неинтерактивный аргумент знаний с нулевым разглашением», тип неинтерактивного доказательства с нулевым разглашением, широко используемый сегодня. Протоколы конфиденциальных монет, такие как Zcash, используют zk-SNARK, чтобы предложить защищенный блокчейн, обеспечивая при этом достаточное доказательство того, что каждая защищенная транзакция действительна.
Чтобы понять, как работают zk-SNARK, мы должны рассмотреть каждую букву аббревиатуры:
- ZK: Эта пара представляет собой «нулевое знание», означающее, что zk-SNARK не предоставляет никакой дополнительной информации, кроме обоснованности утверждений отправителя. Любая информация, описывающая характер сделки (транзакций), ее участников и стоимость обмена, утаивается от верификатора.
- S: Эта буква означает «краткий» (succinct), что означает, что доказательства имеют небольшой размер (занимают мало места), прокладывая путь для быстрой и легкой проверки.
- N: Обозначает неинтерактивный, что означает, что между доказывающим и проверяющим требуется минимальное взаимодействие или вообще не требуется. Все, от генерации доказательства до отправки и проверки, происходит в рамках одной транзакции.
- ARK : представляет «Аргумент знания» (Argument of Knowledge), и эта часть добавляет качество вычислительной надежности к zk-SNARK. Проще говоря, злоумышленник вряд ли сможет обмануть систему, не имея знаний, подтверждающих его заявление (т. е. не обладая основной информацией, которую он пытается подделать). Это основано на теории о том, что злоумышленник имеет ограниченную вычислительную мощность, а это означает, что любой человек с неограниченной вычислительной мощностью может создавать фальшивые доказательства. В некоторых протоколах zk-SNARK есть способ предотвратить подобные атаки.
У zk-SNARK есть важная составляющая: они требуют доверенной установки между доказывающим и проверяющим. Для построения доказательств с нулевым разглашением с помощью zk-SNARK необходим набор общедоступных параметров, а также создание криптографических ключей. Эти параметры можно сравнить с «правилами» протокола, и они обычно закодированы. Между тем, ключи делают возможной конфиденциальность.
Zcash — один из передовых протоколов сохранения конфиденциальности, использующих zk-SNARK. Кроме того, некоторые популярные ZK-роллапы и блокчейны уровня 2 используют технологию zk-SNARK для обеспечения масштабируемости традиционных сетей блокчейнов, таких как Ethereum.
Что такое zk-STARK?
Как еще один тип неинтерактивного доказательства с нулевым разглашением, zk-STARK менее популярен, чем zkSNARK, в основном потому, что это более новая модель. Как и в случае с zk-SNARK, мы будем оценивать каждую букву аббревиатуры, чтобы узнать, как работают zk-STARK.
- ZК: означает «нулевое знание», подразумевая, что zk-STARK подтверждает транзакции или взаимодействия без раскрытия какой-либо базовой информации, за исключением того, что они верны и достоверны.
- S: Это означает «масштабируемый» (scalable), подчеркивая, как эти доказательства с нулевым разглашением направлены на повышение масштабируемости блокчейна. zk-STARK позволяют разработчикам выполнять вычисления и хранить данные вне сети, экспоненциально увеличивая масштабируемость. Доказательства с нулевым разглашением проверяют эти действия вне сети, которые затем отправляются онлайн заинтересованным сторонам для их проверки.
- T: означает «прозрачный» (transparent), и это качество отмечает одно из самых значительных различий между zk-STARK и zk-SNARK. zk-STARK использует общедоступную случайность для генерации параметров, что устраняет необходимость в доверенной установке.
- ARK: «Аргумент знания» подразумевает то же, что и в zk-SNARK, но zk-STARK использует другой подход к вычислениям. Они используют хэш-функции , устойчивые к коллизиям, что эффективно устраняет необходимость в доверенной установке.
Технология zkSTARK более поздняя, чем zk-SNARK, и впервые ее разработала компания Starkware с роллап решениями. Используя zk-STARK, можно вычислить несколько тысяч транзакций в пакетах (batches)вне сети и предоставить единственное доказательство zkSTARK для подтверждения действительности транзакций в сети.
zk-SNARK против zk-STARK: сходства и различия
Сходства. zk-SNARK и zk-STARK имеют несколько общих черт.
- Это неинтерактивные протоколы доказательства с нулевым разглашением, требующие небольшого взаимодействия между доказывающим и проверяющим. Генерация, отправка и проверка доказательств обычно выполняются в рамках одной транзакции.
- Оба протокола повышают масштабируемость блокчейна. Доказательства с нулевым разглашением намного меньше, чем средняя биткойн-транзакция, и проверяются намного быстрее. Быстрая проверка и меньшее количество блоков означают большую масштабируемость для таких сетей, как Ethereum.
Отличия. zk-SNARK и zk-STARK отличаются по крайней мере в четырех основных моментах:
Прозрачность. zk-SNARK нуждается в начальной доверенной установке для генерации случайности, необходимой для создания доказательств с нулевым разглашением. Эти параметры обычно хранятся у небольшой группы для их защиты. Если параметры попадут в чужие руки, недобросовестные участники могут использовать их для создания ложных доказательств.
zk-STARK придерживаются другого подхода, используя устойчивую к коллизиям криптографию, чтобы устранить необходимость в частных церемониях генерации параметров. Без доверенных установок параметры генерации случайности являются общедоступными, что ограничивает централизацию и повышает прозрачность.
Безопасность. zk-SNARK используют начальную установку для генерации параметров и, в соответствии со своей установкой, являются вычислительно надежными. Однако их вычислительная состоятельность предполагает, что доказатели имеют ограниченную вычислительную мощность. Однако, когда проверяющий использует неограниченное количество вычислительной мощности, он может нарушить систему и создать поддельные доказательства. Таким образом, zk-SNARK теоретически уязвимы к атакам квантовых вычислений.
zk-STARK не нуждаются в начальной доверенной установке, выбирая вместо этого устойчивый к коллизиям подход. Таким образом, они не требуют больших вычислительных затрат, как zk-SNARK, устраняя угрозу быть скомпрометированными неограниченной вычислительной мощностью квантовых вычислений.
Масштабируемость. zk-SNARK имеют меньший размер в байтах по сравнению с zk-STARK, но их вычислительные потребности заставляют их медленнее генерировать доказательства по сравнению с zk-STARK. zk-SNARK потребляют меньше газа, чем zk-STARK, и быстрее проверяют доказательства из-за разницы в размере байта.
Хотя может показаться, что zk-SNARK более масштабируемы из-за более быстрой проверки доказательств, zk-STARK быстрее генерируют доказательства и быстрее масштабируются, потребляя меньше газа при входе в цепочку благодаря использованию вычислений и хранения вне цепочки. Однако в периоды низкой пропускной способности (создается мало доказательств) проверка доказательств zk-STARKs занимает гораздо больше времени.
Структура. zk-SNARK построены на эллиптических кривых, которые повышают безопасность и конфиденциальность, исходя из предположения, что найти логарифм случайного элемента эллиптической кривой относительно публичной базовой точки невозможно.
zk-STARK, с другой стороны, использует бережливую криптографию - устойчивые к коллизиям хэш-функции - для обеспечения масштабируемости и безопасности.
Приложения и примеры использования
zk-SNARK являются более популярными из двух основных неинтерактивных доказательств нулевого знания.
zk-SNARK быстро генерируют и проверяют доказательства нулевого знания, и протоколы, повышающие конфиденциальность, широко их используют.
Некоторые протоколы конфиденциальности, такие как Panther, имеют встроенные механизмы выборочного раскрытия информации, которые позволяют пользователям делиться информацией, защищенной блокчейном, с доверенными третьими лицами.
zk-SNARK также могут быть адаптированы для проверки личности, позволяя пользователям проходить требования KYC и AML, не подвергая риску свою конфиденциальную информацию. Используя zk-SNARK, эти протоколы могут позволить пользователям предоставлять вместо документов подтверждение своей личности с нулевым уровнем знаний, подтверждая, что у них есть необходимые данные для проверки, не раскрывая никакой дополнительной информации. zk-SNARK также были приняты для обеспечения конфиденциальности в децентрализованных финансах, играх, ZK-роллапах и владении активами.
zk-STARK лучше масштабируются, чем zk-SNARK. Поэтому они были приняты решениями для масштабирования блокчейна, такими как ZK-роллапы и решения для блокчейна второго уровня. С помощью zk-STARK эти протоколы вычисляют транзакции и хранят данные вне сети, а затем предоставляют доказательства нулевого знания в сети для обновления состояния сети.
Узнай больше о будущем в наших проектах
Web 3.0 - Всё про мир веб 3.0: блокчейн, IoT, p2p-системы, AI/bigdata и прочее.
DeWeb - NFTs. GameFi. DAOs. Metaverse. Future Web.