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


Что представляет собой EVM? Как работает машина на простых примерах и какие у нее возможности? Будем разбираться в этой статье!

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

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

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

  • Все члены семьи должны создать индивидуальные ETH-адреса;
  • Все должны ежемесячно вносить определенную сумму на общий смарт-контакт;
  • Никто из членов семьи не сможет единолично снять средства;
  • Средства могут быть использованы только с разрешением всех членов семьи;

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

  • На товары для кухни – 0.3 ETH;
  • На товары для ванной – 0.3 ETH;
  • На продукты питания – 1.4 ETH;

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

  • Мать – 0.5 ETH;
  • Отец -1.5 ETH;
  • Сын – 0.25 ETH;
  • Дочь – 0.25 ETH;

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

Простым словами, виртуальная машина Ethereum – это мессенджер и менеджер задач, только для смарт-контрактов.

Возможности виртуальной машины Ethereum

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

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

Все смарт-контракты создаются на следующих языках программирования:

  • Solidity – наиболее используемый язык у Ethereum-разработчиков. 80% смарт-контрактов создаются с помощью Solidity
  • Vyper – достойная альтернативна Solidity специально для смарт-контрактов
  • LLL – сложный в использовании язык, который используется только опытными разработчиками.
  • Serpent – практически аналог Python. Используется в основном энтузиастами.
  • Mutan – на текущий момент не используемый язык программирования.

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

Для выполнения абсолютно любых задач, EVM принимает программный код, конвертирует его в двоичный (0 и 1) и только после этого становится “двигателем” смарт-контрактов.

Резюмируем

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

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

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

Напомним, в 2018 году мы разобрали, что представляют смарт-контракты на блокчейне Ethereum.