crypto-folio

Понятно, практично, по делу

Вопросы и ответы·06 сентября 2026 г.·5 мин

Параллельный EVM: что это такое и почему он важен для Web3

Виртуальная машина Ethereum — однопоточная по конструкции. Каждый блок обрабатывается строго последовательно: транзакция A завершается до запуска транзакции B, B — до C, и так далее. В 2021 году эта схема справлялась с нагрузкой, к 2024-му — перестала.

Параллельный EVM: что это такое и почему он важен для Web3

При пиковом спросе средний газ на своп в Uniswap выходил за пределы комфортной для розничного пользователя зоны, mempool переполнялся, время включения в блок измерялось минутами. Узкое место — не сеть валидаторов и не консенсус, а именно исполнительный слой. Параллельный EVM — это архитектурный ответ на это узкое место: переход от последовательного исполнения к параллельному с сохранением байткод-совместимости с Ethereum.

Последовательный EVM — это процессор с одним ядром. Параллельный EVM — это многоядерный процессор, который ещё умеет договариваться сам с собой.

Почему традиционный EVM стал узким местом для масштабируемости

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

Последствия этого ограничения:

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

2. Газ растёт нелинейно при конкуренции за блок — пользователи перебивают ставку друг друга через priority fee.

3. Сеть деградирует при нагрузке на один популярный контракт — состояние монополизирует очередь.

4. Layer 2 решения снимают часть нагрузки, но наследуют последовательный исполнитель от L1.

Решения класса «сверни в zk» или «вынеси в rollup» не меняют природу исполнителя. Они уменьшают объём данных, попадающих в основную цепочку, но внутри каждого отдельного вычислительного окружения транзакции всё равно идут в один поток.

Механика параллельного выполнения: как система распределяет нагрузку

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

Базовый конвейер выглядит так:

1. На вход подаётся пакет транзакций блока.

2. Каждая транзакция проходит фазу преисполнения (pre-execution) или статического анализа: определяется множество адресов состояния, которые она прочитает или изменит — это так называемый access list.

3. Транзакции группируются по непересекающимся access list'ам.

4. Каждая группа запускается в отдельном потоке.

5. Результаты потоков объединяются в новый корень состояния.

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

Оптимистическая параллелизация и решение конфликтов доступа к данным

Главная проблема параллельного EVM — конфликты состояния. Две транзакции хотят изменить одну и ту же переменную. Запускать их параллельно нельзя: результат станет недетерминированным.

Базовый подход — оптимистическая параллелизация:

1. Все транзакции блока запускаются параллельно без предварительной проверки.

2. После выполнения каждая транзакция возвращает свой access list с указанием прочитанных и записанных слотов состояния.

3. Система проверяет пересечения между access list'ами транзакций, выполнявшихся в одном блоке.

4. При обнаружении конфликта — общий слот был прочитан одной транзакцией и записан другой — конфликтующие транзакции отбрасываются.

5. Отброшенные транзакции повторно выполняются последовательно в обновлённом состоянии.

Альтернативный подход — пейджинг состояния. Состояние разбивается на сегменты (shards of state), каждый сегмент обрабатывается своим потоком. Конфликты локализуются внутри сегмента. Пример — архитектура, где контракт размещается в определённом сегменте, а все вызовы к нему идут через соответствующий поток. Это снижает вероятность коллизий ценой ограничений на размещение контрактов.

Конфликт состояния — это гонка данных. В последовательном EVM её нет, потому что нет параллелизма. В параллельном EVM она появляется и решается повторным исполнением.

На практике конфликты возникают нечасто: большинство пользовательских транзакций не задевают общие слоты. Swap на Uniswap трогает конкретные пулы, перевод USDC трогает балансы отправителя и получателя — это узкие, локальные изменения. Конкуренция за один и тот же слот появляется в моменты ажиотажа: запуск популярного NFT-минта, ликвидации на кредитном протоколе, sniper-боты на новых токенах. В эти моменты параллельный исполнитель деградирует до последовательного — выигрыш по TPS исчезает, но система остаётся консистентной.

Кейсы Sei V2 и Monad: реальные показатели скорости и финализации

Два проекта определяют текущее состояние параллельного EVM: Sei и Monad.

Sei V2 интегрировал клиент Geth в собственный исполнитель. Это дало полную байткод-совместимость с Ethereum. На стороне параллелизации применена оптимистическая схема: транзакции исполняются параллельно, при конфликтах перезапускаются последовательно. Заявленная пропускная способность — до 20 000 TPS. Время финализации — 380–400 мс. Источник — спецификации Sei Network.

Monad строит параллельный EVM с нуля. Архитектура включает:

  • механизм консенсуса MonadBFT — вариант HotStuff с оптимизациями под параллельное исполнение;
  • асинхронное выполнение — блоки создаются параллельно с их исполнением;
  • база данных MonadDB — собственное хранилище состояния, оптимизированное под параллельный доступ;
  • заявленный целевой показатель — до 10 000+ TPS.

Источник — техническая документация проекта.

Сравнение ключевых параметров:

ПараметрSei V2Monad
EVM-совместимостьПолная, через интеграцию GethПолная, собственная реализация
Метод параллелизацииОптимистическаяОптимистическая + пейджинг
Целевой TPSДо 20 000До 10 000+
Время финализации380–400 мсОколо 1 с (заявлено)
КонсенсусTendermint-производныйMonadBFT
СостояниеПолная историяПолная история

Оба проекта заявляют ускорение обработки до 100x относительно базового последовательного EVM. Цифра зависит от нагрузки: при отсутствии конфликтов выигрыш максимален, при высокой конкуренции за состояние — сокращается.

Сохранение совместимости: почему разработчики выбирают параллельные сети

Главное свойство параллельного EVM, которое отличает его от альтернатив типа Solana VM или Move VM, — обратная совместимость с байткодом Ethereum. Контракт на Solidity, развёрнутый в основной сети Ethereum, переносится в параллельную сеть без изменения исходного кода. Инструментарий тоже наследуется: MetaMask, Hardhat, Foundry, Tenderly, Etherscan-совместимые обозреватели.

Для разработчика это означает:

1. Отсутствие затрат на переписывание контрактов.

2. Использование знакомых библиотек — OpenZeppelin, Uniswap v2/v3 форки, Chainlink.

3. Совместимость с существующими аудитами — аудит Ethereum-контракта применим к его двойнику в параллельной сети.

4. Привычные модели газа и адресации — EIP-1559 работает, адреса 20-байтные, сигнатуры событий — keccak256.

Для пользователя это означает:

1. Те же кошельки, тот же UX.

2. Снижение комиссий за счёт роста пропускной способности.

3. Те же риски — уязвимости контрактов не исчезают от смены исполнителя.

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

Итог: безопасность и применимость

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

Вердикт: технология безопасна для развёртывания существующих контрактов и инструментов, при условии стандартного аудита. Узкое место параллельного EVM — конкуренция за состояние в моменты пиковой нагрузки. Это ограничение не устраняется полностью и остаётся зоной наблюдения.

Частые вопросы

Что такое параллельный EVM?
Параллельный EVM — это архитектура, в которой независимые транзакции выполняются одновременно в разных потоках вместо последовательной обработки. При этом сохраняется байткод-совместимость с Ethereum.
Как параллельный EVM определяет, какие транзакции можно выполнять одновременно?
Система анализирует access list каждой транзакции и определяет, какие адреса и слоты состояния она прочитает или изменит. Транзакции с непересекающимися access list группируются и запускаются параллельно.
Что происходит при конфликте транзакций в параллельном EVM?
Если транзакции обращаются к одному и тому же слоту состояния несовместимым образом, конфликтующие операции отбрасываются и повторно выполняются последовательно в обновлённом состоянии.
Какие показатели скорости заявляют Sei V2 и Monad?
Sei V2 заявляет пропускную способность до 20 000 TPS и время финализации 380–400 мс. Monad заявляет целевую производительность до 10 000+ TPS и финализацию около 1 секунды.
Нужно ли переписывать Solidity-контракты для переноса в параллельную EVM-сеть?
Согласно статье, контракт на Solidity можно перенести в параллельную сеть без изменения исходного кода. Также сохраняется совместимость с привычными инструментами и библиотеками Ethereum.
Текст: Анатолий Гуляев, Обозреватель смарт-контрактов и DeFi-протоколов