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

Как работает виртуальная машина Ethereum (EVM)?
EVM не только управляет тем, что узлы могут или не могут делать с распределенным реестром, поддерживаемым блокчейном Ethereum, но также определяет конкретные правила изменения состояния от блока к блоку, что обеспечивает функциональность смарт-контрактов, благодаря которой Ethereum стал известен.
Чтобы понять, что делает виртуальная машина Ethereum, нужно рассмотреть каждую из различных функций, которые она выполняет для обеспечения бесперебойной работы сети Ethereum. Для каждого входного сигнала, который он получает, EVM производит детерминированный по своей природе результат, который следует математической функции в самом простом смысле.
Работая подобно стековой машине, которая помещает временные значения в стек и из него, EVM имеет глубину 1024 элемента, каждый из которых представляет собой 256-битное слово. Он также поддерживает временную память в виде массива байтов, который меняется между двумя транзакциями в блокчейне Ethereum. Скомпилированные коды смарт-контрактов выполняются EVM в виде набора из 140 стандартных кодов операций, в то время как другие операции стека, специфичные для блокчейна, также реализуются им.

Таким образом, EVM имеет машинное состояние, которое по своей природе изменчиво во время обработки любой транзакции, и глобальное состояние, которое содержит информацию о различных учетных записях, поддерживаемых в блокчейне Ethereum. Все действия регулируются кодом виртуальной машины EVM, который сам по себе претерпел несколько итераций с момента запуска сети Ethereum в 2015 году, что привело к появлению различных реализаций EVM, используемых в настоящее время.
Простыми словами, EVM отвечает за поддержание уровня абстракции между тысячами узлов Ethereum и исполняемым кодом, действуя как функция, которая выдает согласованные результаты, не разглашая многих деталей клиентам или узлам-валидаторам.
Для чего была создана EVM?
Виртуальная машина запускает и обрабатывает небольшие исполняемые программы, называемые смарт-контрактами, которые могут быть написаны на различных языках программирования, среди которых: Solidity, Vyper, Python, Yul, и другие.
Благодаря этому стало возможно создание тысяч децентрализованных приложений (dApps) в сфере децентрализованных финансов (DeFi) и невзаимозаменяемых токенов (NFT). Смарт-контракты, обеспечивающие работу данных приложений преобразуются в байт-коды, которые распределяются между всеми узлами в сети Ethereum. После разворачивания смарт-контракта, EVM отвечает за его связь со всеми узлами и изменениями состояний при достижении консенсуса.
По сути, EVM позволяет всем узлам сети обрабатывать смарт-контракты с использованием байт-кода, не используя базовый язык программирования и таким образом изолировать их выполнение от основной сети Ethereum.
Где используется EVM?
Не смотря на то, что многие блокчейны используют свои собственные виртуальные машины, подавляющее большинство блокчейнов работает именно на EVM. Приведем несколько примеров сетей, которые первыми внедрили виртуальную машину Ethereum:
1. Ethereum
Как следует из названия, виртуальная машины Ethereum (EVM), первой была применена именно в блокчейне Ethereum, запущенном 30 июля 2015 года.
Собственный токен Ethereum:
2. BNB Chain
BNB Chain — блокчейн, созданный криптовалютной биржей Binance. Один из самых известных в криптовалютном пространстве, так как один из первых предложил более низкие транзакционные сборы.
Собственный токен BNB Chain:
3. Polygon
Polygon (ранее известная, как Matic Network) — первая хорошо структурированная и простая в использовании платформа для масштабирования и разработки инфраструктуры Ethereum. Её ключевым компонентом является Polygon SDK — модульная и гибкая платформа, поддерживающая создание различных типов приложений.
Собственный токен Polygon:
4. Avalanche
Avalanche — это блокчейн уровня 1, функционирующий как платформа для децентрализованных приложений и пользовательских блокчейн-сетей. Avalanche стремится достичь увеличения объёма транзакций до 6500 в секунду без ущерба для масштабируемости.
Собственный токен Avalanche: