Что такое виртуальная машина Ethereum (EVM)? Руководство для начинающих
Виртуальная машина 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 в основном из-за способности исполнять инструкции на уровне машины, известные как opcode.
Совместимые с EVM опкоды помогают EVM выполнять определенные задачи, связанные с криптотранзакциями EVM или смарт-контрактами. Однако opcode используются для различных операций, от арифметической и регистрации данных до памяти и получения информации о блоке.
Однако opcode не записываются непосредственно в EVM. Благодаря возможности легко создавать смарт-контракты и взаимодействовать с ними EVM написаны на языке программирования Solidity. Однако для перевода EVM этот родной язык должен быть преобразован в opcode.
Каждому opcode присваивается один байт. Это означает, что можно использовать не более 256 opcode.
Смарт-контракты
При попытке понять, что такое EVM, необходимы базовые знания смарт-контрактов и их роли в криптовалюте EVM, DeFi и других функциях блокчейна.
Иногда смарт-контракты называются «приложением EVM» и представляют собой совместимые с EVM линии кода, используемые сторонами для совершения транзакций друг с другом без использования третьей стороны или вмешательства центральных органов.
В каждом смарт-контракте представлен определённый список операций, которые должны выполняться при выполнении определенных ончейн- или оффчейн-событий. Эти операции могут включать перевод средств на определённые адреса, создание новых смарт-контрактов и обмен данными между существующими. Вместо того, чтобы прибегать к услугам третьих лиц, любой может отправить средства на адрес смарт-контракта для проведения таких операций.
Ethereum взял на себя концепцию биткоина и дополнил её, позволив разработчикам создавать смарт-контракты поверх блокчейна. Следующим шагом было создание среды, в которой смарт-контракты могли бы жить и взаимодействовать друг с другом. Именно на этом этапе вступает в силу виртуальная машина Ethereum.
EVM объединяет ресурсы не только одного, но и тысячи CPU, подключенных к сети Ethereum. Помимо верификации транзакций, он преобразует код оп-кода смарт-контракта, написанный в Solidity, в байт-код, чтобы можно было прочитать инструкции и выполнить операции. В этой последней части вам нужен газ.
Газ
Каждому opcode присваивается стоимость газа. Чем сложнее opcode, тем выше комиссия за газ. В настоящее время начальная стоимость каждой транзакции составляет 21 000 газа.
Комиссии за газ взимаются для компенсации валидаторам, ответственным за проверку информации о транзакции, а также отсутствия исключений или ошибок со стороны EVM.
Но ещё важнее то, что комиссии за газ помогают предотвратить DDoS-атаки и защитить сеть. Поскольку развертывание сложных контрактов в масштабе потребует длительных и дорогостоящих вычислений, злоумышленникам не рекомендуется совершать какие-либо злонамеренные попытки. Атака была бы слишком дорогой.
Что такое блокчейны, совместимые с EVM?
Взаимодействие между блокчейнами оказалось серьезной проблемой. Поскольку проблемы с Ethereum, такие как высокие комиссии за газ и медленные транзакции, сохранялись, разработчики начали создавать DApp и смарт-контракты на основе других безразрешных блокчейнов, чтобы предлагать более быстрые транзакции и более низкие комиссии за газ. К сожалению, многие из этих блокчейнов сильно ограничены и не взаимодействуют с другими блокчейнами.
Блокчейны, совместимые с EVM, доказали свою простоту решения этой проблемы. Вместо того, чтобы начинать с нуля и создавать среду, похожую на среду EVM, с помощью кроссчейн-мостов, разработчики могут копировать определённые части сети Ethereum и создавать DApp, которые позволяют пользователям быстро и легко переводить активы между любыми сетями EVM.
Благодаря такой совместимости многие из самых популярных блокчейнов используют эту EVM-совместимую модель. Например, в криптопространстве EVM можно назвать одни из самых известных имен:
• Фантом
• Кардано
• Трон
Независимо от причин, по которым вы хотите понять 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, предоставляющая страхование смарт-контрактов, использует токен ERC-20 от NXM, чтобы пользователи могли подавать заявки и оплачивать покупки. Ещё один пример — 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 и Milkomeda используют это сотрудничество для интеграции виртуальных машин Ethereum в экосистему Cardano. Существует несколько других DeFi-платформ, которые следует за Cardano.
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 и погрузиться в наш будущий децентрализованный мир.