{"id":13840,"url":"\/distributions\/13840\/click?bit=1&hash=23a854ff92848dd15a7903eacb414978cdb42e99def6f55df88c5ac9c66030a6","title":"\u0420\u0435\u0444\u0435\u0440\u0430\u043b\u044c\u043d\u0430\u044f \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430 \u0434\u043b\u044f \u043f\u0440\u043e\u0434\u0430\u0432\u0446\u043e\u0432 \u043e\u0442 Joom","buttonText":"\u0423\u0447\u0430\u0441\u0442\u0432\u043e\u0432\u0430\u0442\u044c","imageUuid":"fa465a98-71b1-5a0d-8f7a-4b0e1990409a","isPaidAndBannersEnabled":false}

Сердце эфириума: Что такое ETHEREUM VIRTUAL MACHINE (EVM)?

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

И здесь на сцену выходит Ethereum Virtual Machine (EVM) – программная среда, в которой разворачиваются смарт-контракты и создаются Dapps. По сути, это глобальный децентрализованный компьютер со множеством нод (узлов), которые имеют собственные хранилища данных. Без EVM Ethereum не был бы тем блокчейном, который мы знаем сегодня.

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

Общая характеристика EVM

EVM представляет собой т.н. «распределенную машину состояний» (distributed state machine), разработанную в 2015 году (создатель – Гэвин Вуд). В Ethereum состояние – это объемная структура данных, в которые включены все аккаунты и балансы счетов. EVM обновляет состояние сети при добавлении каждого нового блока. Процедура контролируется определенным набором правил, заданных самой EVM.

Гэвин Вуд

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

Сами вычисления проводятся по достаточно длинной схеме. Сначала мы пишем код на определенном языке программирования, например Solidity (также создан Гэвином Вудом). Затем исходный код преобразуется в байт-код (последовательность символов в шестнадцатеричной системе), который разделяется на отдельные байты. В итоге вычислительные операции проводятся с помощью оп-кодов (каждому оп-коду приписывается один байт). Они работают с областями памяти, которые хранят данные и называются «стеками» (грубо говоря, это стопка элементов, в которой добавлять и удалять элементы можно лишь на ее вершине). Максимальный размер «стека» – 1024 элемента по 256 бит. В EVM есть также области памяти, в которых хранятся более сложные типы данных – contract memory (временное хранение) и storage (постоянное хранение).

Газ

Теперь представьте, что сеть должна обработать астрономическое количество наисложнейших операций. Она сильно замедлится, а может, даже и сломается!

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

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

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

В-третьих, газ обеспечивает безопасность сети. Без газа злоумышленники были бы способны запустить бесконечные циклы, которые застопорили бы работу сети. Именно поэтому блоки имеют лимит по количеству единиц газа и, соответственно, лимит по количеству транзакций. Если он превышает допустимую норму, блок попросту не примут.

Роль EVM

Значение EVM невозможно переоценить. Она стала средой, подходящей для разработки смарт-контрактов, а они, в свою очередь, стали основой токенов стандарта ERC-20, NFT, DAOs (децентрализованные автономные организации) и Dapps, включая различные игры, DeFi-проекты и даже децентрализованные биржи (например, Uniswap)! К тому же, децентрализация системы гарантирует безопасность смарт-контрактов и децентрализованных приложений: нарушения в работе одной ноды (узла) не приостановит их функционирование.

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

В ближайшем времени EVM должен сменить улучшенный аналог машины – EWASM (Ethereum Web Assembly). Это станет частью масштабного перехода сети к Ethereum 2.0. EWASM позволит решить ряд проблем, повысив скорость сети, добавив новые языки программирования и пр. Скоро мы выясним, насколько EWASM станет эффективной заменой для популярной EVM.

Читайте также:

Больше интересной информации на нашем сайте и Telegram!

0
Комментарии
Читать все 0 комментариев
null