EVM (Ethereum Virtual Machine)

EVM (Ethereum Virtual Machine)

Perseus

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

Ethereum создал виртуальную среду, которая позволяет умным контрактам взаимодействовать друг с другом, которую он называет «Ethereum Virtual Machine». Это позволяет умным контрактам иметь большую функциональность без повышения сложности.


Немного предыстории

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

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

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


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

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

Есть ряд вещей, которые вы хотите, чтобы ваш умный контракт охватывал.

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

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

  • Тратим только 10$ в неделю на товары для дома.
  • Покупаем только товары для дома в этом магазине.
  • Убедитесь, что товары из этого магазина доставлены по этому адресу.

Тогда, к примеру, вы хотите купить телевизор, но некоторые из друзей хотят только внести определенную сумму денег на него. Здесь приходит еще один контракт. Этот контракт гласит:

  • Человек А хочет потратить только 20 долларов
  • Человек B готов потратить 40 долларов
  • Человек С может потратить только 10 долларов
  • Пользователь D может компенсировать разницу и приобрести телевизор, если выполнены вышеуказанные условия.

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

Это как служба обмена сообщениями для умных контрактов.


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

EVM работает как стековая машина с глубиной 1024 элемента. Каждый элемент представляет собой 256-битное слово, которое было выбрано для простоты использования с 256-битной криптографией (например: Keccak-256 или подписи secp256k1).

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

Контракты содержат древовидное хранилище Merkle Patricia (в виде массива слов с адресацией по словам), связанное с рассматриваемой учетной записью и частью глобального состояния.

Скомпилированный байт-код смарт-контракта выполняется как ряд кодов операций EVM , которые выполняют стандартные операции стека, такие как XOR, AND, ADD, SUB и т. д.

EVM также реализует ряд операций стека, специфичных для блокчейна, таких как ADDRESS, BALANCE, BLOCKHASH и т. д.

Реализация EVM

Все реализации EVM должны соответствовать спецификации, описанной в Ethereum Yellowpaper.

За всю свою историю Ethereum EVM претерпел несколько изменений, и существует несколько реализаций EVM на разных языках программирования.

Все клиенты Ethereum включают реализацию EVM. Кроме того, существует несколько автономных реализаций, в том числе:

Преимущество EVM?

Помимо того, что вы можете избежать подводных камней, от своих друзей, EVM может еще многое сделать:

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

Язык виртуальной машины

EVM имеет свой язык программирования, под называнием Solidity. Это язык, который позволяет людям создавать умные контракты, которые могут легко взаимодействовать с другими умными контрактами.

Вывод

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


Напоминаем Вам, что Вы можете воспользоваться нашим сайтом Crypto Joker, там удобно ориентироваться по всем выложенным нами статьям.




 

Report Page