EVM является ядром Ethereum, отвечающим за выполнение смарт-контрактов и обработку транзакций. В отличие от обычных виртуальных машин, EVM представляет собой движок, сосредоточенный на вычислениях, предлагающий абстракцию вычислений и хранения. Он выполняет свой собственный набор байт-кода, который обычно создается с помощью Solidity.
EVM является почти тьюринг-полноценной машиной состояния. "Почти" потому, что все выполняемые шаги потребляют ограниченные ресурсы Gas, что предотвращает возможные бесконечные циклы, которые могут остановить всю платформу.
EVM не имеет функции планирования, модуль выполнения Ethereum извлекает транзакции из блока, EVM отвечает за последовательное выполнение. В процессе выполнения изменяется состояние мира, после завершения выполнения одной транзакции происходит накопление состояния до достижения последнего состояния мира после завершения блока. Выполнение следующего блока строго зависит от состояния мира после выполнения предыдущего блока, поэтому линейный процесс выполнения транзакций Ethereum не может быть хорошо оптимизирован для параллельного выполнения.
Протокол Ethereum предполагает последовательное выполнение транзакций. Хотя последовательное выполнение гарантирует, что транзакции и смарт-контракты могут выполняться в определенном порядке, что обеспечивает безопасность, в условиях высокой нагрузки это может привести к перегрузке сети и задержкам. Это также является причиной того, что у Ethereum есть значительные ограничения по производительности и требуется расширение с помощью Layer2 Rollup.
Параллельный путь высокопроизводительного Layer1
Большинство высокопроизводительных Layer1 разрабатывают свои собственные оптимизационные решения, основанные на недостатках невозможности параллельной обработки в Ethereum, сосредоточив внимание на оптимизации уровня исполнения, включая виртуальные машины и параллельное выполнение.
Виртуальная машина
EVM спроектирован как 256-битная виртуальная машина, с целью упрощения обработки хэш-алгоритмов Ethereum. Однако для фактического запуска EVM на компьютере необходимо сопоставить 256-битные байты с локальной архитектурой для выполнения смарт-контрактов, что делает всю систему очень неэффективной. Поэтому высокопроизводительные Layer1 чаще используют виртуальные машины на основе WASM, eBPF байт-кода или Move байт-кода.
WASM — это формат байт-кода, который отличается небольшим размером, быстрой загрузкой, портативностью и основанной на песочнице безопасностью. Разработчики могут использовать различные языки программирования для написания смарт-контрактов, а затем компилировать их в байт-код WASM и выполнять. Многие блокчейн-проекты уже приняли WASM в качестве стандарта.
eBPF происходит от BPF, предоставляя более богатый набор инструкций, позволяя динамически вмешиваться в операционную систему и изменять ее поведение без изменения исходного кода. Умные контракты, выполняемые в некоторых блокчейн-сетях, компилируются в байт-код на основе eBPF и выполняются.
Move является новым языком программирования смарт-контрактов, который акцентирует внимание на гибкости, безопасности и проверяемости. Язык Move предназначен для решения проблем безопасности в активах и транзакциях, позволяя строго определять и контролировать активы и транзакции.
Параллельное выполнение
Параллельное выполнение в блокчейне означает одновременную обработку нерелевантных транзакций. Основная проблема реализации параллельного выполнения заключается в том, чтобы определить, какие транзакции не являются связанными, а какие независимы. Высокопроизводительный Layer1 в основном полагается на два метода: метод доступа к состоянию и оптимистичную параллельную модель.
Метод доступа к состоянию требует заранее знать, какая часть состояния блокчейна может быть доступна каждой транзакцией, чтобы проанализировать, какие транзакции являются независимыми. Некоторые платформы блокчейна используют этот метод, требуя от транзакций указывать, какие аккаунты или объекты будут доступны, чтобы обеспечить параллельное выполнение неперекрывающихся транзакций.
Оптимистичная параллельная модель предполагает, что все транзакции независимы, просто ретроспективно проверяя это предположение и при необходимости корректируя его. Некоторые блокчейны используют метод Block-STM для применения оптимистического параллельного выполнения, транзакции сначала устанавливаются в блоке в определенном порядке, а затем разделяются и выполняются одновременно между различными потоками обработки.
Параллельный EVM
Концепция параллельного EVM была предложена в 2021 году и изначально означала EVM, поддерживающий одновременную обработку нескольких транзакций. К концу 2023 года параллельный EVM снова стал актуальной темой, что вызвало волну появления EVM-совместимых Layer1 с использованием технологии параллельного выполнения.
В настоящее время разумно определить, что параллельные EVM включают три категории:
Обновление параллельного выполнения для EVM-совместимого Layer1, не использующего технологию параллельного выполнения.
EVM-совместимый Layer1 с использованием технологии параллельного выполнения
Использование технологии параллельного выполнения в EVM-совместимых решениях Layer1, не совместимых с EVM
Некоторые новые проекты разрабатывают параллельные EVM-решения, нацеленные на значительное увеличение масштабируемости и скорости транзакций за счет параллельного выполнения. Эти проекты используют различные технологические решения, такие как оптимистичная параллельная модель, статический анализ кода и т.д., для реализации параллельной обработки транзакций.
В то же время некоторые блокчейны, не совместимые с EVM, также исследуют решения по совместимости с EVM, реализуя интерпретатор EVM в своей нативной среде для поддержки выполнения смарт-контрактов Ethereum. Эти решения используют возможности параллельного выполнения базового блокчейна для обеспечения более высокой производительности EVM-транзакций.
Резюме
Параллельные технологии блокчейна являются темой, которая обсуждается неоднократно, но в настоящее время основное внимание уделяется модификации и имитации оптимистичной модели исполнения, и пока не произошло существенных прорывов. В будущем может появиться больше новых проектов Layer1, которые присоединятся к конкуренции за параллельный EVM, а старые Layer1 также могут реализовать параллельное обновление EVM или EVM-совместимые решения.
Помимо высокопроизводительного EVM, в области блокчейна также могут появиться другие виртуальные машинные технологии, такие как WASM, SVM и Move VM, способствуя разнообразному развитию всей экосистемы.
На этой странице может содержаться сторонний контент, который предоставляется исключительно в информационных целях (не в качестве заявлений/гарантий) и не должен рассматриваться как поддержка взглядов компании Gate или как финансовый или профессиональный совет. Подробности смотрите в разделе «Отказ от ответственности» .
12 Лайков
Награда
12
3
Поделиться
комментарий
0/400
JustHereForAirdrops
· 08-04 17:05
Газ费 опять на луне, кто не понимает, пусть бегает.
Посмотреть ОригиналОтветить0
HalfBuddhaMoney
· 08-03 23:22
Газ действительно тяжело, одна комиссия стоит как целый столик с хот-потом.
Параллельный EVM: новое направление в прорыве производительности Блокчейн и многообразии экосистемы
EVM: Основной компонент Ethereum
EVM является ядром Ethereum, отвечающим за выполнение смарт-контрактов и обработку транзакций. В отличие от обычных виртуальных машин, EVM представляет собой движок, сосредоточенный на вычислениях, предлагающий абстракцию вычислений и хранения. Он выполняет свой собственный набор байт-кода, который обычно создается с помощью Solidity.
EVM является почти тьюринг-полноценной машиной состояния. "Почти" потому, что все выполняемые шаги потребляют ограниченные ресурсы Gas, что предотвращает возможные бесконечные циклы, которые могут остановить всю платформу.
EVM не имеет функции планирования, модуль выполнения Ethereum извлекает транзакции из блока, EVM отвечает за последовательное выполнение. В процессе выполнения изменяется состояние мира, после завершения выполнения одной транзакции происходит накопление состояния до достижения последнего состояния мира после завершения блока. Выполнение следующего блока строго зависит от состояния мира после выполнения предыдущего блока, поэтому линейный процесс выполнения транзакций Ethereum не может быть хорошо оптимизирован для параллельного выполнения.
Протокол Ethereum предполагает последовательное выполнение транзакций. Хотя последовательное выполнение гарантирует, что транзакции и смарт-контракты могут выполняться в определенном порядке, что обеспечивает безопасность, в условиях высокой нагрузки это может привести к перегрузке сети и задержкам. Это также является причиной того, что у Ethereum есть значительные ограничения по производительности и требуется расширение с помощью Layer2 Rollup.
Параллельный путь высокопроизводительного Layer1
Большинство высокопроизводительных Layer1 разрабатывают свои собственные оптимизационные решения, основанные на недостатках невозможности параллельной обработки в Ethereum, сосредоточив внимание на оптимизации уровня исполнения, включая виртуальные машины и параллельное выполнение.
Виртуальная машина
EVM спроектирован как 256-битная виртуальная машина, с целью упрощения обработки хэш-алгоритмов Ethereum. Однако для фактического запуска EVM на компьютере необходимо сопоставить 256-битные байты с локальной архитектурой для выполнения смарт-контрактов, что делает всю систему очень неэффективной. Поэтому высокопроизводительные Layer1 чаще используют виртуальные машины на основе WASM, eBPF байт-кода или Move байт-кода.
WASM — это формат байт-кода, который отличается небольшим размером, быстрой загрузкой, портативностью и основанной на песочнице безопасностью. Разработчики могут использовать различные языки программирования для написания смарт-контрактов, а затем компилировать их в байт-код WASM и выполнять. Многие блокчейн-проекты уже приняли WASM в качестве стандарта.
eBPF происходит от BPF, предоставляя более богатый набор инструкций, позволяя динамически вмешиваться в операционную систему и изменять ее поведение без изменения исходного кода. Умные контракты, выполняемые в некоторых блокчейн-сетях, компилируются в байт-код на основе eBPF и выполняются.
Move является новым языком программирования смарт-контрактов, который акцентирует внимание на гибкости, безопасности и проверяемости. Язык Move предназначен для решения проблем безопасности в активах и транзакциях, позволяя строго определять и контролировать активы и транзакции.
Параллельное выполнение
Параллельное выполнение в блокчейне означает одновременную обработку нерелевантных транзакций. Основная проблема реализации параллельного выполнения заключается в том, чтобы определить, какие транзакции не являются связанными, а какие независимы. Высокопроизводительный Layer1 в основном полагается на два метода: метод доступа к состоянию и оптимистичную параллельную модель.
Метод доступа к состоянию требует заранее знать, какая часть состояния блокчейна может быть доступна каждой транзакцией, чтобы проанализировать, какие транзакции являются независимыми. Некоторые платформы блокчейна используют этот метод, требуя от транзакций указывать, какие аккаунты или объекты будут доступны, чтобы обеспечить параллельное выполнение неперекрывающихся транзакций.
Оптимистичная параллельная модель предполагает, что все транзакции независимы, просто ретроспективно проверяя это предположение и при необходимости корректируя его. Некоторые блокчейны используют метод Block-STM для применения оптимистического параллельного выполнения, транзакции сначала устанавливаются в блоке в определенном порядке, а затем разделяются и выполняются одновременно между различными потоками обработки.
Параллельный EVM
Концепция параллельного EVM была предложена в 2021 году и изначально означала EVM, поддерживающий одновременную обработку нескольких транзакций. К концу 2023 года параллельный EVM снова стал актуальной темой, что вызвало волну появления EVM-совместимых Layer1 с использованием технологии параллельного выполнения.
В настоящее время разумно определить, что параллельные EVM включают три категории:
Некоторые новые проекты разрабатывают параллельные EVM-решения, нацеленные на значительное увеличение масштабируемости и скорости транзакций за счет параллельного выполнения. Эти проекты используют различные технологические решения, такие как оптимистичная параллельная модель, статический анализ кода и т.д., для реализации параллельной обработки транзакций.
В то же время некоторые блокчейны, не совместимые с EVM, также исследуют решения по совместимости с EVM, реализуя интерпретатор EVM в своей нативной среде для поддержки выполнения смарт-контрактов Ethereum. Эти решения используют возможности параллельного выполнения базового блокчейна для обеспечения более высокой производительности EVM-транзакций.
Резюме
Параллельные технологии блокчейна являются темой, которая обсуждается неоднократно, но в настоящее время основное внимание уделяется модификации и имитации оптимистичной модели исполнения, и пока не произошло существенных прорывов. В будущем может появиться больше новых проектов Layer1, которые присоединятся к конкуренции за параллельный EVM, а старые Layer1 также могут реализовать параллельное обновление EVM или EVM-совместимые решения.
Помимо высокопроизводительного EVM, в области блокчейна также могут появиться другие виртуальные машинные технологии, такие как WASM, SVM и Move VM, способствуя разнообразному развитию всей экосистемы.