Оригинальный анализ исследования Web3.com Ventures

0xрышилософер

Введение

«zk-Rollups», вероятно, стало самым модным словечком в Web 3 года. С запуском основной сети zk-Sync v2.0 «baby Alpha» всего за последние несколько дней это волнение достигло своего зенита [1]. Но что же на самом деле означает «zk-Rollups» за всеми этими модными словечками? И причем тут zk-Sync? В этой статье я постараюсь углубиться в принципы и практику использования zk-Rollups, раскрыть ключевые технические особенности zk-Sync v2.0 как проекта и изучить потенциальные будущие последствия для этой долгожданной технологии.

Принципы zk-rollups

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

Именно здесь на помощь приходят «коллапы» — накопительные пакеты Ethereum, по сути, являются «плагином», который обеспечивает Ethereum дополнительные масштабы масштабируемости и, таким образом, устраняет присущую ему неэкономичность масштаба. Интуиция, лежащая в основе этой идеи, проста. Представьте, что у вас есть 5 предметов, которые вам нужно перевезти из пункта А в пункт Б. «Обычный» способ сделать это — перенести предмет 1, предмет 2 и т. д. один за другим. Но это, очевидно, медленно и громоздко. «Сворачивание» — это, по сути, «свертывание» всех 5 предметов в одну сумку, что позволяет вам совершить одну поездку вместо 5.

Но есть два предостережения:

  1. Как убедиться, что в накопительный пакет «вмещается» все?

  2. Как убедиться, что накопительный пакет не подделан?

zk-Rollups — это один из ведущих типов технологий объединения (второй — Optimistic Rollups), использующий «доказательства с нулевым разглашением» для решения этих двух проблем. Чтобы решить эти проблемы, zk-Rollup объединит определенное количество транзакций вместе, выполнит вычисления на уровне L2 и отправит как изменения состояния, так и «доказательство достоверности» верификатору на уровне L1, показывающее, что вычисления были выполнены с целостностью. . Это «доказательство достоверности» осуществляется в форме «доказательства с нулевым разглашением», математического способа сообщить кому-то, что вы что-то знаете, не сообщая ему, что вы знаете.

Простым примером доказательства с нулевым разглашением является автооценщик кода (для домашнего задания по CS). Автооценщик — это «верификатор», который предоставляет вам набор случайно сгенерированных тестовых примеров, а вы — «доказывающий», который должен быть в состоянии пройти все тестовые случаи, чтобы доказать, что у вас правильный код. При этом вы не передаете свой код автогрейдеру напрямую. И вуаля, вы только что провели «Доказательство с нулевым разглашением», доказав, что вы что-то знаете, не говоря о том, что вы знаете. [2]

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

Святым Граалем zk-Rollups является виртуальная машина Ethereum с нулевым разглашением (zk-EVM), которая позволяет разработчикам переносить любой смарт-контракт Ethereum без изменений в цепочку zk-Rollup. Но это сложно. Поскольку каждая «проблема» требует разных наборов «тестовых примеров», разработка «алгоритма доказательства», способного решить любой мыслимый тестовый пример, является техническим узким местом доказательств с нулевым разглашением и zk-сборок.

Как утверждает сам Виталик Бутерин:

В целом, по моему мнению, в краткосрочной перспективе оптимистичные накопительные пакеты, скорее всего, одержат победу для вычислений EVM общего назначения, а накопительные пакеты ZK, скорее всего, выиграют для простых платежей, обмена и других случаев использования, специфичных для конкретных приложений, но в Среднесрочные и долгосрочные накопительные пакеты ZK будут выигрывать во всех случаях использования по мере совершенствования технологии ZK-SNARK. [3]

Таким образом, исторически zk-Rollups были признанными технологиями только для случаев использования конкретных приложений, где «тестовые сценарии» четко определены и ограничены по объему. Однако несколько проектов быстро продвигаются к «замку на холме» — универсальному EVM-совместимому алгоритму zk-Rollup. [4]

zk-Sync v2.0

zk-Sync v2.0 — лишь один из многих проектов, которые в настоящее время разрабатываются при разработке zk-EVM (в число других входят StarkNet, Polygon Hermez и Scroll). В отличие от zk-Sync v1.0, который требовал от пользователей пересобирать большие разделы своих кодовых баз для переноса с EVM на zk-Sync, в zk-Sync v2.0 программисты могут развертывать свои приложения практически без изменений — или, как может заявить zk-Sync.

На практике не все zk-EVM одинаковы. Существует явный компромисс между возможностью компоновки (насколько она близка к исходным контрактам EVM) и производительностью (насколько быстро будут работать zk-Rollup) [6]. В рамках этого компромисса zk-Sync решила полностью оптимизировать производительность, жертвуя тем самым возможностью компоновки.

С точки зрения Виталика Бутерина, существует четыре различных типа zk-EVM, которые обобщены в следующей таблице:

Как утверждает Виталик, в своем текущем состоянии zk-Sync v2.0 представляет собой zk-EVM 4-го типа, который способен компилировать контракты, написанные на Solidity и языках высокого уровня, с помощью собственного компилятора, отличного от EVM. Поскольку zk-Sync имеет полный контроль над дизайном своего компилятора, они могут активно оптимизировать скорость и пропускную способность. Платой за это является то, что некоторые наборы инструментов отладки DApps и EVM могут быть несовместимы с zk-Sync v2.0. По сути, zk-Sync — это та же автомобильная оболочка, что и Ethereum, но с замененным движком [5].

Действительно, в своей документации для разработчиков Matter Labs утверждает, что, хотя операции «чтения» смарт-контракта могут быть интегрированы без каких-либо изменений в коде, операции «записи» смарт-контракта требуют «дополнительного кода» из-за «фундаментальных различий между L1 и L2» [6] . На самом деле это немного вводит в заблуждение. Это связано не столько с «фундаментальной разницей» между L1 и L2, сколько с типом zk-Rollup, который решила использовать Matter Labs, — накопительным пакетом типа 4. Поскольку zk-Sync по сути представляет собой накопительный пакет типа 4, в котором используется другой компилятор и байт-код, это означает, что смарт-контракты имеют разные адреса, а инфраструктура отладчика, основанная на анализе байт-кода, может не работать на zk-Sync v2. 0 [7].

В будущем zk-Sync может добавить дополнительную поддержку байт-кода EVM, что позволит системе медленно перейти к накопительному пакету типа 3, который поддерживает более широкий диапазон этих «граничных случаев». Но для того, чтобы zk-Rollup Type 4 или Type 3 от zk-Sync преуспел по сравнению с накопительным пакетом Type 2 от Polygon Hermez и Scroll Labs, который, по сути, жертвует скоростью ради более широкой совместимости, должны быть два важных предварительных условия. Во-первых, существует лишь небольшая часть неважных проектов, несовместимых с собственным компилятором zk-Sync. Во-вторых, существует качественная разница в скорости выполнения zk-Sync по сравнению с zk-EVM типа 2.

К сожалению, я лично считаю, что это маловероятно. Любая развитая экосистема разработки опирается на зрелую «основную» инфраструктуру, включающую удобные модульные инструменты отладки и тестирования. Если, как постулирует Виталик, большая часть собственных инструментов отладки EVM не сможет быть перенесена на zk-Sync из-за различий в байт-коде, то zk-Sync придется разработать собственный набор инструментов тестирования и отладки. Это дополнительные накладные расходы, которые могут в конечном итоге замедлить скорость внедрения zk-Sync в качестве решения L2 по сравнению с его более компонуемыми конкурентами zk-EVM типа 2, такими как Polygon Hermez и Scroll.

Будущее zk-rollups

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

На данный момент DeFi, GameFi и мобильные приложения являются основными бенефициарами инфраструктуры zk-Rollup. И DeFi, и GameFi по своей сути являются экономией за счет масштаба, поскольку они процветают в среде, где их использует множество людей. Мобильные приложения, такие как мобильные кошельки, также открывают шлюзы для массового потребителя, который слишком ленив (или не может себе позволить) настольный ПК. Поэтому использование zk-Rollups в таких ситуациях имеет большой смысл.

Но это ни в коем случае не предел полезности zk-Rollups. Во всяком случае, это только начало. zk-Rollups для Ethereum — то же самое, что 5G для Интернета. Подобно тому, как 5G может открыть новый мир приложений и систем IoT, zk-Rollups может также открыть шлюзы для «блокчейна вещей», позволяя цифровым устройствам нашего физического мира — холодильникам, часам, светофорам и всем остальным — быть доступными. интегрирован со смарт-контрактами, защищенными на Ethereum.

Один из крупнейших аргументов против Интернета вещей заключается в том, что он позволит крупным технологиям проникнуть в нашу повседневную жизнь. Но благодаря «Блокчейну вещей» мы можем пользоваться удобствами Интернета вещей, не беспокоясь о том, что наши интеллектуальные устройства будут скомпрометированы в централизованной базе данных. Вместо удобства ИЛИ конфиденциальности мы можем иметь удобство И конфиденциальность. Это мир, который zk-Rollups может нам пообещать.

🐦 @0xfishylosopher

📅 31 октября 2022 г.

Эта информация носит исключительно образовательный характер и не должна восприниматься как финансовый совет. Все высказанные мнения принадлежат автору и не обязательно поддерживаются Web3.com Ventures.

Рекомендации

[1] https://blog.matter-labs.io/baby-alpha-has-arrived-5b10798bc623

[2] Адаптировано из https://pages.cs.wisc.edu/~mkowalcz/628.pdf.

[3] https://vitalik.ca/general/2021/01/05/rollup.html

[4] https://www.coindesk.com/tech/2022/07/20/the-sudden-rise-of-evm-совместимый-zk-rollups/

[5] https://cryptobriefing.com/the-race-scale-ethereum-zkevm-rollups/

[6] https://docs.zksync.io/dev/contracts/#porting-smart-contracts

[7] https://vitalik.ca/general/2022/08/04/zkevm.html