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

Что такое виртуальная машина Ethereum (EVM) простыми словами

В 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.

Источник

Digitrode

цифровая электроника вычислительная техника встраиваемые системы

Что такое Ethereum Virtual Machine

Для создания смарт-контрактов важно знать язык программирования Solidity. Ранее были приведены примеры по основам Solidity и простому созданию некоторого подобия криптовалюты с помощью этого языка. Но для запуска самих смарт-контрактов нужен еще оди немаловажный элемент – виртуальная машина Ethereum Virtual Machine (EVM).

Ethereum Virtual Machine представляет собой среду выполнения смарт-контрактов в системе Ethereum. Ее основной особенностью является изолированность от внешнего мира, то есть код, работающий внутри EVM, не имеет доступа к сети, файловой системе или другим подобным элементам. Интеллектуальные контракты также могут иметь ограниченный доступ к другим смарт-контрактам.

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

В сети Ethereum имеется 2 вида учетных записей, имеющих одинаковое адресное пространство: внешние учетные записи, которые управляются парами ключей открытого доступа, и контактные учетные записи, которые контролируются кодом, хранящимся вместе с учетной записью. Адрес внешней учетной записи определяется из открытого ключа, в то время как адрес контракта определяется на момент создания контракта (он получается из адреса создателя и количества транзакций, отправленных с этого адреса). Независимо от того, хранит ли код учетная запись или нет, два типа одинаково обрабатываются EVM. Каждая учетная запись имеет постоянное хранилище значений ключа, сопоставляющее 256-битные слова с 256-битными словами, называемыми хранилищем.

Транзакция представляет собой сообщение, которое отправляется из одной учетной записи в другую учетную запись. Оно может включать двоичные данные (полезную информацию) и эфир (Ether). Если целевая учетная запись содержит код, этот код выполняется и полезная информация предоставляется в качестве входных данных. Если целевой учетной записью является нулевая учетная запись (с адресом 0), транзакция создает новый контракт. Полезная информация такой транзакции создания контракта принимается как байт-код EVM и выполняется. Результат этого исполнения постоянно хранится как код контракта.

После создания каждой транзакции взимается определенное количество газа, целью которого является ограничение объема работы, необходимой для прохождения транзакции, и для оплаты этого исполнения. Хотя EVM выполняет транзакцию, газ постепенно истощается в соответствии с конкретными правилами. В системе учитывается цена на газ, то есть стоимость, установленная создателем транзакции, которая должна оплачивать газ. Если после исполнения остаётся некоторый газ, он возвращается таким же образом. Если газ расходуется (т. е. его количество становится отрицательным), запускается исключение типа «отсутствие газа», которое возвращает все изменения, сделанные в текущем кадре вызова.

Читайте также:  Как набрать биткоины быстро

Как уже упоминалось ранее, каждая учетная запись имеет постоянную область памяти, которая называется хранилищем (storage). Это хранилище ключей, которое ставит в соответствие одни 256-битные слова другим 256-битным словам. Невозможно «перебрать» хранилище в рамках контракта, и его сравнительно дорого читать и тем более изменять это хранилище. Контракт не может ни читать, ни писать в любое другое хранилище, кроме его собственного. Вторая область памяти называется собственно памятью (memory), из которой контракт получает только «очищенный» экземпляр объекта для каждого вызова сообщения. Память является линейной и может адресоваться на уровне байтов, но чтение ограничено шириной в 256 бит, тогда как запись может быть либо 8-битного, либо 256-битного формата.

EVM не является регистровой машиной, она использует стековую модель, поэтому все вычисления выполняются в области, называемой стеком. Он имеет максимальный размер 1024 элемента и содержит слова из 256 бит. Доступ к стеку ограничивается верхней планкой следующим образом: возможно скопировать один из самых верхних 16 элементов в верхнюю часть стека или заменить верхний элемент одним из 16 элементов под ним. Все остальные операции берут верхние два (или один или более, в зависимости от операции) элемента из стека и помещают результат в стек. Конечно, можно перемещать элементы стека в хранилище или память, но невозможно просто получить доступ к произвольным элементам глубоко в стеке, не удалив сначала верхнюю часть стека.

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

Источник

Что такое виртуальная машина Эфира (EVM)? Как она работает?

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

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

В этой статье Вы узнаете, что такое «виртуальная машина Эфира»и для чего она нужна.

Блокчейн в начале

— это как базовая версия того, что может сделать . У вас есть единица стоимости, Биткойн, и вы можете отправлять и получать BTC этой стоимости себе и другим пользователям.

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

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

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

Читайте также:  Активное государственное финансирование инвестиций

Пример

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

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

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

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

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

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

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

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

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

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

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

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

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

Как и веб-сайт, на котором вы читаете эту статью, EVM построен на языке программирования.

Известные из них, которые уже существуют, это такие языки, как: Java, Python и Ruby.

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

Вывод

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

Подпишись на наш Telegram-канал и не пропускай важные новости из мира криптовалют и блокчейна*

*Ссылка открывается даже, если телеграм заблокирован в вашем регионе

Источник

Оцените статью