Что такое виртуальная машина Ethereum?

Блокчейн Смарт-контракты Техническая статья Новичок
6/6/2022
168
Avatar
Автор
Oracle Labs

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

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

Прежде чем приступить к изучению вопроса "что такое виртуальная машина Ethereum" или EVM, вам необходимо получить некоторое представление о таких понятиях, как машины, завершенные по Тьюрингу, и виртуальные машины. Вам также необходимо понимать, как работают децентрализованные экосистемы. Биткойн был первым, кто представил децентрализованную экосистему. Через несколько лет после запуска Биткойна разработчики начали прислушиваться к идее "интернет-машин" или виртуальных машин, управляющих миром. Идея более мощных и сложных блокчейнов захватила их воображение. Это напрямую связано с понятием Web3 и децентрализованной паутины. Итак, давайте погрузимся в специфику EVM!

Что такое виртуальная машина Ethereum? 

Читая желтую книгу Ethereum или встречая различные описания Ethereum в Интернете, вы можете задаться вопросом: "Что такое виртуальная машина Ethereum?".

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

Виртуальные машины 

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

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


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

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

Что такое завершенность по Тьюрингу? 

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

Как думают машины Тьюринга 

Машина Тьюринга, которую Тьюринг называл a-machine (что означает "автомат"), - это гипотетическая машина, воплощающая его концепцию нечеловеческого или машинного мышления. Процесс мышления осуществляется посредством алгоритмов. В своей работе Тьюринг упомянул, что такая машина должна была бы обрабатывать катушку ленты со строкой символов или функций, которые можно перемещать назад и вперед. Можно также представить себе головку чтения/записи, которая будет перемещаться между этими функциями. Следовательно, машина была бы способна обрабатывать символ или изменять его. Такая машина могла бы направлять свое внимание только на одно "состояние" за один раз. (Концепция "statefulness" полезна для понимания EVM).


Для такой ленты не существует предполагаемого предела. Она гипотетически бесконечна и ограничена только физическими ограничениями. Лента соответствует памяти компьютера. Следовательно, память может быть бесконечно увеличена за счет увеличения длины бобины ленты. Таким образом, когда компьютер должен выполнить набор инструкций, данные, применяемые к этим инструкциям, ограничены только физическими ограничениями.

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

JavaScript в ETH 

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

Что такое виртуальная машина Ethereum или EVM 

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

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

Если вы более продвинутый разработчик и уже понимаете, как работает Ethereum, вы найдете этот обзор важным, поскольку сеть переходит на Ethereum 2.0, что означает переход от виртуальной машины Ethereum Virtual Machine (EVM) к eWASM на Ethereum 2.0.

Особенности виртуальной машины Ethereum 

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

Распределенная машина состояний 

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

Состояние машины меняется с каждым блоком, поскольку машина переходит с каждым набором программ, которые она запускает в соответствии с определенными фиксированными правилами. Что определяет эти изменения состояния по определенным правилам? Это виртуальная машина Ethereum.

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

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

Умные контракты 

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

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

Виртуальная машина Ethereum является детерминированной 

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

Виртуальная машина Ethereum изолирована 

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

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

Виртуальная машина Ethereum является конечной 

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

Экономика EVM 

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

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

https://moralis.io/evm-explained-what-is-ethereum-virtual-machine/ | EVM Explained – What is Ethereum Virtual Machine?


Время чтения: 8 минут
Поделитесь в соц. сетях:
Наверх