Topics Технические параметры

Что такое виртуальная машина Ethereum (EVM)? Руководство для новичков

Продвинутый
Технические параметры
2022年7月17日

Виртуальная машина Ethereum (EVM) часто называется «сердцем Ethereum», что является именно таким. Подобно тому, как сердце перекачивает кровь, которая распределяет кислород и питательные вещества по всему организму, EVM предоставляет разработчикам возможность создавать смарт-контракты и DApp на языке программирования Solidity. Сегодня оно отвечает за создание большинства DApp, что отличает его от биткоина и других распределённых реестров. В этой статье мы расскажем о виртуальных машинах Ethereum и расскажем о том, что они собой представляют, как они работают и какую роль играют в разработке DApp и развитии Web 3.0.

Что такое EVM?

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

Если вы программист с интересом к DApp или инвестор, желающий узнать больше о постоянно меняющемся мире криптовалют EVM, вы, вероятно, слышали о виртуальном machines.To Ethereum, который лучше понимает, что такое EVM, он помогает сначала узнать немного о его истории.

По словам создателя Ethereum Виталика Бутерина, BitTorrent стал первым DApp. Брэм Коэн изобрел протокол обмена файлами в 2001 году, и, несмотря на несколько попыток его уничтожить, BitTorrent очень жив.

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

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

Что делает EVM?

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

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

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

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

EVM и их сходство с CPU

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

Ethereum — это не ЦП, а распределённая всемирная сеть с 100 ЦП, одновременно работающими на EVM. Однако EVM работает как виртуальный ЦП или виртуальный «машина», работающая внутри программы Go Ethereum или Geth.

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

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

Таким образом, EVM часто называют «распределённой государственной машиной». Он отслеживает состояние блокчейна по мере его преобразования с каждой транзакцией.

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

Если вы когда-либо загружали песню, фильм или программное обеспечение с BitTorrent, то знаете, что может сделать децентрализованная сеть. Даже самые влиятельные в мире органы власти не могут его удалить, поскольку это потребует отключения каждого компьютера, подключенного к сети.

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

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

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

Смарт-контракты, ноды и P2P

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

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

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

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

В отличие от Интернета в начале 1990-х годов, будущее уже готово к путешествию.

Opcodes

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

Виртуальная машина Ethereum называется Turing Complete в основном из-за способности исполнять инструкции на уровне машины, известные как opcodes .

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

Однако opcode не записываются непосредственно в EVM. Благодаря возможности легко создавать смарт-контракты и взаимодействовать с ними EVM написаны на языке программирования Solidity. Однако для перевода EVM этот родной язык должен быть преобразован в opcode.

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

Смарт-контракты

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

Иногда смарт-контракты называются «приложением EVM» и представляют собой совместимые с EVM линии кода, используемые сторонами для совершения транзакций друг с другом без использования третьей стороны или вмешательства центральных органов.

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

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

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

газ

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

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

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

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

Что такое блокчейны, совместимые с EVM?

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

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

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

Смарт-цепь Binance

Avalanche

Фантом

Кардано

Многоугольник

Трон

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

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

Совместимость экосистемы Ethereum

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

Используя мосты блокчейна, можно достичь совместимости между блокчейнами. Пользователи могут свободно отправлять активы через сети EVM из одного DApp в другое.

Простота переноса Dapp

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

Низкий уровень препятствий для разработчиков Ethereum

EVM также имеет доступ с низким барьером для разработчиков Ethereum. Нет необходимости беспокоиться о природе EVM или совместимости их кода с EVM. Также нет необходимости изучать другие языки программирования, поскольку разработчики могут использовать такие знакомые инструменты Ethereum, как Waffle и MetaMask.

Примеры использования EVM

Теперь, когда мы рассмотрели, что такое EVM и как она работает, давайте посмотрим, как всё объединяется для обеспечения криптовалюты EVM и других проектов на основе Ethereum.

Токены ERC-20

Несколько DApp и Ethereum-проектов побуждают пользователей токенами ERC-20, которые специально разработаны для удобного перевода между адресами и поддержания одинаковой стоимости в сети.

Токены ERC-20 создаются смарт-контрактами в соответствии с определёнными структурами данных. Эта структура данных отвечает за именование, распространение и мониторинг токена.

Эти токены используются гораздо больше, чем криптовалюта EVM. Nexus Mutual, предоставляющая страхование смарт-контрактов, использует токен NXM ERC-20, чтобы пользователи могли подать заявку и приобрести покрытие. Ещё один пример — Livepeer . Хотя это не самый популярный пример при обсуждении EVM, эта децентрализованная сеть потокового видео использует токен Livepeer ERC-20, чтобы мотивировать пользователей предоставлять сети ресурсы. Это всего два из множества DApp, которые обрабатывают токены ERC-20.

AMM и DEX

Децентрализованные биржи (DEX) позволяют обмениваться токенами ERC-20 с помощью смарт-контрактов. Эти смарт-контракты позволяют пользователям использовать пулы ликвидности токенов без вмешательства третьих лиц, что даёт им право на звание автоматизированных маркет-мейкеров (AMM). SushiSwap , Uniswap и другие популярные биржи являются приложениями этой децентрализованной модели AMM.

Майнинг NFT

Ещё один широко популярный токен — это невменяемый ERC-721. Смарт-контракты с этим токеном часто используются для создания нежизнеспособных токенов (NFT), которые являются токенами, имеющими уникальную стоимость в блокчейне Ethereum.

Несколько лет назад часть кода не поддавалась размышлению и теперь может демократизировать виртуальный доступ к рынкам искусства. Такие игровые проекты, как Gods Unchained и Axie Infinity, также используют эти токены для внутриигровых предметов и коллекций.

DeFi кредитование

AdaSwap — это децентрализованная биржа на основе Cardano с AMM. Недавно она объявила о сотрудничестве с Milkomeda . Используя решения второго уровня для сайдчейна, Milkomeda обеспечивает совместимость с блокчейнами без EVM, такими как Cardano EVM. С помощью этого сайдчейна пользователи могут переводить активы и запускать DApp Cardano на Ethereum, и наоборот.

AdaSwap и Milkomeda используют это сотрудничество для интеграции виртуальных машин Ethereum в экосистему Cardano. После руководства Cardano есть несколько других DeFi-платформ.

DAO

Виртуальная машина Ethereum управляется децентрализованной автономной организацией или DAO. DAO — это коммунальная организация, у которой нет центрального органа. Это даёт сообществу контроль над сетью.

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

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

Ограничения EVM

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

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

Наконец, виртуальная машина Ethereum не полностью децентрализована. На самом деле около 25% нод Ethereum работают на Amazon Web Services. Если AWS перестанет работать из-за значительного сбоя или прекратит работу своих сервисов, это окажет значительное влияние на EVM и DApp, которые они используют.

Будущее EVM

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

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

Если Ethereum будет исполнять обещание радикально изменить способ взаимодействия и совершения транзакций, это будет результатом улучшений, внесённых в EVM.

Заключение

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