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?
Не смотря на то, что многие блокчейны используют свои собственные виртуальные машины, Ethereum далеко не единственная платформа, использующая EVM. Приведем несколько примеров:
- BNB Chain — блокчейн, созданный криптовалютной биржей Binance. Один из самых известных в криптовалютном пространстве, так как один из первых предложил более низкие транзакционные сборы.
- Polygon — одно из самых популярных решений 2 слоя для масштабирования Ethereum, призванное решить проблему высоких транзакционных сборов основной сети.
- Fantom — быстрая и высокопроизводительная сеть смарт-контрактов, использующая протокол консенсуса aBFT и полную поддержку EVM.
- Avalanche — первая децентрализованная платформа, созданная для глобальных финансов, с мгновенными транзакциями.