Что такое Ethereum Virtual Machine (EVM)?
Главное
- EVM (Ethereum Virtual Machine) — виртуальная вычислительная среда, распределенный компьютер, отвечающий за выполнение алгоритмов в сети Ethereum, называемых смарт-контрактами.
- EVM считается полной по Тьюрингу машиной, что означает теоретическую возможность обработки любых вычислений, которые могут быть сделаны на компьютерах при достаточном количестве вычислительных ресурсов.
- В качестве платы за выполнение смарт-контрактов EVM использует «газ» (gwei), который включается в стоимость транзакции. Конкретный объем газа, который должен оплатить пользователь, зависит от сложности выполняемых вычислений и текущей загруженности блокчейна Ethereum.
Создатель EVM
Концепцию Ethereum Virtual Machine изложил в «Yellow Paper» в 2015 году сооснователь Ethereum и технический директор Ethereum Foundation Гэвин Вуд. Он также разработал язык программирования Solidity, с помощью которого создают смарт-контракты на блокчейне Ethereum. В 2016 году Вуд покинул Ethereum, чтобы заняться развитием нового проекта — Polkadot.
Для чего нужна Ethereum Virtual Machine
EVM можно представить как множество распределенных компьютеров, занятых вычислением по одинаковым правилам в одной сети, не имеющих централизованного органа управления.
В отличие от протокола биткоина, представленного как распределенный реестр, Ethereum представляет большую структуру данных, за обработку и изменение которых отвечает EVM. Любой код, записанный в блок Ethereum, выполняется на каждой из десятков тысяч виртуальных машин независимо друг от друга.
EVM гарантирует, что все транзакции и смарт-контракты в блокчейне Ethereum будут выполнены согласно установленным правилам в соответствии с кодом смарт-контракта. Именно EVM служит платформой для выполнения операций с токенами в сети Ethereum, вызывая смарт-контракты, меняя балансы адресов и состояния приложений.
Значение «газа» для EVM
Газ (gwei) в Ethereum выполняет функцию внутренней валюты, используемой в качестве оплаты за операции, проводимые на EVM. 1 gwei равен 0.000000001 ETH. «Газ» в Ethereum — аналог автомобильного топлива, которым пользователь должен «заправить» перевод перед началом движения.
Лимит газа для каждой транзакции будет различаться в зависимости от сложности операции и загруженности сети Ethereum. Например, в середине 2021 года на фоне ажиотажного спроса на мем-криптовалюту Shiba Inu средняя комиссия за транзакцию в Ethereum достигла достигла $60, своп на Uniswap стоил $135, а пополнение депозита в Compound — более $200. Главной причиной этого стала высокая нагрузка на блокчейн — большое количество пользователей параллельно совершали операции с Shiba Inu.
Если операция окажется слишком сложной, количества выставленного лимита газа может не хватить, и EVM перестанет обрабатывать транзакцию, не записав ее в блокчейн Ethereum.
Отсутствие газа в качестве оплаты за работу EVM могло бы привести к бесконечно сложным вычислениям, способным остановить сеть из-за перегрузки. Таким образом, газ в Ethereum выполняет функцию защиты от злоумышленников и атак на блокчейн.
Где используется EVM
Несмотря на то, что многие криптопроекты используют собственные виртуальные машины, блокчейн Ethereum — не единственная платформа, работающая на EVM. Вот некоторые блокчейн-платформы, использующие эту разработку:
- Ethereum Classic. Платформа для создания и выполнения смарт-контрактов на основе алгоритма консенсуса Proof-of-Work.
- VeСhain. Блокчейн, построенный на механизме консенсуса Proof-of-Authority.
- Fantom. Платформа для смарт-контрактов с применением направленного ациклического графа (DAG), полностью совместимая с EVM.
- Polygon. Развернутая поверх Ethereum сеть протоколов и блокчейнов.
EVM-совместимые блокчейны
Виртуальная машина Ethereum имеет ряд недостатков, в том числе высокую стоимость хранения данных, низкую масштабируемость, высокую цену на газ во время перегрузок сети Ethereum и существенные ограничения для программирования смарт-контрактов.
В качестве решения этих проблем могут выступать EVM-совместимые сети, в которых используется среда для исполнения кода, аналогичная виртуальной машине Ethereum, но при этом намного более дешевые транзакции за счет специальных решений масштабирования. Это позволяет разработчикам децентрализованных приложений в экосистеме Ethereum без особых проблем мигрировать в более масштабируемые блокчейны без необходимости с нуля писать смарт-контракты.
Одна группа таких решений называется сайдчейны. Они могут использовать отдельные блокчейны со своим алгоритмом консенсуса и параметрами создания блоков, но EVM-совместимую виртуальную машину. Среди примеров сайдчейнов Ethereum — Matic (Polygon PoS), Gnosis Chain или Loom Network.
Другой вариант — решения второго уровня (Layer 2), работающие на базе технологии Rollups. Один из примеров L2-проектов — платформа Optimism, использующая протокол Optimistic Rollups. Смарт-контракты в этом блокчейне контролирует EVM, роллап-протокол проводит вычисления и хранение состояния контрактов в отдельной виртуальной машине Optimistic Virtual Machine.
Развитие Ethereum Virtual Machine (EVM)
В течение нескольких следующих лет в Ethereum должен состояться ряд крупных обновлений, первым из которых должен стать The Merge — переход блокчейна на новый алгоритм консенсуса Proof-of-Stake.
В июле 2022 года Виталик Бутерин представил поэтапный план разработки блокчейна Ethereum. Одним из этих основных этапов должна стать смена Ethereum Virtual Machine на новую виртуальную машину — Ethereum WebAssembly (eWASM).
Хотя окончательной и подробной документации eWasm пока нет, разработчики выделяют ее следующие преимущества:
- Скорость исполнения смарт-контрактов, близкая к нативной;
- Возможность разработки контрактов на многих популярных языках, включая C, C++, и Rust;
- Доступ к огромному сообществу разработчиков и инструментам WebAssembly.
Что еще почитать?
Рассылки ForkLog: держите руку на пульсе биткоин-индустрии!