Перевод
Данный текст — вольный перевод статьи: https://blog.pantherprotocol.io/zk-snarks-vs-zk-starks-differences-in-zero-knowledge-technologies/. Думаю, пришло время углубиться в ZKp-решения: в 2023-2025 гг., а особенно — в 2025-2030 гг. — они станут важным требованием и прорывом в области Web 3.0. Иначе… иначе мы потеряем “чистый” Великий Веб.
Введение
zk-SNARKs и zk-STARKs пронизывают почти все ZKp-решения в блокчейне. (Поэтому) всё, что вам нужно знать, чтобы понять (ZKp, — это то,) чем они отличаются.
Чтобы понять концепцию zk-SNARKs vs zk-STARKs и то, как эти технологии сопоставляются друг с другом, необходимо сначала изложить проблему, которую они решают.
Отсутствие конфиденциальности и масштабируемость — два самых больших препятствия, мешающих массовому внедрению технологии блокчейн.
Как бы ни была прекрасна идея публичного блокчейна без права доступа, без обеспечения конфиденциальности данных будущее, насыщенное Web 3.0, может выглядеть как антиутопия, в которой каждая транзакция оставляет чёткий след, позволяющий общественности узнать о вас всё.
Общедоступные записи транзакций хороши в качестве верифицируемых доказательств деятельности, но любой человек может покопаться в них, связать платёж с платежом, привязать вашу реальную личность к ончейн-следам и использовать их против вас.
Аналогичным образом, отсутствие масштабируемости может серьёзно затормозить перспективы принятия блокчейна.
Проблема масштабируемости лежит в основе большинства инноваций блокчейна, которые наблюдали в последние пару лет. Без ущерба для децентрализации текущее состояние технологии блокчейн просто не может поддерживать приложения, которые достигнут массового принятия.
(И здесь появляются) ZKp — единое решение обеих проблем.
ZKP — решение загадки конфиденциальности/масштабируемости блокчейна
ZKP (что и расшифровывается как zero-knowledge proof) позволяет одной стороне проверить (среди прочего) утверждение о том, что транзакция действительна или верна, без необходимости нести дополнительную информацию о транзакции.
Благодаря им криптография нашла способ доказать подлинность транзакции без раскрытия конфиденциальной информации.
Появление ZK-доказательств ознаменовало новый рассвет для криптовалютного пространства. Они могли не только обеспечить действительно приватные транзакции, но и помочь таким сетям, как Ethereum, масштабироваться.
Чтобы доказательство нулевого знания работало, оно должно удовлетворять трём условиям: 1) полноте, 2) достоверности и 3) нулевому знанию.
ZKP могут быть двух типов — интерактивные и неинтерактивные. Интерактивные доказательства требуют постоянного взаимодействия между проверяющим и верификатором, пока верификатор не подтвердит истинность утверждений проверяющего.
Неинтерактивные ZKP не требуют такого взаимодействия, достаточно одного обмена информацией, чтобы удовлетворить обе стороны. Наиболее известными неинтерактивными ZKP являются zk-SNARKs и zk-STARKs.
В этой статье рассмотрим, что они собой представляют, их различия, применение и случаи использования.
Что такое zk-SNARK?
zk-SNARK расшифровывается как Zero-knowledge Succinct Non-interactive Argument of Knowledge, тип неинтерактивного доказательства нулевого знания, широко используемый сегодня.
Протоколы приватных монет, такие как Zcash, используют zk-SNARKs, чтобы предложить опыт экранированного блокчейна, обеспечивая при этом достаточное доказательство того, что каждая экранированная транзакция действительна.
Чтобы понять, как работают zk-SNARKs, мы должны рассмотреть каждую букву аббревиатуры:
- ZK: Эта пара (букв) расшифровывается как «нулевое знание», означая, что zk-SNARK не предоставляет никакой дополнительной информации, кроме достоверности утверждений отправителя. Любая информация, описывающая характер транзакции (транзакций), её участников и обмениваемую ценность, скрыта от верификатора.
- S: Эта буква означает «лаконичный», то есть размер доказательства небольшой (занимает мало места), что позволяет быстро и легко проводить верификацию.
- N: Означает «неинтерактивный», то есть между проверяющим и проверяемым не требуется практически никакого взаимодействия. Все, от генерации доказательства до представления и проверки, происходит в рамках одной транзакции.
- ARK: Представляет собой «Аргумент знания», и эта часть добавляет качество вычислительной обоснованности к zk-SNARKs. Проще говоря, плохой игрок вряд ли сможет обмануть систему, не имея знаний для поддержки своих утверждений (т.е. владея базовой информацией, которую он пытается подделать). Это основано на теории, что плохой агент имеет ограниченную вычислительную мощность, что означает, что любой человек с неограниченной вычислительной мощностью может создать поддельные доказательства. Некоторые протоколы zk-SNARK имеют способ предотвращения такого рода атак.
У протоколов zk-SNARK есть важная особенность: они требуют доверительной установки между проверяющим и проверяемым. Для построения доказательств нулевого знания с помощью zk-SNARK необходим набор открытых параметров, а также создание криптографических ключей. Эти параметры можно сравнить с «правилами» протокола, и они обычно кодируются. Между тем, ключи делают возможной конфиденциальность.
Zcash — один из самых популярных протоколов, сохраняющих конфиденциальность, в котором используются zk-SNARK. Кроме того, некоторые популярные ZK-роллапы и блокчейны второго уровня используют технологию доказательства zk-SNARK для обеспечения масштабируемости традиционных блокчейн-сетей, таких как Ethereum.
Что такое zk-STARKs?
Первые работы с подробным описанием STARK были опубликованы в 2018 году Эли Бен-Сассоном, Иддо Бентовым, Йиноном Хореши и Михаилом Рябцевым. Будучи еще одним типом неинтерактивного доказательства с нулевым знанием, zk-STARK менее популярны, чем их аналоги zkSNARK, в основном потому, что это более новая модель.
Термин расшифровывается как zero-knowledge scalable transparent arguments of knowledge, и они верны основам доказательств с нулевым знанием, позволяя пользователям делиться проверенными данными или выполнять вычисления с третьими лицами, не раскрывая третьей стороне никакой фактической информации.
Как и в случае с zk-SNARKs, рассмотрим каждую букву аббревиатуры, чтобы узнать, как работают zk-STARKs:
- ZK: Как и в случае с «zk-SNARKs», это также означает «zero-knowledge», подразумевая, что они доказывают транзакции или взаимодействия без раскрытия какой-либо базовой информации, за исключением того, что они являются правильными и подлинными.
- S: Это означает «масштабируемый», подчеркивая, что эти доказательства нулевого знания направлены на повышение масштабируемости блокчейна. zk-STARKs позволяют разработчикам выполнять вычисления и хранить данные вне цепи, увеличивая масштабируемость экспоненциально. Доказательства с нулевым знанием подтверждают эти действия оффчейн, которые затем представляются в режиме онлайн для проверки заинтересованными сторонами.
- T: означает «прозрачный«, и это качество является одним из наиболее существенных отличий между zk-STARK и zk-SNARK. Они используют общедоступную случайность для генерации параметров, устраняя необходимость в доверенной установке.
- ARK: «Аргумент знания» подразумевает то же самое, что и в zk-SNARKs, но использует другой подход к вычислениям. Они используют хэш-функции, устойчивые к коллизиям, что фактически устраняет необходимость в доверенных установках.
Технология zkSTARK является более новой, чем zk-SNARKs, и пионером в её разработке была компания Starkware с решениями rollup. Используя zk-STARKs, можно вычислить несколько тысяч транзакций в партиях вне цепи и представить единственное доказательство zkSTARK для подтверждения достоверности транзакций в цепи.
zk-SNARKs и zk-STARKs: сходства и различия
Сходства
У этих двух (подходов) есть несколько общих черт. Во-первых, это неинтерактивные протоколы доказательства нулевого знания, не требующие особого взаимодействия между проверяющим и проверяемым. Генерация, представление и проверка доказательств обычно завершаются в рамках одной транзакции.
Кроме того, они повышают масштабируемость блокчейна. ZKp намного меньше, чем средняя транзакция Биткоина, и проверяются намного быстрее. Быстрая проверка и меньший объём блока означают большую масштабируемость таких сетей, как Ethereum.
Различия
zk-SNARKs и zk-STARKs отличаются, по крайней мере, по четырем основным пунктам:
(Рассмотрим каждый пункт отдельно).
Прозрачность
zk-SNARK нуждаются в начальной доверенной фазе настройки для генерирования случайности, необходимой для создания доказательств с нулевым знанием. Эти параметры обычно хранятся в руках небольшой группы для их защиты. Если параметры попадут в чужие руки, недобросовестные участники могут использовать их для создания ложных доказательств.
zk-STARK используют другой подход, применяя устойчивую к столкновениям криптографию, чтобы устранить необходимость в частных церемониях генерации параметров. Без доверенных установок параметры генерации случайности являются общедоступными, что ограничивает централизацию и повышает прозрачность.
Безопасность
zk-SNARK используют начальную настройку для генерации параметров и, в соответствии со своей настройкой, являются вычислительно надёжными. Однако их вычислительная надёжность предполагает, что проверяющие имеют ограниченную вычислительную мощность.
Однако, когда проверяющий использует неограниченное количество вычислительной мощности, он с-может, например, воспользоваться определённым алгоритмом, который может выполнять чрезвычайно быстрые параллельные вычисления целочисленной факторизации, которые могут быть использованы для извлечения закрытого ключа из открытого ключа. Другими словами, они смогут взламывать системы доказательств. Таким образом, zk-SNARK теоретически уязвимы для атак квантовых вычислений, поэтому не являются квантово-устойчивыми.
zk-STARK не нуждаются в начальной доверенной установке, выбирая вместо этого устойчивый к столкновениям подход. Таким образом, они не требуют больших вычислительных затрат, как zk-SNARK, устраняя угрозу быть скомпрометированными неограниченной вычислительной мощностью квантовых вычислений. Поэтому они находятся выше по шкале квантовой устойчивости.
Масштабируемость
zk-SNARK имеют меньший размер по сравнению с zk-STARK, но их вычислительные потребности заставляют их медленнее генерировать доказательства по сравнению с другим вариантом. zk-SNARK потребляют меньше газа, чем zk-STARK, и проверяют доказательства быстрее из-за разницы в размере.
Хотя может показаться, что zk-SNARK более масштабируемы из-за более быстрой проверки доказательств, zk-STARK быстрее генерируют доказательства и быстрее масштабируются, потребляя меньше газа благодаря использованию вычислений и хранения — оффчейн. Однако в периоды низкой пропускной способности (создаётся мало доказательств) проверка доказательств занимает гораздо больше времени.
Структура
zk-SNARKs построены на эллиптических кривых, которые повышают безопасность и конфиденциальность, исходя из предположения, что найти логарифм случайного элемента эллиптической кривой относительно публичной базовой точки невозможно. [Прим. Menaskop: хотя никто не мешает создаёт условия для коллизий, но это отдельная и большая тема, которую рассмотрим, но не сегодня].
zk-STARKs, с другой стороны, использует иную криптографию — устойчивые к коллизиям хэш-функции — для обеспечения масштабируемости и безопасности.
zk-SNARKs
zk-SNARKs являются более популярными из двух основных неинтерактивных доказательств нулевого знания. Несколько проектов в крипто-пространстве сегодня используют их для повышения масштабируемости и конфиденциальности.
zk-SNARKs быстро генерируют и проверяют ZKp, и протоколы, повышающие конфиденциальность, широко их используют. С помощью zk-SNARK блокчейн с поддержкой конфиденциальности может скрывать транзакции от посторонних глаз, позволяя пользователям предоставлять доказательства нулевого знания вместо обычных записей о транзакциях.
Некоторые протоколы конфиденциальности, такие как протокол Panther, имеют встроенные механизмы выборочного раскрытия информации, которые позволяют пользователям делиться информацией, защищенной блокчейном, с доверенными третьими лицами.
zk-SNARKs также могут быть адаптированы для проверки личности, позволяя пользователям проходить требования KYC и AML, не подвергая риску свою конфиденциальную информацию.
Используя zk-SNARKs, эти протоколы могут позволить пользователям предоставлять вместо документов подтверждение своей личности с нулевым уровнем знаний, подтверждая, что у них есть необходимые данные для проверки, не раскрывая никакой дополнительной информации.
zk-SNARKs также были приняты для обеспечения конфиденциальности в децентрализованных финансах, играх, ZK-роллапах и владении активами.
zk-STARKs
Известно, что zk-STARKs лучше масштабируются, чем zk-SNARKs. Поэтому они были приняты решениями для масштабирования блокчейна, такими как ZK-rollups и Layer-2 blockchain. С их помощью эти протоколы вычисляют транзакции и хранят данные вне сети, а затем представляют доказательства нулевого знания на сети для обновления состояния сети.
О компании Panther (авторы оригинала)
Panther — децентрализованный протокол, обеспечивающий совместимую конфиденциальность в DeFi с помощью доказательств нулевого знания.
Пользователи могут майнить полностью обеспеченные токены, называемые zAssets, которые можно использовать для выполнения частных, доверенных транзакций DeFi на нескольких блокчейнах.
Panther помогает инвесторам защитить свои личные финансовые данные и торговые стратегии, а финансовым учреждениям предоставляет четкий путь для участия в DeFi.
Заключение от Menaskop
Мы продолжим изучать ZKP, а пока рекомендую обратить внимание на следующие ссылки и проекты:
- https://scroll.io/prealpha/faucet
- https://starkware.co/starknet/
- https://zksync.io
- https://polygon.technology/solutions/polygon-zkevm/
- https://www.infura.io/resources/network/consensys-zkevm-beta-signup
- https://www.pantherprotocol.io
До!