О масштабировании Эфириума слышно из каждого угла — во всей обрушившейся на пользователя криптовалют терминологии легко запутаться: L2, Rollup, доказательства корректности, SNARK, и это только начало. В этом гайде мы дадим самое техническое нетехническое объяснение zkSync, ключевого решения для масштабирования Эфира, максимально детально разобрав всю суть. Впрочем попытаемся дать более популярное объяснение, чем в технической документации.
Проблема масштабирования
Если вы хоть раз пользовались Эфиром, то хорошо понимаете, зачем все это масштабирование нужно. Транзакции соревнуются за ограниченную вычислительную мощность, а значит, за них приходится платить высокие комиссии, если важно обработать их быстро. Комиссии в тысячах долларов — не предел. Эту проблему призваны устранить L2.
Блокчейн поверх блокчейна
Очевидное решение — обрабатывать транзакции вне Эфириума. Затем их можно связывать воедино и отправлять на основную сеть в сжатой форме или вместо транзакций отправлять доказательства корректности.
Для обеспечения должной безопасности транзакции обрабатываются на блокчейнах, называемых сетями второго уровня (L2). Эти сети принимают транзакции, выполняют вычисления и обрабатывают их. Затем они их "сворачивают” (roll up) в одну и передают в основную сеть.
Такой подход, называемый Rollup, позволяет избежать обработки каждой транзакции в Эфириуме. Однако, окончательное подтверждение происходит именно в основной сети. Комиссия же распределяется между индивидуальными транзакциями в связке.
Оптимизм против пессимизма
Существует два вида Rollup: Optimistic Rollups и zkRollups. В чем разница, скажете?
Один аспект, который мы нагло проигнорировали, — это вопрос валидации (проверки и подтверждения) транзакций, обрабатываемых на L2. Естественно, если валидация имеет место только в L2-блокчейне, то безопасность Эфира не используется, а сам L2 уже никакой не L2.
Основа любой сети второго уровня — набор смарт-контрактов в основной сети, которые проверяют утрамбованные в связку транзакции с L2. Но сначала кое-что должно произойти на самом дочернем блокчейне.
Если оптимизм вообще уместен в финансах, то можно предложить следующее решение — изначально предполагать, что все транзакции валидные и производить проверку в основной сети. Такие блокчейны заработали себе название Optimistic Rollups. L2, построенные на этом типе Rollup, используют доказательства подлога (Fraud Proofs), которые принимаются в течение фиксированного промежутка времени. При использовании данного решения на основную сеть отправляются подробные данные о транзакциях, хотя и в ужатой форме.
А что предлагают пессимисты? Альтернативный подход заключается в предварительной проверке транзакций на L2 до подачи на основную сеть обобщенных данных о транзакциях и доказательств корректности (Validity Proofs). Доказательства показывают, что новое состояние сети является корректным продолжением предыдущего состояния при проведении выполненных транзакций. Такие L2 называю zkRollups.
А почему бы просто не обмануть систему?
Эфир служит уровнем расчетов для L2, верифицируя итоговое состояние каждой связки транзакций и вычленяя некорректные блоки. То есть, сеть безопасна, поскольку окончательное решение о валидации транзакции принимается в Эфире.
Кроме того, L2 используют такой механизм Proof of Stake как слешинг (slashing), который помогает гарантировать, что узлы предоставляют верные данные. Валидаторы предоставляют залог, который ликвидируется, если они пытаются подделывать данные.
Из-за этого у валидаторов есть экономическая мотивация предоставлять верные данные.
ZK-SNARK/ZK-STARK
Доказательства корректности с нулевым разглашением (Zero Knowledge — ZK) позволяют проверить, корректна ли транзакция без разглашение каких-либо деталей о ней. Любой может удостовериться в легитимности транзакции без доступа к самим данным.
Другими словами, ZK-доказательства могут показать, что какое-либо утверждение верно без необходимости знать само утверждение. Например, можно доказать, что вы знаете какое-то число, не называя самого этого числа.
zkRollup сети используют доказательства для подтверждения верности транзакций без их обработки в сети Ethereum. Конкретно они применяют протокол ZK-SNARK.
ZK-SNARK — протокол, генерирующий лаконичные и оптимальные ZK-доказательства. Однако, он использует публичные параметры, которые могут быть использованы злоумышленниками для создания фальсифицированных доказательств — если им будет доступна информация, на основе которой были сгенерированы те или иные параметры.
Для устранения этой уязвимости несколько участников (доверенных сторон) предоставляют случайные значения, слушающие непредсказуемым элементов в генерации параметров. Если хотя бы один из участников уничтожает данные о своем случайном значении, то исходную информацию становится невозможно восстановить.
ZK-STARK — похожее решение, но более безопасное, поскольку в нем не принимают участия доверенные стороны. Вместо публичных параметров в протоколе применяется публично проверяемая случайная функция. Тем не менее, доказательства генерирует он объемные.
Протокол также дает больше возможностей для масштабирования и даже обеспечивают квантовую безопасность, без которой нам не обойтись — в году, этак, 2370.
zkSync, разрабатываемый Matter Labs, — L2-решение, созданное на базе Эфириума и использующее технологию zkRollups. Создать zkRollup гораздо сложнее, чем Optimistic Rollup, но зато данное решение дает лучшие гарантии безопасности. Причина в том, что безопасность Optimistic Rollup исходит из теории игр, законов человеческого поведения, а безопасность zkRollup обеспечивается строгой математикой.
Прогнозируемый пиковый показательTPS для zkSync составляет около 2000, что выше, чем у блокчейнов, использующих Optimistic Rollup. Если к нему добавить zkPorter, решение для хранения данных офф-чейн, zkSync может достичь примерно 20 000 TPS.
Существуют две версии zkSync: zkSync 1.0 (Lite), которую выпустили еще в 2020 году, и zkSync 2.0 (Era), релиз которой состоялся совсем недавно.
Сейчас расскажем, почему разработка второй сети заняла столько времени и зачем вообще нужны два блокчейна, но сначала разберемся с проблемой программируемости.
Программируемость: что такое zkEVM?
Создать блокчейн с базовыми возможностями — это одно, а вот сеть, которая может выполнять произвольные программы? Далеко не просто. Тем более, если нужны и безопасность, и высокая пропускная способность.
Для сети со смарт-контрактами нужна виртуальная машина (как EVM) — абстрактная среда, в которой живет состояние сети.
Для того, чтобы эффективно выполнять программы на Solidity и других языках для EVM в L2-блокчейне, нужно полностью переработать структуру виртуальной машины. Основная трудность разработки — создать zkEVM, быстрый и дешевый блокчейн со смарт-контрактами.
zkSync Era и zkSync Lite: в чем разница?
При создании zkSync 1.0 (Lite) разрабатывалась в первую очередь быстрая и недорогая L2 для базовых транзакций и с минимальной поддержкой смарт-контрактов. По сути, на ней можно только отправлять средства.
zkSync 2.0 (zkSync Era) — это zkEVM, то есть сеть с полноценной виртуальной машиной, позволяющей выполнять смарт-контракты.
Matter Labs не заявляли о прекращении поддержки zkLite, но сейчас компания явно фокусируется на второй версии сети — неудивительно, учитывая ее большие возможности.
Суперсилы zkSync Era
Часть характеристик zkSync Era унаследовала от zkSync Lite. К ним относятся:
Моментальные транзакции — Валидаторы предоставляют значительный залог. Консенсус из 2/3 узлов подтверждает, какая транзакция будет входить в следующий блок, т.е. выполняет транзакцию в L2. Происходит это быстро, за доли секунды. Как же гарантируется безопасность? Если транзакция не попадает в следующий блок, то сумма слешится, часть идет на компенсацию пользователя, а оставшаяся часть сжигается.
Безопасность, устойчивость к цензуре — Сеть делит узлы на две роли: валидаторы, обрабатывающие транзакции и производящие zk-доказательства, и защитники (Guardians), следящие за активностью в сети. Защитники обнаруживают недобросовестную активность и могут запустить процесс слешинга.
Еще больше безопасности с новым zk-SNARK — zkSync разработали и используют SNARK, называемый RedShift, который, в отличие от протоколов STARK, производит короткие доказательства, но при этом не нуждается в доверенных сторонах. Более того, RedShift универсален, то есть работает для любого вычисления, и, вероятно, не уязвим перед квантовыми компьютерами.
А что привносит новая сеть?
Еще быстрее из-за мощного LLVM-компилятора — LLVM компилятор дополнительно оптимизирует выполнение кода на языках для EVM.
Дешевле из-за улучшенного сжатия данных — Данные — одна из главных причин высокого газа на L2. zkEVM отправляет на Эфириум сжатые данные об изменении состояния, а не данные транзакций, что уменьшает комиссии.
Улучшенный интерфейс из-за встроенной абстракции аккаунта — Абстракция аккаунта предполагает появление у аккаунта возможностей, которых нет у обычного адреса на Эфире. Например, возможность платить комиссии в произвольном токене. Данная функция позволяет реализовать более удобный интерфейс.
zkPorter и амбиции zkSync
zkPorter — дополнительное решение, разрабатываемой Matter Labs, призванное предоставить возможность офф-чейн хранения данных. Корректность данных обеспечивается защитниками, надежность надзора которых гарантируется слешингом. zkPorter жертвует часть децентрализации по сравнению с хранением данных на Эфириуме, но позволяет сделать транзакции намного более быстрыми и дешевыми.
Источник: Matter Labs
Использование zkRollup обеспечивает только 100-кратное улучшение масштабируемости, но этого недостаточно для многих финансовых случаев использования. Повышенная активность пользователей неизбежно приведет к росту комиссий. Доступность данных через zkPorter позволяет избежать этих ограничений, минимально жертвуя безопасностью или децентрализацией.
При использовании zkPorter газ может составлять всего $0,03, поскольку большая часть комиссии за транзакцию связана с затратами на доступность данных в Эфириуме.
Цель zkSync — создать спектр решений, сбалансированных по скорости, стоимости, степени безопасности и децентрализации. Пользователи могут выбирать быстрые и недорогие транзакции zkPorter или более децентрализованные и безопасные транзакции на zkSync Era в зависимости от своих потребностей. Массовое внедрение технологий блокчейна потребует и того, и другого.
К чему ажиотаж?
zkSync превосходит в плане безопасности решения, основанные на Optimistic Rollups, такие как Optimism и Arbitrum, поскольку он использует криптографические доказательства, а не на теорию игр и поведенческие паттерны. Новый zkSNARK от zkSync, RedShift, устраняет необходимость в доверенных сторонах, но при этом, в отличие от zkSTARK, все еще генерирует короткие доказательства. В сочетании с применением zkPorter для офф-чейн хранения данных zkSync будет иметь гораздо более низкие комиссии и сможет достигнуть 20 000 TPS. А при реализации шардинга в Эфире решение сможет обеспечить 100 000 TPS.
По мнению Бутерина, хотя Optimistic Rollups могут иметь некоторые специфические преимущества, zkRollups выиграют в долгосрочной перспективе.
zkSync конкурирует с другими zkRollup-решениями, такими как Polygon zkEVM, Polygon Zero, Aztec Network, StarkNet и Loopring. Выделить фаворита на такой ранней стадии нелегко, но у zkSync есть ряд очевидных преимуществ:
Один из первых — zkSync входит в число первых появившихся zkRollup, в сети уже обработано более 16 млн. транзакций, а TVL превосходит 100 млн.
Снижение комиссий с помощью zkPorter — размещение данных офф-чейн дает возможность сделать комиссии мизерными
Использование zkSNARK без доверенных сторон — zkSNARK от zkSync в отличие от StarkNet генерирует короткие доказательства, но при этом не нуждается в доверенных сторонах для создания доказательств
Встроенная абстракция аккаунта — позволяет реализовывать приложения с комфортным UX, подобным финтех-кошельками и банковским приложениям
Introducing zkSync: the missing link to mass adoption of Ethereum by Alex Gluchowski
zkSync 2.0: Hello Ethereum! by Matter Labs
gm zkEVM! by Matter Labs
zkPorter: a breakthrough in L2 scaling by Matter Labs
The zkEVM World: An Overview of zkSync by Binance Research
zkSync Era Basics, zkSynk Docs
Validity Proofs vs. Fraud Proofs Strike Back by StakWare’s Avihu Levy & Uri Kolodny
Layer 2 by Ethereum Foundation
ZERO-KNOWLEDGE ROLLUPS by Ethereum Foundation’s contributors
OPTIMISTIC ROLLUPS by Ethereum Foundation’s contributors
An incomplete Guide to Rollups by Vitalik Buterin