Автор: Ипин, IOSG Ventures
Ландшафт уровня 2 быстро развивается, поскольку ZKRU, такие как zkSync и StarkNet, запускают основную сеть. Традиционно OPRU, такие как Arbitrum, первыми выходят на рынок и, следовательно, имеют более сильную экосистему. Напротив, ZKRU — это технологический прорыв, предлагающий более высокую пропускную способность и более низкие комиссии.
В последние месяцы большая часть активности перешла с уровня 1 на уровень 2 в поисках более быстрых и дешевых транзакций. За последний год TVL Ethereum упал с почти 40 миллиардов долларов до 20 миллиардов долларов. Однако TVL для уровня 2 представляет другую картину: огромный рост указывает на то, что внедрение уровня 2 ускоряется.


Arbitrum лидирует с долей рынка ТВЛ второго уровня более 50%, хотя ZKRU также прилагают свои усилия. Преимущество первопроходца Arbitrum позволяет ему сохранять доминирующее положение.

Анализ количества ежедневных транзакций показывает, что ZKRU, такие как zkSync и StarkNet, немного превосходят OPRU по пропускной способности. Тем не менее, экосистемное преимущество Arbitrum сохраняется, несмотря на небольшое отставание по ежедневному TPS.

OPRU существуют дольше, чем ZKRU. Однако ZKRU запускают свои сети и привлекают пользователей из других экосистем. Ожидается, что компания Arbitrum, являющаяся лидером в сфере OPRU, будет противодействовать росту популярности ZKRU своими новыми обновлениями.
Решение: Стиль
По мере того, как разработчики оптимизируют технологию с нулевым разглашением и стоимость, ZKRU, вероятно, продолжат завоевывать долю рынка благодаря своим преимуществам масштабируемости. Однако сетевой эффект Arbitrum обеспечивает возможность оставаться устойчивыми, несмотря на конкурентное давление. Благодаря инновационным решениям, таким как Stylus, Arbitrum может дополнить свою лидирующую позицию уникальными техническими возможностями и продолжать оставаться в авангарде гонки уровня 2.
Короче говоря, Stylus — это новая революционная среда смарт-контрактов, разработанная для Arbitrum, которая позволяет разработчикам писать эффективные, совместимые программы на таких языках программирования, как Rust, C++ и Solidity.
Он открывает общие вычисления для блокчейна и приветствует разработчиков, использующих различные технологические стеки.
ВАСМ
Stylus работает путем добавления виртуальной машины WebAssembly (WASM), которая работает параллельно с существующей виртуальной машиной Ethereum (EVM). Смарт-контракты, написанные на языке, который компилируется в WASM, могут выполняться в 10 и более раз быстрее, чем Solidity, что значительно снижает затраты на газ. EVM остается полностью функциональным, поэтому существующие контракты Solidity по-прежнему функционируют так же, как и сегодня. Две виртуальные машины работают синхронно, позволяя контрактам, написанным на разных языках программирования, вызывать друг друга, а также изменять одно и то же базовое состояние блокчейна.
Пользовательская предварительная компиляция
Кроме того, Stylus также поддерживает пользовательские прекомпиляции.
Предварительные компиляции — это низкоуровневые модули на Ethereum и Arbitrum, используемые для очень эффективного выполнения определенных криптографических или служебных функций. Например, существуют прекомпиляции для проверки подписи ECDSA и расчета хэшей SHA256.
Добавление новых прекомпиляций требует от всех валидаторов координации обновления EVM, поэтому входной барьер высок. А с помощью Stylus разработчики могут легко развертывать собственные прекомпиляторы, написанные на Rust или C++.
Например, команда может взять криптографическую библиотеку, написанную на C, и развернуть ее в Arbitrum без изменений. Это позволит этим криптографическим примитивам выполняться на сверхвысоких собственных скоростях.
Другие контракты могут называть эту Stylus «предварительной компиляцией» точно так же, как они называют встроенную предварительную компиляцию, чтобы воспользоваться преимуществами этой криптографии. Все измерения газа и защита от мошенничества работают автоматически.
Это позволяет команде создавать прототипы собственной криптографии, специальных кривых на основе спаривания и других новых примитивов без какой-либо специальной поддержки цепочки. Исследователи Ethereum могут даже начать работу над предложениями EIP, развернув их в виде предварительно скомпилированных версий Stylus на Arbitrum.
Предоставляя разработчикам возможность внедрять новые криптографические примитивы непосредственно в цепочке, Stylus значительно расширяет возможности создания. Предварительная компиляция больше не ограничивается функциями, поддерживаемыми EVM.
Как работает стилус
Прежде чем углубляться в более широкую роль WASM во вселенной блокчейна, важно понять, как Arbitrum организует сосуществование EVM и WASM. Речь идет не просто о наличии двух отдельных двигателей; это синергетические отношения, которые усиливают сильные стороны обоих.
Уникальная архитектура Arbitrum обеспечивает бесперебойную и синхронизированную работу между EVM и WASM благодаря единому состоянию, вызову между виртуальными машинами и совместимой экономической модели.
Смарт-контракты, написанные на Solidity или других языках EVM, как обычно, компилируются в байт-код EVM. При исполнении эти контракты выполняются на EVM, как и сегодня.
Для языков, компилирующихся в WASM, таких как Rust, C++ и C, рабочий процесс выглядит следующим образом:
Разработчики используют готовые компиляторы WASM, такие как Clang или Rustc, для компиляции своих смарт-контрактов в WASM.
Байт-код WASM загружается в цепочку Arbitrum в сжатом виде.
Владелец контракта вызывает предварительно скомпилированный метод CompileProgram, который настраивает инструменты безопасности для WASM, рассчитывает их стоимость и компилирует в собственный код, оптимизированный для оборудования валидатора.
Когда вызывается контракт, он запускается в среде выполнения WASM, такой как Wasmer, которая намного быстрее, чем EVM, что позволяет экономить плату за газ.
При измерении WASM Gas взимается перед каждым базовым блоком, а не за каждый код операции, как в EVM. Это более эффективно и гарантирует, что контракт не выйдет из-под контроля.
ЭВМ и ВАСМ
Две виртуальные машины (ВМ) работают синхронно, что позволяет им звонить друг другу, используя одно и то же глобальное состояние. Транзакция может быть выполнена частично в EVM и частично в WASM, а результаты легко объединяются.
Подождите, как две виртуальные машины могут работать бесперебойно и синхронно?
Polkadot достигает этого посредством XVM. В отличие от Polkadot, WASM и EVM работают на Arbitrum плавно и синхронно по нескольким ключевым причинам:
Одно состояние: обе виртуальные машины имеют доступ к одной и той же базовой структуре данных и дереву состояний. Контракт в одной виртуальной машине может читаться/записываться в то же место, что и контракт в другой виртуальной машине. Это обеспечивает единое представление о состоянии цепочки.
Вызовы между виртуальными машинами: когда транзакция взаимодействует с контрактом EVM, Geth обрабатывает ее и предоставляет результат. Если контракт EVM впоследствии вызывает программу WASM, виртуальная машина WASM берет на себя вычисление результатов этой части.
Общий контекст: системная информация, такая как данные блока, адрес отправителя и т. д., доступна обеим виртуальным машинам. Контракт WASM может получить номер блока так же, как контракт Solidity.
Единый консенсус: Валидаторы запускают две виртуальные машины для проверки транзакций и достижения консенсуса относительно правильного состояния цепочки. В спорах применяется Единая система защиты от мошенничества.
Совместимая экономика. Такие концепции, как измерение газа, распространяются на отдельные виртуальные машины, обеспечивая соответствующие затраты на вычисления и ресурсы в любой среде.
Для доказательства мошенничества верификатор разделяет выполнение EVM и WASM пополам, чтобы при необходимости выявить любые недопустимые шаги. Структура WASM позволяет системе гарантировать прекращение действия и обеспечивать достоверность доказательств.
Блокчейн | ВАСМ
Arbitrum — не единственная платформа, признающая преобразующий потенциал WebAssembly (WASM). И Polkadot, и Cosmos также интегрировали WASM в свои экосистемы, при этом каждая платформа предлагает уникальный набор преимуществ и функций.
Polkadot позволяет пользователям разрабатывать смарт-контракты с помощью WASM и поддерживает два языка: AssemblyScript, встроенный DSL, и Ink!, аналогичный Rust.
Cosmos, с другой стороны, использует CosmWasm в качестве среды выполнения смарт-контрактов, что позволяет разработчикам писать контракты на Rust.
Прежде чем углубляться в то, почему индустрия блокчейнов так восприимчива к WASM, стоит понять конкретные преимущества, которыми обладают Cosmos и Polkadot:
Cosmos выделяет следующие преимущества WASM:
Совместимость с библиотеками Rust.
Разнообразное сообщество разработчиков
Повышенная безопасность, включая защиту от повторных атак.
Легко проверить
высокая производительность
Среда выполнения WASM Polkadot имеет следующие функции:
высокая производительность
Совместимость с EVM
Независимость от платформы
Компактный двоичный размер
Поддерживает как Rust, так и AssemblyScript (разновидность TypeScript).
Хотя Polkadot, Cosmos и Arbitrum имеют некоторые общие преимущества, предлагаемые WASM, каждая платформа также имеет свои уникальные особенности.
Широкое внедрение WASM этими основными блокчейн-платформами является свидетельством его растущей важности в отрасли, поэтому крайне важно понять, почему эта технология быстро становится краеугольным камнем современной архитектуры блокчейна.
Почему стоит выбрать ВАСМ
Что такое ВАСМ
Чтобы понять синергию между блокчейном и WebAssembly (WASM), необходимо сначала понять, что такое WASM и движущую силу его развития.
WebAssembly — это двоичный формат инструкций, который позволяет коду выполняться в веб-браузере со скоростью, близкой к исходной. Он служит целью компиляции для ряда языков программирования, включая C и Rust, и спроектирован так, чтобы быть быстрым, эффективным и безопасным. WASM эффективно устраняет разрыв между веб-программированием и программированием на системном уровне, тем самым улучшая производительность и функциональность веб-сайтов.
«Интернет» в WebAssembly подчеркивает его способность работать в среде JavaScript (обычно в браузере). В этих конфигурациях разработчики имеют полный доступ к API WASM и полную поддержку веб-API, что дает им значительный контроль над поведением в Интернете.
История ВАСМ
Следуя принципу «напиши один раз, работай где угодно», WASM стал мощным решением давнего набора проблем. По состоянию на 2016 год во многих программах появились новые функциональные возможности посредством предметно-ориентированных языков (DSL), что часто предполагает компромисс между обслуживанием, эффективностью и безопасностью. Растет потребность в решении, которое могло бы предоставить новые функциональные возможности бесчисленному количеству серверов без ущерба для этих аспектов.
Были оценены недостатки различных существующих решений:
- Системная виртуальная машина
Частый запуск и завершение работы приводят к чрезмерным накладным расходам.
Отсутствие видимости кода для обеспечения безопасности.
Слишком абстрактно в отношении требований к производительности.
- контейнер
Отсутствие видимости кода для обеспечения безопасности.
Неэффективность из-за высокоуровневой абстракции
Частые операции приводят к значительным накладным расходам
- Виртуальная машина языкового уровня
Требует частых модификаций для обеспечения безопасности.
Встроенные виртуальные машины, такие как V8, требуют ресурсов.
Медленная адаптация нового языка к модели безопасности
все еще слишком абстрактно
- Архитектура набора команд (ISA)
Трудно эффективно создать песочницу
Предыдущие проекты Google переехали с него на WASM
Отсутствие зрелой реализации
К 2018 году развитие WASM набрало обороты, сосредоточившись на работе на различных архитектурах, серверах, встроенном оборудовании и даже поддержке нескольких языков. В отличие от Java, WASM разработан без ущерба для безопасности. К 2019 году была представлена компонентная модель для улучшения модуля WASM, обеспечивающая межъязыковое взаимодействие. Это позволяет использовать такие решения, как один раз написать HTTP-библиотеку и использовать ее на нескольких языках.
На сегодняшний день WASM обладает рядом возможностей и все чаще применяется в облачных сценариях, включая блокчейн. К его преимуществам относятся:
высокая производительность
Компактный двоичный размер
Кроссплатформенная переносимость
Поддерживает несколько языков, таких как C/C++, Rust, AssemblyScript и т. д.
Выполнить в движке JavaScript
Мощная песочница с ограничениями по памяти и процессору
Чрезвычайно быстрое время запуска, обычно в миллисекундах или меньше.
Сообщество WASM продолжает работать над большей интеграцией и производительностью на разных языках.
Понимание исторической эволюции WASM дает нам ценный контекст для понимания его текущей и потенциальной роли в различных средах, включая блокчейн-проекты, такие как Stylus. Этот опыт дает нам тонкое понимание при изучении проблем и проблем, связанных с реализацией WASM в экосистеме блокчейна.
Вопросы и ответы по Stylus
Языковая поддержка
Эволюция WASM показывает, почему Stylus является интересным дополнением к экосистеме Arbitrum, но также выявляет некоторые ограничения и проблемы. Одной из проблем является языковая поддержка. Хотя Stylus расширил сообщество разработчиков Arbitrum, включив в него такие языки, как C++ и Rust, ему не удалось охватить популярные языки, такие как JavaScript и Python.

Хотя существуют предварительные проекты, направленные на внедрение Python и JavaScript в WASM, эти усилия еще не готовы к широкому внедрению из-за проблем со сборкой мусора и проблем с производительностью.
Языковая совместимость
В настоящее время Stylus поддерживает SDK C/C++ и Rust, легко интегрируясь с наборами инструментов для этих языков. Разработчики могут даже интегрировать сторонние библиотеки, такие как собственные криптографические реализации, при создании смарт-контрактов. Основным ограничением подобных действий являются затраты на попутный газ.
Хотя Rust SDK все еще находится в зачаточном состоянии, в SDK Rust и C есть некоторые недостающие функции. Например, C SDK не поддерживает экспортированные функции ABI, а модификаторы пока не поддерживаются ни в одном SDK.
В настоящее время локальной среды тестирования Stylus не существует, но разработчики могут запускать тесты непосредственно в SDK. Для развертывания смарт-контрактов в настоящее время единственным вариантом является тестовая сеть, которая пока не поддерживает проверку смарт-контрактов. В настоящее время предпринимаются усилия по внедрению различных токенов ERC и **[Uniswap V2]** в экосистему Stylus.
Дилемма выбора языка
Выбор между предметно-ориентированными языками (DSL), встроенными DSL (eDSL) и языками общего назначения требует компромисса между низкоуровневым контролем и высокоуровневой абстракцией. Разработка совершенно нового DSL требует значительных инвестиций в разработку инструментов и экосистемы. Напротив, eDSL, будучи подмножеством языка общего назначения, обеспечивает более простую интеграцию с существующими инструментами и требует более низкой кривой обучения. Например, было бы полезно создать eDSL на таком популярном языке, как JavaScript или Python.
Общий язык требует использования SDK, который вводит дополнительные инструменты, увеличивает детализацию и делает код менее выразительным, а также требует более длинных вызовов API и объектных операций.
Поиск правильного баланса между выбором языка и разработкой eDSL может стать ключом к привлечению более широкого сообщества разработчиков и одновременному предоставлению удобных для пользователя инструментов. Согласно текущим данным, лучшее сообщество разработчиков криптовалют по-прежнему сосредоточено вокруг Ethereum. Однако платформы, использующие Rust для смарт-контрактов, такие как Polkadot, Cosmos и Solana, также набирают обороты и быстро растут среди сообществ разработчиков.


производительность
WASM значительно повышает скорость выполнения и уменьшает размер пакета. Хотя Stylus еще не развернут в основной сети, полезным справочным материалом могут служить тесты других сетей. Наблюдаемое время выполнения сокращается в 4–8 раз, а скомпилированный размер уменьшается примерно на 50 %.


В настоящее время Stylus имеет ограничение на размер своих контрактов: примерно 128 КБ в несжатом виде. Это ограничение затрудняет портирование больших смарт-контрактов с других языков, таких как Solidity. В базе кода Stylus это ограничение описано ниже:

Стоит отметить, что WASM несет некоторые накладные расходы при запуске и завершении работы. Для облегченных операций EVM может оказаться более экономичным, чем WASM.
Совместимость с EVM
EVM и WASM используют одни и те же слоты хранения и дерево состояний, что облегчает взаимодействие Stylus с EVM. Это достигается с помощью EVM API, реализованного в WASM, с использованием популярного шаблона ввода-вывода хоста. Полный список поддерживаемых API-интерфейсов EVM показывает, что совместимость полностью поддерживается.

Пользовательский предварительно скомпилированный контракт
Этот аспект особенно интересен, поскольку представляет собой неизведанную территорию. Пользовательские предварительно скомпилированные контракты могут добавить в цепочку дополнительные криптографические примитивы с меньшими затратами на выполнение. Они также могут снизить стоимость вывода, представив тензорные вычисления в виде предварительно скомпилированных контрактов. Однако, похоже, не существует кода, связанного с пользовательскими предварительно скомпилированными контрактами. Хотя для компонентов EVM существуют предварительно скомпилированные контракты, они не поддерживают горячую замену.
Эта функция, возможно, все еще находится в стадии разработки, используя возможности WASM. EVM может вызывать функции, написанные на WASM, а затем компилировать их в машинный код.
Реентерабельная функциональность
В отличие от CosmWasm (который использует модель актера без повторного входа), Rust SDK Stylus по умолчанию отключает повторный вход как флаг функции. Разработчики имеют возможность включить эту функцию вручную.
Активация повторного входа потребует некоторых настроек API. В частности, разработчикам необходимо быть осторожными, когда речь идет о мерах безопасности, таких как обновление кэшей хранилища во время вызовов.

Понимание
Stylus открывает новые варианты использования, которые были бы слишком ресурсоемкими при использовании только EVM, например, высокопроизводительное шифрование, игры и искусственный интеллект. Он также позволяет настраивать предварительно скомпилированные контракты, позволяя разработчикам добавлять собственное шифрование и другие базовые функции, не дожидаясь обновлений. В прошлом мы видели, как некоторые экосистемы, не относящиеся к Ethereum, использовали WASM, например Cosmos и Polkadot. Это первый раз, когда WASM был принят сообществом Ethereum. В целом, Stylus представляет собой значительный шаг вперед в разработке смарт-контрактов и поможет Ethereum и Arbitrum масштабироваться, сохраняя при этом совместимость со всеми существующими приложениями.
Интеграция Stylus в SDK уровня 2 компании Arbitrum обеспечивает большую гибкость для разработчиков уровня 3. Теперь они могут переносить в цепочку интенсивные вычисления, которые ранее превышали лимиты газа, открывая новые возможности. Разработчики больше не ограничиваются Solidity, но также могут выбрать Rust или C++, если эти языки лучше соответствуют их потребностям и опыту. Пользовательские предварительно скомпилированные контракты позволяют плавно переносить предпочтительные криптографические, служебные и другие вспомогательные функции в цепочку для достижения оптимальной производительности. Написание низкоуровневой логики непосредственно на языке, адаптированном к каждому варианту использования, приводит к более плавной разработке. Разработчики могут сосредоточиться на основных функциях продукта, а не прибегать к обходным путям, чтобы избежать затрат на газ. Устранив языковые и газовые ограничения, Stylus позволяет разработчикам третьего уровня с самого начала создавать наиболее эффективный пользовательский интерфейс, используя подходящие для своей области инструменты.
Stylus также демонстрирует способность Arbitrum внедрять масштабные инновации и интегрировать новые виртуальные машины. Эд Фельтен, соучредитель и главный научный сотрудник Arbitrum & Offchain Labs, отметил, что Arbitrum разработан на основе популярных в отрасли инструментов и языков программирования. Они могут быстрее писать тесты и разрабатывать новые функции поверх своих устаревших систем. ОП пошел дальше по пути ZKization и постепенно перешел к идее гибридного Rollup. В настоящее время Optimism работает с Risc0 над использованием Zeth для создания доказательств с нулевым разглашением для OPRU. Используя это решение, Оптимизму не нужно вносить дополнительные изменения в OPRU. Если вас интересует Зет, вы можете прочитать то, что я написал ранее [Твиттер].
Мы с нетерпением ждем возможности увидеть приложения искусственного интеллекта на Arbitrum. В настоящее время выполнение машинного обучения в сети требует очень больших затрат газа, что делает разработку дорогостоящей. Машинное обучение с нулевым разглашением может снизить затраты, но также создает значительные дополнительные сложности для разработчиков. Если бы мы могли реализовать тензорные операции в виде предварительно скомпилированных контрактов с помощью Stylus и выполнять их в исходном виде за небольшую часть затрат, это открыло бы новые возможности для высокопроизводительного машинного обучения в цепочке. Позволяя разработчикам быстро создавать и развертывать алгоритмы машинного обучения в виде легко интегрируемых предварительно скомпилированных контрактов на знакомом им языке, например Python, Arbitrum может стимулировать следующее поколение инноваций в области искусственного интеллекта в DeFi, GameFi и других сферах. Производительность и гибкость Stylus позволят нам сосредоточиться на инновационных архитектурах машинного обучения, а не на оптимизации газа. Мы с нетерпением ждем возможности увидеть творческий подход сообщества к этой новой парадигме.



