Что такое ZK криптовалюты? ZK Proof. ZK Rollups. ZK-STARK и ZK-SNARK.
Здравствуй, дорогой глотатель знаний! Сегодня один из нарративов (хоть и длятся сейчас нарративы всего по неделе) - ZK-монетки. Но я хочу акцентировать на них твое рассеяное внимание, ведь в будущем ZKP будут играть очень важную роль.
Вот только некоторые совсем не помнят или даже не знают, что это такое. Ничего страшного, я помогу восстановить нейронные связи тем, кто успешно их пропил и проторчал, а тем кто живет трезво, дам новый повод позанудничать на шахматной вечеринке.
Zero Knowledge Proof дословно переводится как "Доказательство с нулевым знанием". Такой грубый перевод помогает сразу докопаться для сути: при помощи ZK Proof можно доказать, что некая вещь является истиной, при этом не предъявляя никакой другой информации, в том числе секретной.
Предположим, у твоего брата есть сейф, в котором лежит его любимая надувная женщина с серебряными стразами. И есть не очень доверчивый друг, перед которым ты похвастался, но который требует пруфов. Пруфов, что ты сможешь открыть этот сейф.
Ты просто подходишь к сейфу и набираешь код от сейфа, прикрывая его своей свободной ладонью. А потом показываешь другу, что сейф открылся. То есть ты доказал, что знаешь код от сейфа, но сам код ему не раскрыл. То есть он получил доказательство и больше никакой информации. Это и есть Zero Knowledge Proof.
Изобрели ZKP еще в 1985 году. Один из его креативных умов - Сильвио Микали - он же основатель блокчейна Algorand. Однако только недавно начали активно применять в реальной жизни, потому что до этого думали, что это rocket science, но с появлением блокчейнов ему нашлось применение.
Стоит запомнить, что Zero Knowledge Proof (ZKP) - это такой протокол в криптографии, а криптография - это наука о конфиденциальности. По сути, ZKP - это способ защиты конфиденциальности данных.
Некоторые сравнивают ZKP с банковской выпиской, которая не раскрывает все данные, а только отвечает на вопросы "Да" или "Нет". Например, "Есть ли на этом счете хотя бы 600 баксов?". Однако, никто не может узнать, откуда эти деньги появились на счете и других деталей. Для покупки кошки за 600 долларов, достаточно знать только, есть ли на счете престарелой одинокой покупательницы 600 долларов.
Существует два основных вида ZKP: Zk-SNARK и Zk-STARK
Zk-SNARK
Zk-Snarks расшифровывается не как Солевые НАРКИ, а как “Zero-Knowledge Succinct Non-Interactive Argument of Knowledge” (Сжатый неинтерактивный аргумент о знаниях с нулевым разглашением).
Succinct - Сжатый: Размер доказательства в zk-SNARKs мал по сравнению с размером доказываемого утверждения. Как я и говорил, нужен самый минимум информации.
Non-interactive - Неинтерактивный: Взаимодействие между проверяющим и проверяемым практически отсутствует. Они обмениваются только одной штукой - доказательством, что некая хрень является истиной.
Argument: ZK-SNARK считаются вычислительно надежными, что означает, что нечестный говноед проверяющий имеет очень низкий шанс успешно обмануть систему, не имея знаний (или свидетелей) для поддержки своего утверждения.
Давайте, сразу разбирать на практике:
Например, Джоник вкладывает 1 ETH в смарт-контракт, который заключает с Джогой. Джога должен выполнить определенное задание, по завершении которого получит 1 ETH из смарт-контракта.
Все усложняется, когда задания, которые должен выполнить Карл, являются многоуровневыми и конфиденциальными. Предположим, вы заключили смарт-контракт с Джоником. Теперь вы получите платеж только в том случае, если выполните задания A, B и C. Что если вы не хотите раскрывать детали A, B и C, потому что они являются конфиденциальными для вашей компании, и вы не хотите, чтобы конкуренты узнали, что вам нужно сделать?
Zk-Snarks помогает доказать, что эти шаги были совершены в смарт-контракте, не раскрывая, что это за шаги на самом деле. Конфиденциальность, детка. Снарки, может просто раскрыть часть процесса, не показывая весь процесс целиком, и доказать, что вы честны в своих утверждениях
Самым ярким примером ZK-SNARK является $ZEC (Z-cash). Но есть еще парочка (про них уже в канале)
Для любителей технической части (писал не я): Самая большая проблема в применении ZK-SNARK по сравнению со ZK-STARKs заключается в том, что нужна доверенная установка (trusted setup). Доверенная установка требует выполнить определенный набор вычислений перед тем, как станет возможно использовать ZK-SNARK для доказательства. Эти вычисления создают два ключа — ключ для проверки и ключ для генерации доказательств. Ключ для генерации доказательств достаточно большой, для приложений, которые используются в блокчейне, — занимает около сотни гигабайт. (source)
Ах да, ZK-SNARK - не квантово-устойчивы. То есть квантовые компьютеры (когда родятся) могут сильно поднасрать их безопасности.
Zk-STARK
ZK-STARK - альтернатива для ZK-SNARK. Считается более эффективным вариантом технологии - потенциально более быстрым и дешевым.
Zero-Knowledge Scalable Transparent Argument of Knowledge - Масштабируемый прозрачный аргумент знания с нулевым разглашением, если дословно. Тут два ключевых отличия:
Scalable - Масштабируемый: Когда размер свидетеля больше, ZK-STARK генерирует и проверяет доказательства быстрее, чем ZK-SNARK. При увеличении размера свидетеля в доказательствах STARK наблюдается лишь незначительное увеличение времени проверки и верификации (в SNARK время проверки и верификации увеличивается линейно с увеличением размера свидетеля).
Transparent - Прозрачный: ZK-STARK генерирует общедоступные параметры для подтверждения и проверки, используя поддающуюся проверке рандомизацию, а не доверенную настройку. Поэтому они более прозрачны, чем ZK-SNARK.
Таким образом, ZK-STARK более надежны, чем ZK-SNARK, но они генерируют более объемные доказательства, чем ZK-SNARK, что обычно приводит к более высоким затратам на проверку. Однако в некоторых случаях, например при проверке больших наборов данных, ZK-STARK может быть более рентабельным, чем ZK-SNARK.
Безопасность ZK-Snark основана только на хешах.
ZK-Rollups
Ты ведь знаешь, что такое Ethereum Roll-Up? Нет? Ну ты че?
Rollup - это решение для масштабируемости сети Ethereum, когда транзакции проводятся на внешней цепочке (уровень L2).
Итак, есть основной блокчейн Ethereum - он же "Слой 1" или Layer 1 или L1. Он не самый быстрый и не самый дешевый.
Чтобы сэкономить и ускориться, придумали надстройку над основной сетью Ethereum, то есть второй слой, он же Layer 2 или L2. Надстройка эта называется роллапом и она взаимодействует с основной сетью Ethereum через смарт-контракты.
То есть на втором слое транзакции будут стоить дешевле и проходить быстрее. А потом много таких транзакций просто слепят в одну и отправят в основную сеть Ethereum.
ZK-Rollup -роллапы, которые как раз основаны на Zero-Knowledge proof.
Помимо ZK-roll up, существуют еще Optimistic Rollup, такие как Optimism и Arbitrum. Про них я расскажу отдельно, но как вы можете наблюдать сейчас они более популярны, потому что более зрелы. ZK Rollup - больше задел на будущее, им еще нужно немножко развиться.
Два самых известных ZK роллапа - это zkSync и StarkNet.
zkSync
Компания Matterlabs выпустила ZK-Rollup под названием zkSync v1 в 2020 году и он был основан на SNARK. В 2022 году они выпустили zkSync v2, который теперь поддерживает EVM - Ethereum Virtual Machine, делая его совместимым со смарт-контрактами.
Вот здесь можно ознакомиться с их экосистемой - https://ecosystem.zksync.io/
Известен zkSync прежде всего тем, что многие дрочили его тестнет, а сейчас пытаются дрочить экосистему, в надежде на будущий Airdrop их токена.
StarkNet
Это конкурент ZkSync, который основан уже на протоколе STARK. В этом их основное отличие.
Ознакомиться можно тут: https://starknet.io/what-is-starknet/
Он менее популярен, но популярен адски и знаменит теми же молящимися на airdrop. Наверно и не зря.
Основная сложность Старкнета - для разработчиков, которым приходится использовать язык программирования Cairo.
ZkSync поддерживает транзакции вне цепочки, что обеспечивает гораздо более высокую пропускную способность, чем транзакции на цепочке, а Starknet - нет. Это означает, что в секунду может быть обработано больше транзакций, что приводит к ускорению времени подтверждения и снижению комиссий.
ZkSync также имеет механизм сворачивания, который позволяет объединять несколько транзакций вне цепочки в одну транзакцию на цепочке, что еще больше снижает затраты и повышает масштабируемость системы. Starknet имеет свой собственный механизм сворачивания, но уже основанный на STARK.
Что касается совместимости, ZkSync совместим с существующими инструментами и инфраструктурой Ethereum (через EVM), что облегчает разработчикам и пользователям интеграцию с существующими приложениями и кошельками. Starknet - это отдельное решение, которое не совместимо с существующими инструментами и инфраструктурой Ethereum.
По теории плюс-минус все, если не вдаваться в детали. Про практику и монетки расскажу уже в канале.
Все не замечают, как плачет ночами,
Та, кто по жизни делает ебучие тестнеты, вместо того чтобы шить одежду, сука, и экономику поднимать.