Концепцію Ethereum Virtual Machine виклав у "Yellow Paper" у 2015 році співзасновник Ethereum і технічний директор Ethereum Foundation Гевін Вуд. Він також розробив мову програмування Solidity, за допомогою якої створюють смарт-контракти на блокчейні Ethereum. У 2016 році Вуд покинув Ethereum, щоб зайнятися розвитком нового проєкту — Polkadot.
Для чого потрібна Ethereum Virtual Machine
EVM можна уявити як безліч розподілених комп’ютерів, зайнятих обчисленням за однаковими правилами в одній мережі, що не мають централізованого органу управління.
На відміну від протоколу біткоїна, представленого як розподілений реєстр, Ethereum представляє велику структуру даних, за обробку і зміну яких відповідає EVM. Будь-який код, записаний у блок Ethereum, виконується на кожній з десятків тисяч віртуальних машин незалежно одна від одної.
EVM гарантує, що всі транзакції і смарт-контракти в блокчейні Ethereum будуть виконані згідно зі встановленими правилами відповідно до коду смарт-контракту. Саме EVM слугує платформою для виконання операцій з токенами в мережі Ethereum, викликаючи смарт-контракти, змінюючи баланси адрес і стани додатків.
Значення "газу" для EVM
Газ (gwei) в Ethereum виконує функцію внутрішньої валюти, використовуваної як оплата за операції, що проводяться на EVM. 1 gwei дорівнює 0.000000001 ETH. "Газ" в Ethereum — аналог автомобільного палива, яким користувач повинен "заправити" переказ перед початком руху.
Ліміт газу для кожної транзакції різнитиметься залежно від складності операції та завантаженості мережі Ethereum. Наприклад, у середині 2021 року на тлі ажіотажного попиту на мем-криптовалюту Shiba Inu середня комісія за транзакцію в Ethereum сягнула досягла $60, своп на Uniswap коштував $135, а поповнення депозиту в Compound — понад $200. Головною причиною цього стало високе навантаження на блокчейн — велика кількість користувачів паралельно здійснювали операції з Shiba Inu.
Якщо операція виявиться занадто складною, кількості виставленого ліміту газу може не вистачити, і EVM перестане обробляти транзакцію, не записавши її в блокчейн Ethereum.
Відсутність газу як оплати за роботу EVM могла б призвести до нескінченно складних обчислень, здатних зупинити мережу через перевантаження. Таким чином, газ в Ethereum виконує функцію захисту від зловмисників і атак на блокчейн.
Де використовується EVM
Незважаючи на те, що багато криптопроектів використовують власні віртуальні машини, блокчейн Ethereum — не єдина платформа, що працює на EVM. Ось деякі блокчейн-платформи, що використовують цю розробку:
- Ethereum Classic. Платформа для створення і виконання смарт-контрактів на основі алгоритму консенсусу Proof-of-Work.
- VeChain. Блокчейн, побудований на механізмі консенсусу Proof-of-Authority.
- Fantom. Платформа для смарт-контрактів із застосуванням спрямованого ациклічного графа (DAG), повністю сумісна з EVM.
- Polygon. Розгорнута поверх Ethereum мережа протоколів і блокчейнів.
EVM-сумісні блокчейни
Віртуальна машина Ethereum має низку недоліків, зокрема високу вартість зберігання даних, низьку масштабованість, високу ціну на газ під час перевантажень мережі Ethereum і суттєві обмеження для програмування смарт-контрактів.
Як розв’язання цих проблем можуть виступати EVM-сумісні мережі, в яких використовується середовище для виконання коду, аналогічне віртуальній машині Ethereum, але водночас набагато дешевші транзакції завдяки спеціальним рішенням масштабування. Це дає змогу розробникам децентралізованих додатків в екосистемі Ethereum без особливих проблем мігрувати в більш масштабовані блокчейни без необхідності з нуля писати смарт-контракти.
Одна група таких рішень називається сайдчейни. Вони можуть використовувати окремі блокчейни зі своїм алгоритмом консенсусу і параметрами створення блоків, але EVM-сумісну віртуальну машину. Серед прикладів сайдчейнів Ethereum — Matic (Polygon PoS), Gnosis Chain або Loom Network.
Інший варіант — рішення другого рівня (Layer 2), що працюють на базі технології Rollups. Один із прикладів L2-проектів — платформа Optimism, що використовує протокол Optimistic Rollups. Смарт-контракти в цьому блокчейні контролює EVM, роллап-протокол проводить обчислення і зберігання стану контрактів в окремій віртуальній машині Optimistic Virtual Machine.
Розвиток Ethereum Virtual Machine (EVM)
Упродовж кількох наступних років в Ethereum має відбутися низка великих оновлень, першим з яких має стати The Merge — перехід блокчейна на новий алгоритм консенсусу Proof-of-Stake.
У липні 2022 року Віталік Бутерін представив поетапний план розроблення блокчейна Ethereum. Одним із цих основних етапів має стати зміна Ethereum Virtual Machine на нову віртуальну машину — Ethereum WebAssembly (eWASM).
Хоча остаточної і докладної документації eWasm поки немає, розробники виділяють її такі переваги:
- Швидкість виконання смарт-контрактів, близька до нативної;
- Можливість розробки контрактів багатьма популярними мовами, включно з C, C++, і Rust;
- Доступ до величезної спільноти розробників та інструментів WebAssembly.