Виталик Бутерин создал Ethereum с целью расширить границы технологии блокчейна. Он вдохновлялся Bitcoin, но считал, что технология должна не только обрабатывать транзакции. В результате он создал блокчейн-сеть Ethereum. У Ethereum есть все возможности Bitcoin. Сеть может обрабатывать P2P-транзакции и хранить их в неизменяемом и децентрализованном виде. Но у нее есть и функции, которых нет у Bitcoin, например запуск смарт-контрактов.
Как же блокчейн запускает смарт-контракт? Ethereum делает это с помощью виртуальной машины Ethereum (EVM). EVM лежит в основе сети Ethereum. В этой статье расскажем, что такое EVM, как она работает, ее преимущества и способы использования. Но прежде чем перейти к основной теме, давайте вкратце рассмотрим смарт-контракты.
Если кратко
Виталик Бутерин создал Ethereum, чтобы первым внедрить смарт-контракты. Эти самоисполняющиеся контракты работают на виртуальной машине Ethereum (EVM).
EVM — это программное обеспечение, которое позволяет запускать и развертывать смарт-контракты в сети Ethereum.
EVM обрабатывает транзакции в двух состояниях: на общем уровне (балансы аккаунтов и смарт-контракты) и на уровне машины (выполнение этапов транзакции).
Смарт-контракты пишутся на языке Solidity и компилируются в байт-код. EVM исполняет их. Плата за газ обеспечивает безопасность и ограничивает злоупотребление ресурсами.
Влияние EVM проявляется в токенах ERC-20, децентрализованных биржах, NFT, DeFi-кредитовании и DAO.
Что такое смарт-контракты?
Смарт-контракты — это программы или приложения, работающие автономно в блокчейн-сети. Они состоят из кода данных, который разработчики развертывают для выполнения определенных инструкций. Пользователи не контролируют смарт-контракты, поскольку они работают по заданной программе.
Смарт-контракты впервые были реализованы в сети Ethereum. В результате сегодня на блокчейне Ethereum созданы и развернуты миллионы смарт-контрактов. Значительную роль в этом сыграла EVM.
Что такое виртуальная машина Ethereum (EVM)?
EVM лежит в основе протокола. EVM — это виртуальная машина или цифровое программное обеспечение, которое обеспечивает работу сети Ethereum. ПО виртуальной машины может выполнять программы, хранить данные, подключаться к сетям и решать другие вычислительные задачи. Оно также отвечает за выполнение кода и развертывание смарт-контрактов.
Как это работает
Поскольку Ethereum не просто обрабатывает P2P-транзакции, ему нужна сложная вычислительная система. Разработчики Ethereum называют сеть «неограниченной машиной состояний» вместо распределенного реестра. Именно так и работает EVM. Таким образом, Ethereum состоит из двух состояний: на общем уровне (world state) и на уровне машины (machine state).
Состояние на общем уровне
Состояние на общем уровне — это место, где Ethereum хранит балансы аккаунтов и смарт-контракты. Подобно реестру Bitcoin оно децентрализованное, неизменяемое и доступно онлайн всем желающим. EVM обновляет этот уровень каждый раз после завершения транзакции. Это означает, что с помощью обозревателя блоков каждый может просматривать блокчейн Ethereum и получать одинаковые данные в реальном времени.
Состояние на уровне машины
В состоянии на уровне машины EVM осуществляет пошаговую обработку транзакций. Его также часто называют «песочницей» Ethereum для разработчиков. Сеть Ethereum обрабатывает два типа транзакций. Первый тип — это вызов сообщения, когда один аккаунт переводит токены ETH на другой. В этом случае EVM перемещает токены ETH с одного адреса кошелька на другой. После этого информация о транзакции обновляется в состоянии на общем уровне. С отправителя взимается плата за газ за вычисления, выполненные при отправке транзакции.
Второй тип транзакции — создание контракта, когда разработчик хочет исполнить смарт-контракт в Ethereum. В этом случае отправитель предоставляет плату за газ и вводит байт-код смарт-контракта.
Язык программирования Solidity
Чаще всего для создания смарт-контрактов Ethereum используют язык программирования Solidity. Как и JavaScript, это язык высокого уровня, подходящий только для людей, так как машины его не понимают. Поэтому после написания смарт-контракта на Solidity разработчики должны перевести его на машинный язык, или байт-код, с помощью компилятора виртуальной машины Ethereum, например solc.
Исполнение смарт-контрактов
По мере того, как EVM выполняет код, запас газа уменьшается в соответствии с затратами на выполняемые вычисления. Если в любой момент до завершения транзакции объем газа опустится до нуля, EVM немедленно остановится. Транзакция прекращается, а изменения в состояние на общем уровне не вносятся. Это не влияет на сеть, но баланс ETH отправителя уменьшается из-за оплаты вычислений, используемых для исполнения кода до остановки. Однако если транзакция будет исполнена, EVM обновит состояние на общем уровне, чтобы оно совпадало с состоянием на уровне машины.
Плата за газ Ethereum
Плата за газ необходима для обработки транзакций на блокчейне Ethereum. Когда Ethereum использовал механизм консенсуса Proof of Work (PoW), для исполнения транзакции нужно было аппаратное обеспечение и электричество, а майнерам — стимулы для выполнения задач. Плата за газ при переводе токенов ETH зависит от перегруженности пула.
При исполнении смарт-контрактов у комиссии за газ другая роль. В момент исполнения байт-коды смарт-контрактов разбиваются на более мелкие части — опкоды. Опкоды, или операционные коды, — это инструкции, которые EVM использует для вычислений. У каждого опкода есть плата за газ — чем сложнее опкод, тем выше стоимость. Это необходимо для защиты блокчейна Ethereum от вредоносных атак. Например, во время DDoS-атаки EVM продолжит выполнять смарт-контракт в состоянии на уровне машины. Плата за газ будет взиматься за каждое вычисление, и когда у отправителя закончится газ, транзакция будет отклонена.
Преимущества EVM
Ранее уже упоминалось, что EVM защищает сеть от атак. Так она обеспечивает безопасность и надежность платформы для выполнения смарт-контрактов и других автоматизированных услуг.
На момент написания статьи сеть Ethereum — крупнейшая криптовалютная экосистема. Ее считают эталоном для создания децентрализованных приложений и развертывания смарт-контрактов. Многие другие блокчейны создали сайдчейны, которые позволяют разработчикам Ethereum переносить свои приложения без изменения кода.
Благодаря децентрализации EVM любой может создать смарт-контракт на Ethereum без разрешения. Кроме того, она позволяет разработчикам создавать и развертывать децентрализованные сервисы и приложения, которые в последнее время набирают популярность.
Примеры использования EVM
Благодаря виртуальной машине Ethereum, выполняющей смарт-контракты, в блокчейн-пространстве появилось множество новых решений. Вот пять самых популярных примеров использования EVM:
Токены ERC-20
Смарт-контракты генерируют токены ERC-20 с помощью предопределенных структур данных, которые отвечают за присвоение токену имени, его распределение и отслеживание. Во время популярности первичного размещения криптовалют (ICO) в 2017 году множество новых токенов было запущено с использованием стандарта ERC-20. Сегодня ERC-20 наиболее эффективно используются для стейблкоинов, например USDT.
Децентрализованные биржи (DEX)
Децентрализованные биржи (DEX) позволяют покупать, продавать или торговать криптовалютами путем развертывания смарт-контрактов. Биржи Uniswap, SushiSwap и другие используют приложения автоматических маркет-мейкеров (AMM), которые позволяют пользователям получать доступ к пулам ликвидности токенов без вмешательства третьих сторон.
NFT
Невзаимозаменяемые токены (NFT) — это цифровые объекты, хранящиеся в блокчейне. Они подтверждают право собственности, и их нельзя скопировать. Пользователи блокчейна используют смарт-контракты для создания NFT-коллекций. Среди самых дорогих NFT-коллекций — Bored Ape Yacht Club (BAYC) и Cryptopunks. Владельцы могут продавать или обменивать NFT на таких маркетплейсах, как OpenSea.
DeFi-кредитование
DeFi-кредитование осуществляют платформы, которые позволяют брать и давать в долг криптовалюту без привлечения третьей стороны. Протоколами заимствования и кредитования управляют смарт-контракты. Заемщики моментально получают кредиты, а кредиторы иногда получают проценты ежедневно.
Децентрализованные автономные организации
Децентрализованная автономная организация (DAO) — это общественное образование без центрального органа власти. Участники DAO вместе принимают решения по управлению проектом. Основные участники сообщества устанавливают правила DAO, которые реализуются с помощью смарт-контрактов.
Ограничения EVM
У EVM есть два существенных ограничения. Прежде всего, пользователи должны знать Solidity и уметь программировать. Это требование затрудняет создание и взаимодействие со смарт-контрактами для новых пользователей.
Второе ограничение — при создании смарт-контракта или развертывании приложения в сети Ethereum может взиматься высокая плата за газ.
Криптовалюты, совместимые с EVM
Блокчейны, совместимые с EVM, решают проблему высокой платы за газ. Разработчики позаимствовали определенные части сети Ethereum и создали DApp, которые позволяют быстро и легко перемещать активы между любыми сетями EVM. Совместимость с EVM имеется у многих популярных блокчейнов, например:
Binance Smart Chain
Avalanche
Fantom
Cardano
Polygon
Tron
Будущее EVM
Виталик Бутерин взял за основу Bitcoin и задумал создать децентрализованный суперкомпьютер, доступный практически всем. Виртуальная машина Ethereum сильно помогла в воплощении этой идеи в жизнь. С момента создания EVM несколько раз обновлялась и продолжает развиваться и совершенствоваться.
В обновлении Dencun реализовано предложение EIP-4844, которое добавило в Ethereum прото-данкшардинг. Это обновление значительно снижает плату за газ, позволяя сети эффективно обрабатывать данные о транзакциях второго уровня. В основе прото-данкшардинга новый тип данных — Blob-объекты. Они удаляются из блокчейна, а не хранятся в нем постоянно. Кроме того, EIP-4788, еще одна часть обновления Dencun, улучшает совместимость и предоставляет EVM прямой доступ к состоянию Beacon Chain. Это необходимо для ликвидного стейкинга и кроссчейн-взаимодействий. Обновление Dencun было завершено в марте 2024 года.
Дорожная карта Ethereum акцентирует внимание на масштабируемости за счет роллапов, при этом EVM с нулевым разглашением (zkEVM) играют решающую роль. zkEVM позволяют эффективно обрабатывать транзакции офчейн с сохранением совместимости с Ethereum, что повышает масштабируемость.
Заключение
Виртуальная машина Ethereum — это часть базовой инфраструктуры сети Ethereum. Она необходима для работы смарт-контрактов в блокчейне, а ее программное обеспечение отвечает за выполнение множества вычислительных задач. EVM также защищает сеть за счет предотвращения атак и поддержки безопасности, устойчивости и децентрализации платформы для разработчиков.
Чтобы узнать больше о развивающейся сети Ethereum, ознакомьтесь с руководством по L2-блокчейну Blast, который предлагает нативную доходность, и со статьей о Curve Finance, децентрализованной бирже стейблкоинов на базе Ethereum.
© OKX, 2024. Эту статью можно воспроизводить или распространять как полностью, так и в цитатах объемом не более 100 слов при условии некоммерческого использования. При любом воспроизведении или распространении полного ее содержания нужно четко указать: «Разрешение на использование получено от владельца авторских прав (© 2024) на эту статью — OKX». Цитаты необходимо приводить со ссылкой на название статьи и авторство, например: «Название статьи, [имя автора], © OKX, 2024». Использование статьи в производных и других работах не допускается.