Обзор развития технологий параллельного EVM: от высокопроизводительного Layer1 до исследований новых проектов

EVM:核心 компонент Ethereum

EVM является ядром Ethereum, отвечающим за выполнение смарт-контрактов и обработку транзакций. Это вычислительный движок, предоставляющий абстракцию вычислений и хранения, аналогично виртуальной машине Java. EVM выполняет свой собственный набор байт-кода, который обычно создается с помощью Solidity.

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

EVM не имеет функции планирования, модуль выполнения Ethereum извлекает транзакции из блока, EVM отвечает за их последовательное выполнение. В процессе выполнения будет изменено последнее мировое состояние, после завершения выполнения транзакции происходит накопление состояния, достигая последнего мирового состояния после завершения блока. Выполнение следующего блока строго зависит от мирового состояния после выполнения предыдущего блока, поэтому линейный процесс выполнения транзакций Ethereum не может быть хорошо оптимизирован для параллельного выполнения.

С этой точки зрения, протокол Ethereum устанавливает выполнение транзакций в определенном порядке. Хотя последовательное выполнение обеспечивает выполнение транзакций и смарт-контрактов в детерминированном порядке, что гарантирует безопасность, в условиях высокой нагрузки это может привести к перегрузке сети и задержкам, что также является причиной значительных узких мест производительности Ethereum, требующих расширения с помощью Layer2 Rollup.

Параллельный EVM: высокопроизводительный Layer1 хирургический метод

Параллельный путь высокопроизводительного Layer1

Большинство высокопроизводительных Layer 1 разрабатывают свои оптимизационные решения, основываясь на недостатках Эфира, связанных с невозможностью параллельной обработки. Здесь мы обсудим оптимизацию уровня выполнения, то есть виртуальную машину и параллельное выполнение.

Виртуальная машина

EVM разработан как 256-битная виртуальная машина, чтобы упростить обработку хэш-алгоритма Ethereum, который явно генерирует 256-битный вывод. Тем не менее, компьютер, который фактически запускает EVM, должен сопоставить 256-битные байты с локальной архитектурой для выполнения смарт-контрактов, что делает всю систему крайне неэффективной и непрактичной. Поэтому при выборе виртуальной машины высокопроизводительные Layer1 чаще используют виртуальные машины на основе WASM, eBPF байт-кода или Move байт-кода, а не EVM.

WASM — это компактный, быстро загружаемый, переносимый и безопасный на основе песочницы формат байт-кода. Разработчики могут использовать различные языки программирования для написания смарт-контрактов, а затем компилировать их в байт-код WASM и выполнять. WASM уже принят многими проектами блокчейна в качестве стандарта, включая EOS, Dfinity, Polkadot и другие, а Ethereum в будущем также интегрирует WASM, чтобы обеспечить более эффективный и простой уровень выполнения Ethereum, подходящий в качестве полностью децентрализованной вычислительной платформы.

eBPF изначально был BPF, который предназначался для эффективной фильтрации сетевых пакетов. Позже он эволюционировал в eBPF, предоставляющий более богатый набор инструкций, позволяющий динамически вмешиваться в ядро операционной системы и изменять его поведение без изменения исходного кода. Затем эта технология вышла за пределы ядра и развила пользовательский eBPF-runtime, который обладает высокой производительностью, безопасностью и портируемостью. Все смарт-контракты, выполняемые на определённой блокчейн-платформе, компилируются в SBF( на основе байт-кода eBPF) и выполняются в её блокчейн-сети.

Move является новым языком программирования смарт-контрактов, ориентированным на гибкость, безопасность и проверяемость. Язык Move предназначен для решения проблем безопасности в активах и транзакциях, позволяя четко определять и контролировать активы и транзакции. Верификатор байт-кода Move — это инструмент статического анализа, который анализирует байт-код Move и определяет, соблюдаются ли необходимые правила безопасности типов, памяти и ресурсов, без необходимости реализации и проверки на уровне смарт-контракта во время выполнения. Некоторые новые публичные блокчейны унаследовали Move или написали свои смарт-контракты через собственные кастомизированные версии.

Параллельный EVM: хирургия сердца высокопроизводительного Layer1

Параллельное выполнение

Параллельное выполнение в блокчейне означает одновременную обработку нерелевантных транзакций. Рассматривайте нерелевантные транзакции как независимые события. Например, если два человека торгуют токенами на разных торговых платформах, их транзакции могут обрабатываться одновременно. Однако, если они торгуют на одной платформе, возможно, потребуется выполнять транзакции в определенном порядке.

Основная задача реализации параллельного выполнения заключается в определении, какие транзакции не связаны между собой, а какие являются независимыми. Большинство высокопроизводительных Layer1 полагается на два метода: метод доступа к состоянию и оптимистичную параллельную модель.

Метод доступа к состоянию требует предварительного знания, какая часть состояния блокчейна доступна каждой транзакцией, чтобы проанализировать, какие транзакции являются независимыми.

В некоторых публичных блокчейнах программные контракты ( являются безсостоянием, потому что они не могут самостоятельно обращаться к любому состоянию, которое существует на протяжении всей транзакции. Чтобы получить доступ к состоянию или сохранить его, программе необходимо использовать учетные записи. Каждая транзакция должна указывать, к каким учетным записям будет происходить доступ в процессе выполнения транзакции, чтобы обработчик транзакций мог планировать параллельное выполнение несовпадающих транзакций, одновременно гарантируя согласованность данных.

В некоторых публичных блокчейнах каждый смарт-контракт является модулем, состоящим из определения функций и структур. Структуры создаются в функциях и могут передаваться другим модулям через вызовы функций. Экземпляры структур, хранящиеся во время выполнения, существуют как объекты, и есть три различных типа объектов: объект-владелец, общий объект и неизменяемый объект. Стратегия параллелизации аналогична вышеупомянутым публичным блокчейнам, транзакции также требуют указания, какие объекты будут обрабатываться.

Оптимистичная параллельная модель работает на предположении, что все транзакции независимы, просто ретроспективно проверяя это предположение и при необходимости внося коррективы.

Некоторые публичные блокчейны используют метод программного обеспечения блоков Block-STM) для применения оптимистичного параллельного выполнения. В Block-STM транзакции сначала устанавливаются в блоке в определенном порядке, а затем разбиваются между различными потоками обработки для одновременного выполнения. При обработке этих транзакций система отслеживает каждое изменение памяти, связанное с транзакцией. После каждого раунда обработки система проверяет все результаты транзакций. Если она обнаруживает, что какая-то транзакция затрагивает память, измененную предыдущими транзакциями, то результаты этой транзакции стираются и выполняются снова. Этот процесс продолжается до тех пор, пока все транзакции в блоке не будут обработаны.

Параллельный EVM: хирургия сердца высокопроизводительного Layer1

Параллельный EVM

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

Но в конце 2023 года, известные личности в отрасли одновременно упомянули о параллельном EVM, предвосхищая тенденции 2024 года, что привело к росту популярности EVM-совместимых Layer1 с использованием технологии параллельного выполнения, включая Monand и Sei.

В настоящее время на некоторых публичных цепочках решения, совместимые с EVM, Layer2 Rollup на Ethereum SVM, Layer2 Rollup на виртуальной машине Move Ethereum, модульные слои выполнения Layer1 и другие получили ярлык параллельного EVM, что приводит в замешательство.

Разумно определить параллельные EVM только для следующих трех категорий:

  1. Обновление параллельного выполнения для EVM-совместимого Layer1, не использующего технологии параллельного выполнения;

  2. EVM-совместимый Layer1, использующий технологии параллельного выполнения;

  3. Применена технология параллельного выполнения для неконкурирующего с EVM Layer1 решения, совместимого с EVM.

Некоторые основные Layer1, совместимые с EVM, не требуют представления, здесь кратко представлены несколько новых проектов.

Параллельный EVM: хирургия сердца высокой производительности Layer1

Monad — это высокопроизводительный Layer1, совместимый с EVM и использующий механизм PoS, который нацелен на значительное улучшение масштабируемости и скорости транзакций за счет параллельного выполнения. Monad позволяет параллельно выполнять транзакции в блоке для повышения эффективности. Он использует оптимистичную параллельную модель, начиная выполнение новых транзакций до завершения выполнения предыдущих. Чтобы справиться с некорректными результатами, Monad отслеживает входные/выходные данные и повторно выполняет несоответствующие транзакции. Статический анализатор кода может предсказывать зависимости, избегая недействительной параллельности, и в условиях неопределенности возвращаться к простому режиму. Это параллельное выполнение увеличивает пропускную способность и одновременно снижает вероятность неудачи транзакций.

Sei — это Layer1, разработанный на основе Cosmos SDK, специально созданный для DeFi, который представляет собой публичную цепочку. Sei V2 — это масштабное обновление сети Sei, нацеленное на то, чтобы стать первым полностью параллельным EVM. Подобно Monad, Sei V2 будет использовать оптимистическую параллелизацию. Это позволяет блокчейну одновременно выполнять транзакции без необходимости для разработчиков определять какие-либо зависимости. Когда возникают конфликты, блокчейн будет отслеживать каждую часть хранилища, затронутую транзакциями, и последовательно перезапускать эти транзакции. Этот процесс будет рекурсивно продолжаться, пока все нерешенные конфликты не будут разрешены.

Параллельный EVM: Хирургия сердца высокопроизводительного Layer1

Artela — это масштабируемая блокчейн-сеть, которая позволяет разработчикам создавать функционально насыщенные децентрализованные приложения. EVM++, запущенный Artela, представляет собой высокомасштабируемый + высокопроизводительный параллельный EVM, реализуемый в два этапа. Первый этап будет сосредоточен на параллельном выполнении, на основе параллельного выполнения гарантируя масштабируемость вычислительной мощности узлов сети через эластичные вычисления, что в конечном итоге приведет к реализации эластичного блочного пространства. Параллельное выполнение будет группировать транзакции в зависимости от анализа конфликтов зависимостей для поддержки параллельного выполнения.

Решение EVM-совместимости на определенной публичной цепочке является решением для выполнения EVM-транзакций на этой цепочке. Этот EVM фактически является смарт-контрактом на публичной цепочке, в котором реализован интерпретатор EVM, скомпилированный в байт-код SBF. Внутри EVM реализована система модели транзакций и модели аккаунтов Ethereum, пользователю нужно просто оплатить GAS-расходы EVM, чтобы отправить транзакцию. Расходы сети публичной цепочки оплачиваются Proxy. Публичная цепочка настоятельно требует предоставления списка аккаунтов для транзакций, и обернутые транзакции не являются исключением, поэтому обязанности Proxy включают в себя создание этого списка аккаунтов, а также получение возможности параллельного выполнения транзакций в публичной цепочке.

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

Совместимость с EVM позволяет разработчикам легко переносить свои приложения на Эфире на блокчейн, не требуя значительных изменений, что является хорошим направлением для построения экосистемы.

Параллельный EVM: хирургия сердца высокопроизводительного Layer1

Резюме

Параллельные технологии блокчейна уже стали старой темой для обсуждения, и время от времени они снова привлекают внимание, но в настоящее время основное внимание уделяется модификациям и имитациям оптимистичной модели выполнения, представленной механизмом Block-STM от Aptos, без существенных прорывов, поэтому интерес к этой теме сложно поддерживать.

Смотря в будущее, появится еще больше новых проектов Layer1, которые вступят в конкуренцию с параллельным EVM, в то время как некоторые старые Layer1 также реализуют параллельное обновление EVM или решения, совместимые с EVM. Оба направления ведут к одной и той же цели, и появится еще больше новых нарративов, связанных с повышением производительности.

Однако по сравнению с нарративом высокопроизводительного EVM, блокчейн может расцвести разнообразием, и появление таких нарративов, как WASM, SVM и Move VM, возможно, более ожидаемо.

Параллельный EVM: хирургия замены сердца для высокопроизводительного Layer1

ETH-0.78%
MOVE1.29%
Посмотреть Оригинал
На этой странице может содержаться сторонний контент, который предоставляется исключительно в информационных целях (не в качестве заявлений/гарантий) и не должен рассматриваться как поддержка взглядов компании Gate или как финансовый или профессиональный совет. Подробности смотрите в разделе «Отказ от ответственности» .
  • Награда
  • 3
  • Поделиться
комментарий
0/400
MeaninglessApevip
· 08-01 20:45
Снова говорите об EVM, не устали?
Посмотреть ОригиналОтветить0
DaoResearchervip
· 08-01 20:36
Ссылаясь на раздел 2.3 желтой книги ETH, степень связности конечного автомата в режиме Singleton требует проверки.
Посмотреть ОригиналОтветить0
ProveMyZKvip
· 08-01 20:34
Gas опять ростом.
Посмотреть ОригиналОтветить0
  • Закрепить