Skip to main content

Что такое EVM

Что такое EVM

EVM (Ethereum Virtual Machine, виртуальная машина Ethereum) — это вычислительный движок, на котором работает Ethereum и множество других блокчейнов. Это программная среда, исполняющая смарт-контракты — самоисполняющиеся программы, хранящиеся в блокчейне. Когда разработчик пишет смарт-контракт на Solidity (или другом EVM-совместимом языке), компилирует его и развёртывает в сети, именно EVM фактически запускает этот код.

Каждый узел в EVM-совместимой сети запускает одну и ту же виртуальную машину с одинаковыми правилами. Это делает смарт-контракты детерминированными: при одинаковых входных данных и состоянии каждый узел производит одинаковый результат. Нет неоднозначности, нет проблемы «у меня на машине работает». EVM гарантирует, что каждый участник сети согласен с результатом каждого вычисления.

Коротко: EVM — стандартизированный движок исполнения смарт-контрактов на Ethereum и EVM-совместимых сетях. Он определяет, как запускается код, как хранится состояние и как расходуется газ, создавая единую среду выполнения, работающую одинаково на всех узлах.

Как работает EVM

Исполнение байт-кода

Смарт-контракты хранятся в сети не в виде человекочитаемого исходного кода. Перед развёртыванием исходный код (обычно написанный на Solidity) компилируется в байт-код — низкоуровневый набор инструкций, понятный EVM. Каждая инструкция — это опкод: базовая операция вроде «сложить два числа», «сохранить значение в памяти», «загрузить данные из хранилища» или «перевести токены».

Когда транзакция запускает смарт-контракт, каждый валидирующий узел сети:

  1. Загружает байт-код контракта из состояния блокчейна.
  2. Последовательно исполняет опкоды, следуя спецификации EVM.
  3. Обновляет состояние блокчейна на основе результата исполнения.
  4. Списывает газ за каждый исполненный опкод.

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

Газ

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

  • Учёт ресурсов — газ предотвращает бесконечные циклы и гарантирует, что каждое вычисление потребляет ограниченное количество сетевых ресурсов. Контракт, который попытается работать бесконечно, исчерпает лимит газа и откатится.
  • Механизм комиссий — пользователи платят комиссии за газ (деноминированные в нативном токене сети), компенсируя валидаторам исполнение транзакций. Более сложные операции стоят больше газа.

Стоимость газа определяется спецификацией EVM и одинакова для всех EVM-совместимых сетей (хотя цена газа в нативном токене различается от сети к сети).

Состояние и хранилище

EVM поддерживает глобальное состояние — маппинг от адресов (как пользовательских аккаунтов, так и аккаунтов контрактов) к их текущим балансам, коду и хранилищу. Хранилище смарт-контракта организовано как хранилище «ключ—значение»: у каждого контракта есть собственное 256-битное адресное пространство, где он может читать и записывать постоянные данные.

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

Стековая архитектура

EVM — это стековая машина: она использует стек «последним пришёл — первым вышел» (LIFO) для хранения промежуточных значений во время вычислений, а не именованные регистры. Опкоды помещают значения в стек, оперируют верхними элементами и записывают результаты обратно. Эта конструкция проста и хорошо специфицирована, но отличается от регистровых архитектур, используемых большинством традиционных CPU и некоторыми новыми блокчейн-виртуальными машинами (например, SBF/eBPF у Solana).

Почему EVM важен

Стандарт, ставший экосистемой

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

Что разделяется Что это означает на практике
Язык смарт-контрактов Разработчики пишут Solidity один раз и развёртывают на любой EVM-сети
Инструменты разработки Hardhat, Foundry, Remix и другие инструменты работают на всех EVM-сетях
Совместимость кошельков MetaMask и другие EVM-кошельки работают при простом добавлении новой сети
Стандарты токенов ERC-20 (взаимозаменяемые токены), ERC-721 (NFT) и другие стандарты портируемы между сетями
Аудит и безопасность Аудиторы безопасности, инструменты формальной верификации и лучшие практики переносимы между EVM-сетями
Знания разработчиков Разработчик, знающий Solidity и EVM, может работать с Ethereum, Polygon, Avalanche, BNB Chain, Arbitrum, Base и десятками других сетей

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

Мультичейн-развёртывание

Для проектов — включая крипто-ИИ проекты — EVM-совместимость означает, что смарт-контракт, развёрнутый на Ethereum, можно развернуть на Polygon, C-Chain Avalanche, Arbitrum, Base или BNB Smart Chain с минимальными изменениями. Это обеспечивает:

  • Мультичейн-присутствие — проект может развернуть один и тот же токенный контракт и базовую логику на нескольких сетях, охватывая разные пользовательские базы.
  • Миграцию между сетями — если проекту нужно перейти на сеть с более низкими комиссиями или более высокой пропускной способностью, EVM-совместимость снижает стоимость миграции.
  • Компонуемость — в любой EVM-сети контракты могут взаимодействовать друг с другом через одинаковые интерфейсы и стандарты, обеспечивая DeFi-компонуемость, интеграцию токенов и разделяемую инфраструктуру.

Ограничения

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

  • Нет нативной плавающей точки — EVM использует только 256-битные целые числа. Арифметику с плавающей точкой (необходимую для большинства ИИ/ML-вычислений) приходится эмулировать, что крайне дорого по газу.
  • Ограничения по газу — лимит газа блока ограничивает общий объём вычислений на блок. Сложные операции (такие как умножение матриц для ИИ-инференса) непомерно дороги в рамках исполнения EVM.
  • Последовательное исполнение — EVM обрабатывает транзакции последовательно внутри блока. Параллельное исполнение, которое современные CPU используют для производительности, не поддерживается нативно (хотя некоторые новые EVM-совместимые сети экспериментируют с параллельным исполнением EVM).
  • Стоимость хранения — хранение больших объёмов данных в блокчейне обходится дорого. ИИ-модели, датасеты и промежуточные вычисления слишком велики для ончейн-хранения.

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

Где это появляется в карточках проектов DecAIHub

В карточках проектов DecAIHub EVM отображается в:

  • Type — EVM указывает, что проект работает на EVM-совместимой сети. Это говорит читателю, что проект использует смарт-контракты на Solidity и стандартный инструментарий Ethereum.
  • Main chain — указывается конкретная EVM-совместимая сеть (Ethereum, Polygon, Avalanche, Arbitrum, Base, BNB Smart Chain и т.д.). Все они разделяют EVM-исполнение.
  • Token standard — EVM-совместимые сети используют стандарты токенов Ethereum. ERC-20 (взаимозаменяемые токены), ERC-721 (NFT) и ERC-1155 (мульти-токен) — наиболее распространённые. Эти стандарты специфичны для EVM-экосистемы.
  • Smart contracts — если смарт-контракты проекта верифицированы в блок-эксплорере, читатель может их проверить. EVM-контракты пишутся на Solidity (или Vyper) и компилируются в байт-код EVM.

Классификация Type: EVM предоставляет полезный контекст об инструментарии и экосистеме проекта, но сама по себе ничего не говорит о качестве ИИ проекта или необходимости его токена.

Что EVM-совместимость сама по себе не доказывает

  • EVM-совместимость не доказывает ИИ-возможности. EVM исполняет смарт-контракты; ИИ-модели работают на GPU. Присутствие проекта в EVM-сети ничего не говорит о наличии у него настоящего AI component.
  • Развёртывание на EVM-сети не делает проект уникальным. Один и тот же контракт можно развернуть на десятках EVM-совместимых сетей. Выбор сети — инфраструктурное решение, а не дифференциатор.
  • Верифицированные смарт-контракты не доказывают работу офчейн-компонента. У проекта может быть чистый, аудированный ончейн-код и при этом не быть работающего ИИ-пайплайна. Ончейн- и офчейн-компоненты нужно оценивать отдельно.
  • Инструменты экосистемы EVM не снижают потребность в доказательствах. Поддержка MetaMask, листинг в блок-эксплорере и ERC-20 токены — стандартная инфраструктура, а не свидетельство технологии, инновации или качества.
  • Исполнение EVM — это не исполнение ИИ. Запуск нейронной сети внутри EVM непомерно дорог для любой нетривиальной модели. Когда проект заявляет «ончейн-ИИ» на EVM-сети, проверьте, что именно работает ончейн, а что офчейн.

Не путать с

  • Ethereum — Ethereum — конкретная блокчейн-сеть. EVM — виртуальная машина, которую Ethereum (и многие другие сети) используют. «EVM» относится к движку исполнения; «Ethereum» — к сети, её валидаторам и состоянию.
  • Non-EVM блокчейн — блокчейны вроде Solana, Cosmos-сетей и Bittensor используют другие виртуальные машины (SVM, CosmWasm, кастомные среды исполнения). Они не совместимы с EVM, что означает, что Solidity-контракты и инструменты EVM не работают на них нативно.
  • Смарт-контракт — смарт-контракт — это программа, работающая на EVM. EVM — движок; смарт-контракт — код, который он исполняет. Смарт-контракты также существуют на non-EVM сетях, используя другие языки и среды исполнения.
  • Solidity — Solidity — самый популярный язык программирования для EVM-смарт-контрактов, но это не сам EVM. Vyper — ещё один EVM-совместимый язык. EVM исполняет скомпилированный байт-код независимо от того, какой исходный язык его произвёл.

Часто задаваемые вопросы

Что значит «EVM-совместимый»?

Блокчейн является EVM-совместимым, если он может исполнять байт-код EVM — скомпилированную форму Solidity-смарт-контрактов — используя тот же набор опкодов и правила исполнения, что и Ethereum. На практике это означает, что разработчики могут развёртывать одни и те же контракты на нескольких EVM-совместимых сетях, использовать одни и те же инструменты (Hardhat, Foundry, MetaMask) и полагаться на одни и те же стандарты токенов (ERC-20, ERC-721). Примеры EVM-совместимых сетей: Polygon, Avalanche C-Chain, BNB Smart Chain, Arbitrum и Base.

Могут ли ИИ-модели работать внутри EVM?

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

Почему так много блокчейнов принимают EVM?

Сетевые эффекты. Ethereum стал первой крупной платформой смарт-контрактов, и его экосистема разработчиков — знание Solidity, инструменты, экспертиза аудита, поддержка кошельков и стандарты токенов — росла годами. Новый блокчейн, принимающий EVM, мгновенно получает доступ ко всей этой экосистеме. Разработчикам не нужно изучать новый язык, проекты могут развёртывать существующие контракты, а пользователи могут подключаться привычными кошельками. Построение конкурирующей экосистемы с нуля — значительно дороже и рискованнее. EVM-совместимость — прагматичный путь к принятию.

В чём разница между EVM-совместимым и EVM-эквивалентным?

EVM-совместимый означает, что сеть может запускать байт-код EVM и поддерживает те же опкоды, но могут быть незначительные различия в поведении (например, стоимость газа, прекомпайлы или пограничные случаи поведения опкодов). EVM-эквивалентный означает, что сеть воспроизводит поведение EVM Ethereum на уровне опкодов — каждая операция даёт тот же результат, что и на Ethereum. EVM-эквивалентность — более сильное утверждение: даже сложные контракты и инструменты, зависящие от точного поведения EVM, должны работать без модификации. Polygon zkEVM, например, стремится к EVM-эквивалентности.

Внешние ссылки

  • Ethereum.org — Ethereum Virtual Machine — официальная документация Ethereum Foundation, объясняющая архитектуру EVM, опкоды и модель исполнения.
  • Ethereum Yellow Paper — формальная спецификация протокола Ethereum, включая полный набор опкодов EVM и семантику исполнения.
  • EVM Codes — интерактивный справочник опкодов EVM со стоимостью газа, описаниями и песочницей для тестирования исполнения байт-кода.

См. также