Что такое EVM
Что такое EVM
EVM (Ethereum Virtual Machine, виртуальная машина Ethereum) — это вычислительный движок, на котором работает Ethereum и множество других блокчейнов. Это программная среда, исполняющая смарт-контракты — самоисполняющиеся программы, хранящиеся в блокчейне. Когда разработчик пишет смарт-контракт на Solidity (или другом EVM-совместимом языке), компилирует его и развёртывает в сети, именно EVM фактически запускает этот код.
Каждый узел в EVM-совместимой сети запускает одну и ту же виртуальную машину с одинаковыми правилами. Это делает смарт-контракты детерминированными: при одинаковых входных данных и состоянии каждый узел производит одинаковый результат. Нет неоднозначности, нет проблемы «у меня на машине работает». EVM гарантирует, что каждый участник сети согласен с результатом каждого вычисления.
Коротко: EVM — стандартизированный движок исполнения смарт-контрактов на Ethereum и EVM-совместимых сетях. Он определяет, как запускается код, как хранится состояние и как расходуется газ, создавая единую среду выполнения, работающую одинаково на всех узлах.
Как работает EVM
Исполнение байт-кода
Смарт-контракты хранятся в сети не в виде человекочитаемого исходного кода. Перед развёртыванием исходный код (обычно написанный на Solidity) компилируется в байт-код — низкоуровневый набор инструкций, понятный EVM. Каждая инструкция — это опкод: базовая операция вроде «сложить два числа», «сохранить значение в памяти», «загрузить данные из хранилища» или «перевести токены».
Когда транзакция запускает смарт-контракт, каждый валидирующий узел сети:
- Загружает байт-код контракта из состояния блокчейна.
- Последовательно исполняет опкоды, следуя спецификации EVM.
- Обновляет состояние блокчейна на основе результата исполнения.
- Списывает газ за каждый исполненный опкод.
Поскольку каждый узел запускает один и тот же байт-код с одинаковыми правилами, все приходят к одному и тому же результату. Это детерминированное исполнение — основа бездоверительных вычислений в блокчейне.
Газ
У каждого опкода есть стоимость в газе — единица измерения, отражающая вычислительное усилие, необходимое для исполнения инструкции. Газ служит двум целям:
- Учёт ресурсов — газ предотвращает бесконечные циклы и гарантирует, что каждое вычисление потребляет ограниченное количество сетевых ресурсов. Контракт, который попытается работать бесконечно, исчерпает лимит газа и откатится.
- Механизм комиссий — пользователи платят комиссии за газ (деноминированные в нативном токене сети), компенсируя валидаторам исполнение транзакций. Более сложные операции стоят больше газа.
Стоимость газа определяется спецификацией 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 со стоимостью газа, описаниями и песочницей для тестирования исполнения байт-кода.
No comments to display
No comments to display