EVM (Ethereum Virtual Machine) — віртуальна машина

A virtual machine (VM) is a software-based emulation of a physical computer system, allowing multiple isolated operating systems and applications to run concurrently on a single hardware platform, man...

A virtual machine (VM) — це програмна емуляція фізичної комп'ютерної системи. Вона працює як самостійне середовище, що запускає власну операційну систему (guest OS) та додатки, незалежно від базового обладнання (host machine). Технологія віртуалізації дозволяє одночасно запускати кілька VM на одному фізичному хості, кожна з яких має власні віртуалізовані апаратні ресурси, такі як CPU, пам'ять, сховище та мережеві інтерфейси. Ця абстракція керується гіпервізором (hypervisor), який є шаром програмного забезпечення (Type 1 працює безпосередньо на обладнанні, Type 2 працює поверх хост-ОС), відповідальним за створення, запуск та керування VM. VM надають численні переваги, включаючи незалежність від обладнання, що дозволяє додаткам працювати на різних конфігураціях обладнання без модифікацій; ізоляцію ресурсів, запобігаючи впливу проблем в одній VM на інші або на хост; та ефективне використання ресурсів шляхом консолідації кількох робочих навантажень на меншій кількості фізичних серверів. Вони широко використовуються для консолідації серверів, середовищ тестування та розробки, аварійного відновлення, запуску застарілих додатків та створення ізольованих середовищ безпеки (sandboxes). Компроміси включають накладні витрати на продуктивність порівняно з виконанням на bare-metal через шар гіпервізора та необхідність достатніх ресурсів хоста для ефективної підтримки кількох VM. Керування життєвим циклом VM, сховищем та мережею також вимагає спеціалізованої експертизи.

        graph LR
  Center["EVM (Ethereum Virtual Machine) — віртуальна машина"]:::main
  Rel_hypervisor["hypervisor"]:::related -.-> Center
  click Rel_hypervisor "/terms/hypervisor"
  Rel_virtualization["virtualization"]:::related -.-> Center
  click Rel_virtualization "/terms/virtualization"
  classDef main fill:#7c3aed,stroke:#8b5cf6,stroke-width:2px,color:white,font-weight:bold,rx:5,ry:5;
  classDef pre fill:#0f172a,stroke:#3b82f6,color:#94a3b8,rx:5,ry:5;
  classDef child fill:#0f172a,stroke:#10b981,color:#94a3b8,rx:5,ry:5;
  classDef related fill:#0f172a,stroke:#8b5cf6,stroke-dasharray: 5 5,color:#94a3b8,rx:5,ry:5;
  linkStyle default stroke:#4b5563,stroke-width:2px;

      

🧒 Простими словами

EVM — це ніби двигун комп'ютера [Ethereum](/uk/terms/ethereum). Він читає спеціальні інструкції (байт-код) зі смарт-контрактів і виконує дії, як шеф-кухар, що крок за кроком дотримується рецепту. Кожен крок коштує трохи грошей ("газу"), щоб приготування не тривало вічно.

🤓 Expert Deep Dive

Віртуальна машина Ethereum (EVM) — це детерміноване, стекове середовище виконання, розроблене для смарт-контрактів. Її основна функція полягає в обробці викликів транзакцій та переходів стану в мережі Ethereum. Специфікація EVM визначає набір опкодів, розмір слова 256 біт та механізм розподілу газу для вимірювання обчислювальних зусиль. Детермінізм є першочерговим; кожен вузол, що виконує однаковий байт-код з однаковим початковим станом, повинен досягти ідентичного кінцевого стану. Це досягається шляхом суворого дотримання функції переходу стану EVM. Механізм газу, запобігаючи зловживанню ресурсами, вводить економічні обмеження, які суттєво впливають на дизайн dApp та користувацький досвід, особливо щодо витрат на транзакції та обмежень пропускної здатності. Архітектурні компроміси включають властиві обмеження стекової архітектури для складних обчислень та виклики в оптимізації ефективності газу для виконання смарт-контрактів. Рішення щодо дизайну EVM вплинули на подальші розробки віртуальних машин блокчейну, але також підкреслюють постійний пошук вищої продуктивності та нижчих комісій за транзакції, що призводить до таких інновацій, як рішення рівня 2 та альтернативні середовища виконання.

📚 Джерела