Найти в Дзене

Что такое виртуальная машина Ethereum (EVM) и как она работает

Оглавление

Являясь основой блокчейна Ethereum, EVM предоставляет разработчикам среду исполнения и создания децентрализованных приложений и смарт-контрактов.

Виртуальная машина Эфириума | #BTC_2TheMoon
Виртуальная машина Эфириума | #BTC_2TheMoon

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

Ethereum продолжает привлекать разработчиков децентрализованных приложений (dApps) благодаря своей гибкости, широкому спектру доступных инструментов для разработки и большой пользовательской базе.

Что такое Ethereum Virtual Machine (EVM)

Являясь ядром архитектуры блокчейна, EVM представляет собой программу, которая выполняет код приложений или смарт-контрактов, обеспечивая для них среду исполнения, которая работает поверх сети Ethereum. EVM является полной по Тьюрингу и может выполнять любые программы, написанные на любом языке программирования, что позволяет разработчикам легко создавать собственные смарт-контракты и dApps для развивающегося Web3-пространства.

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

Как работает Ethereum Virtual Machine (EVM)

Придуманная в 2013 году Виталиком Бутериным, Эфириум, как предпочтительный блокчейн для dApp-разработчиков, обязан своим феноменальным успехом EVM, которая была разработана Гэвином Вудом во время его работы в Ethereum.

Написанная на C++ и использующая компилятор LLVM Project, EVM представляет собой специальную машину состояний, которая работает непрерывно и чьи неизменяемые операции определяют состояние каждого блока в блокчейне Ethereum.

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

Чтобы понять, чем занимается виртуальная машина Ethereum, необходимо рассмотреть каждую из различных функций, которые она выполняет для обеспечения бесперебойной работы сети. На каждый входной сигнал EVM выдает выходной сигнал, который является детерминированным по своей природе и в простейшем смысле следует математической функции.

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

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

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

Назначение виртуальной машины Ethereum

EVM надежно обеспечивает работу всех приложений, работающих в сети Ethereum, без каких-либо серьезных простоев. Для разработчиков EVM выступает в качестве всеобъемлющей программы, которая запускает более мелкие исполняемые программы, известные как смарт-контракты, предоставляя им свободу в написании этих смарт-контрактов на различных языках программирования, включая Solidity, Vyper, Python и Yul и др.

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

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

Преимущества EVM

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

-2

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

Неизменность результатов — вот что делает EVM, в частности, и блокчейн Ethereum в целом хорошо подходящими для устойчивого расширения экосистемы dApps и смарт-контрактов. Добавьте к этому библиотеку стандартных кодов, доступных разработчикам, растущее число EVM-совместимых блокчейнов второго уровня и большое количество возможных вариантов использования, и легко понять, почему EVM является предпочтительной платформой для Web3-разработки.

Недостатки EVM

Несмотря на многочисленные преимущества, разработчики должны учитывать некоторые недостатки. Самый важный из них — высокие транзакционные комиссии, связанные с выполнением смарт-контракта в сети Ethereum.

Оплачиваемые в ETH, эти комиссии зависят от сложности контракта и загруженности сети в момент его выполнения. Кроме того, поскольку Solidity является наиболее предпочтительным языком для кодирования на EVM, это подразумевает, что разработчики должны иметь достаточный опыт работы с ним и обладать определенными техническими знаниями, чтобы создавать эффективные смарт-контракты.

Последнее важно, поскольку любые дополнительные вычислительные требования приведут к увеличению комиссии или платы за газ и в конечном счете негативно скажутся на успехе проекта. Если разработчики предпочитают писать код на других языках, им следует внимательно отнестись к устранению любых повторов в коде, поскольку EVM все равно продолжит их компиляцию.

Принцип работы транзакций Ethereum (ETH)
BTC_2TheMoon | Биткоин, блокчейн, криптовалюта25 апреля 2022

Хотя обновление смарт-контрактов возможно на более позднем этапе, оно сопряжено с рисками безопасности, связанными с созданием промежуточного смарт-контракта, который ссылается на адрес исходного смарт-контракта.

Перспективы EVM

Несмотря на революционные изменения, привнесенные EVM в блокчейн-экосистему, эта технология чтения и выполнения кода все еще совершенствуется рядом блокчейн-проектов.

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

Однако после того, как протокол Ethereum успешно завершит слияние в сентябре 2022 года, следующей целью станет переход от EVM к Ethereum WebAssembly (eWASM). Разработанный как высокомодульный и платформонезависимый, eWASM рассматривается в качестве следующего шага развития для Ethereum и может побудить другие блокчейны также использовать эту среду выполнения для смарт-контрактов.

Сможет ли eWASM заменить EVM в качестве наиболее надежного механизма для смарт-контрактов — вопрос, на который ответит только время.

Ethereum (ETH) | BTC_2TheMoon | Биткоин, блокчейн, криптовалюта | Дзен