EVM - обзор

EVM - обзор

Что такое EVM?

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

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

Блокчейн Ethereum представляет собой структуру P2P, состоящую из различных отдельных узлов. Один узел соединяется со следующим, в результате чего каждый узел отвечает за безопасность и стабильность всей экосистемы. Для этого и поддержания консенсуса во всем блокчейне Ethereum каждый узел использует EVM.

Чтобы еще больше прояснить концепцию EVM, следует вернуться к основам и вспомнить, как работают компьютерные программы. Все программное обеспечение написано на языке программирования, например Java или C++. Однако, поскольку процессоры не могут читать Java или C++, код компилируется и переводится в формат bytecode

Ethereum не является процессором - это распределенная всемирная сеть, в которой 100 процессоров одновременно работают с EVM. Однако EVM функционирует как виртуальный процессор или виртуальная "машина", запущенная внутри программы Go Ethereum, или "Geth".


Подобно другим программам, разработчики создают DApps и пишут смарт-контракты на языке программирования. Вместо Java или C++ язык для Ethereum называется Solidity. Код Solidity компилируется в байткод и распространяется на каждый компьютер (узел), работающий под управлением Geth в сети.


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


Поэтому EVM часто называют "распределенной машиной состояний". Она отслеживает состояние блокчейна по мере его трансформации при каждой транзакции.

Назначение EVM

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

Основные идеи, лежащие в основе EVM:

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

Как работает EVM?

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

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

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

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

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

Благодаря созданию экономики, основанной на плате за выполненные инструкции, а не за проведенные финансовые операции, как в случае с Bitcoin, достигается Тьюринговая полнота. Это означает, что виртуальная машина Ethereum представляет собой одноранговый компьютер с глобальной связью, способный создавать смарт-контракты, P2P-краудфандинговые мероприятия, файлообменные экономики и многое другое.

Opcodes

В настоящее время существует около 150 различных опкодов, которые может выполнять EVM. Итак, что же такое опкоды и почему они важны для понимания работы EVM?

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

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

Каждому опкоду отводится один байт. Таким образом, может быть использовано не более 256 опкодов.

Smart Contracts

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

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

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

Gas

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

Каждому опкоду присваивается стоимость газа. Чем сложнее опкод, тем выше стоимость газа. В настоящее время начальная стоимость каждой операции составляет 21 000 газа.

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

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

Что происходит в деталях

EVM - обзор

Данный рисунок описывает весь процесс совершения сделки. По шагам:

  1. Изначально мы имеем состояние мира t, а в некоторых блоках - транзакцию.
  2. EVM обрабатывает это выполнение и производит состояние мира t+1.
  3. Этот переход изменяет хранение некоторых счетов по транзакциям.

EVM совместимые блокчейны

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

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

Простые примеры:

  • BSC
  • Polygon
  • Tron

Техническое задание

О технических особенностях EVM можно рассказать очень много. В следующих статьях мы подробно рассмотрим опкоды, а также техническую сторону EVM

Заключение

Мы обсудили некоторые общие аспекты EVM. А также ответили на три больших вопроса: что, зачем и как. Цель этой статьи - дать вам просто введение в EVM. Следующие статьи будут более техническими, мы обсудим опкоды и то, как именно работает EVM внутри.

@FutureMarkt

Начать дискуссию