EVM-параллелизация: техническая эволюция от высокопроизводительного Layer1 до EVM-совместимых решений

EVM: ядро Ethereum

EVM (Эфир виртуальная машина) является ядром Ethereum, ответственным за выполнение смарт-контрактов и обработку транзакций.

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

EVM работает в более ограниченной области: это просто вычислительный движок, который предоставляет абстракцию вычислений и хранения, подобную спецификации Java Virtual Machine (JVM). С высокого уровня, JVM предназначен для предоставления среды выполнения, независимой от нижележащих хост-операционных систем или оборудования, обеспечивая совместимость между системами. Аналогично, EVM выполняет свой собственный набор байт-кода, который обычно компилируется из Solidity.

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

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

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

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

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

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

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

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

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

eBPF (ранняя версия BPF, Berkeley Packet Filter, Берлинетский фильтр пакетов) изначально предназначался для эффективной фильтрации сетевых пакетов, затем эволюционировал в eBPF, предлагая более богатый набор инструкций, позволяя динамически вмешиваться в поведение ядра операционной системы без изменения исходного кода. Позже эта технология вышла из ядра и развилась в пользовательское время выполнения eBPF, обладая высокой производительностью, безопасностью и портируемостью. Умные контракты, выполняемые на определенных блокчейнах, компилируются в SBF (основанный на eBPF) байт-код и выполняются в их сети.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  1. Нет обновления параллельного выполнения для EVM-совместимого Layer1 без использования технологии параллельного выполнения, например, некоторых основных публичных цепей;

  2. Применены технологии параллельного выполнения в EVM-совместимых Layer1, такие как некоторые новые проекты;

  3. Применение технологии параллельного выполнения в неEVM-совместимых Layer1 EVM-совместимых решениях, например, в некоторых кроссчейн проектах.

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

Некоторые основные публичные блокчейны, как самые популярные совместимые с EVM Layer 1, не нуждаются в дополнительном представлении. Здесь кратко представлены некоторые новые проекты и кросс-чейн решения.

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

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

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

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

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

Итог

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

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

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

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

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

Посмотреть Оригинал
This page may contain third-party content, which is provided for information purposes only (not representations/warranties) and should not be considered as an endorsement of its views by Gate, nor as financial or professional advice. See Disclaimer for details.
  • Награда
  • 7
  • Поделиться
комментарий
0/400
MEVEyevip
· 6ч назад
Все зависит от Gas, выжимающего Кошелек, платите, чтобы насладиться мучениями
Посмотреть ОригиналОтветить0
AirdropHuntervip
· 6ч назад
Где можно забрать этот Газ?
Посмотреть ОригиналОтветить0
ChainSpyvip
· 6ч назад
Играть в Блокчейн, не обращая внимания на показатели, просто смотря на код и инновации.
Посмотреть ОригиналОтветить0
LucidSleepwalkervip
· 6ч назад
Открыть Газ и всё.
Посмотреть ОригиналОтветить0
DisillusiionOraclevip
· 6ч назад
Что еще обсуждать, когда Gas-цены уже захлестнули людей?
Посмотреть ОригиналОтветить0
GmGmNoGnvip
· 6ч назад
bytecode тоже слишком крут 8
Посмотреть ОригиналОтветить0
MemeCoinSavantvip
· 7ч назад
evm в основном это java для дедженов, если честно
Посмотреть ОригиналОтветить0
  • Закрепить