Topics Поглиблене вивчення

Що таке віртуальна машина Ethereum (EVM)? Посібник для початківців

Просунутий
Поглиблене вивчення
17 de jul de 2022

Віртуальна машина Ethereum (EVM) часто називається «серцем Ethereum» — саме це і є. Так само, як серце перекачує кров, яка розподіляє кисень і поживні речовини по всьому організму, EVM надає розробникам можливість створювати смарт-контракти та DApps мовою програмування Solidity. Він відповідає за створення більшості DApps сьогодні, і саме це відрізняє його від Bitcoin та інших розподілених реєстрів. У цій статті ми занурюємося в віртуальні машини Ethereum і розбиваємо їх, як вони працюють і свою роль у розвитку DApp і просуванні Web 3.0.

Що таке EVM?

Віртуальна машина Ethereum — це програмна платформа, або «віртуальний комп’ютер», що використовується розробниками для створення децентралізованих програм (DApps), а також для виконання та розгортання смарт-контрактів у системі Ethereum.

Незалежно від того, чи ви програматор, який цікавиться DApps, чи інвестор, який хоче дізнатися більше про світ криптовалюти EVM, що постійно розвивається, ви, напевно, чули про Ethereum віртуального machines.To, який найкраще розуміє, що таке EVM, це допомагає спочатку дізнатися трохи про його історію.

За словами Віталіка Бутеріна, автора Ethereum, BitTorrent був першим DApp. У 2001 році Bram Cohen винайшов протокол обміну файлами, і незважаючи на кілька спроб його знищити, BitTorrent залишається дуже живим.

Щоб по-справжньому зупинити BitTorrent, кожен комп’ютер у кожному домі по всьому світу повинен бути закритий. Це віртуальна машина, не пов’язана фізичними обмеженнями. Те ж саме стосується віртуальної машини Ethereum. EVM усуває потребу в надпотужному обладнанні та є ідеальною платформою для початківців-програмістів. Однак знання байтів, стопок і блокчейн-концепцій, як-от хеш-функції та підтвердження роботи, корисно при спробі отримати глибше розуміння коду, сумісного з EVM, і віртуальної машини Ethereum загалом.

Метою віртуальної машини Ethereum є визначення стану кожного блоку блокчейну Ethereum. Хоча EVM схожі на інші мережі на основі блокчейну, оскільки вони використовують розподілений реєстр для підтримки баз даних для транзакцій, вони додають ще один рівень функціонування завдяки своїм можливостям смарт-контрактів. Багато з них називають цей другий шар «механікою розподіленого стану».

Що робить EVM?

У його найрішучій формі віртуальна машина Ethereum є великою базою даних для зберігання всіх акаунтів і балансів Ethereum. У той же час це також машинний стан з можливістю виконання машинного коду та змін з кожним новим блоком, доданим до реєстру блокчейну. Конкретні правила, які визначають, як змінюється EVM з кожним новим блоком, фактично визначаються самим EVM.

Простіше кажучи, віртуальна машина Ethereum — це платформа обробки та програмного забезпечення, яка функціонує як децентралізований комп’ютер. Від криптопрограм DeFi і EVM до ігор і торгових майданчиків, як-от OpenSea, розробники використовують віртуальну машину Ethereum для створення DApp на основі Ethereum і мови програмування, сумісної з EVM, Solidity.

Найважливіше, віртуальна машина Ethereum є частиною мережі Ethereum, яка відповідає за виконання та розгортання смарт-контрактів. Саме тут працюють смарт-контракти та мільйони DApps на основі блокчейну Ethereum.

Вважайте блокчейн Ethereum P2P-структурою різних окремих нодів. Один вузол з’єднується з наступним, що робить кожен вузол відповідальним за безпеку та стабільність всієї екосистеми. Для цього та підтримання консенсусу в блокчейні Ethereum кожен вузол використовує EVM.

EVM та їхні схожості з CPU

Для подальшого роз’яснення концепції EVM це допомагає повернутися до основ, думаючи про те, як працюють комп’ютерні програми. Усе програмне забезпечення написано мовою програмування, як-от Java або C++. Однак, оскільки ЦП не можуть зчитати Java або C++, код компілюється та перекладається на байт-код .

Ethereum — це не ЦП, а глобальна мережа зі 100 ЦП, яка одночасно керує EVM. Однак EVM працює як віртуальний CPU або віртуальна «механіка», що працює в програмі Go Ethereum, або «Geth».

Подібно до інших програмних програм, розробники створюють DApps і пишуть смарт-контракти мовою програмування. Замість Java або C++ мова Ethereum називається Твердість. Код твердості компонується в байт-код і розподіляється на кожен комп’ютер (нод), на якому працює Geth у мережі.

Після розгортання смарт-контракту кожен нод отримує копію, використовує свій байт-код і передає код кому б не подавав запит на розгортання, що призвело до «зміни стану». Це означає, що поточний стан блокчейну було змінено, що можна зробити лише за згодою кожного вузла.

Тому EVM часто називають «розподіленим апаратом стану». Він відстежує стан блокчейну, коли він трансформується з кожною трансакцією.

Як працюють EVM?

Якщо ви коли-небудь завантажували пісню, фільм або програмне забезпечення з BitTorrent, то знаєте, що може зробити децентралізована мережа. Навіть найпотужніші у світі органи влади не можуть видалити її, оскільки це вимагає відключення кожного комп’ютера, прив’язаного до мережі.

Один із найкращих способів масштабування децентралізованої мережі — використання віртуальних машин. Діючи як рівень між машинами та кодом, який вони виконують, віртуальні машини можуть працювати на різних апаратних та операційних системах з будь-якої точки світу.

Віртуальні машини, як-от EVM, працюють так само, як фізичні машини з CPU, пам’яттю та сховищем, але вони працюють лише як код. Теоретично кожен може запускати віртуальну машину, надаючи їй гнучкість і портативність децентралізованих мереж.

Віртуальна машина Ethereum використовує децентралізовану нодальну мережу для виконання смарт-контрактів. Це динамічний пісочний віртуальний стопок, вбудований у кожен вузол Ethereum для виконання смарт-контракту, сумісного з EVM-кодом.

Інтелектуальні контракти, ноди та P2P

Вивчаючи, що таке EVM та що вони роблять для криптовалюти у таких випадках, як кредитування DeFi, пам’ятайте, що смарт-контракти написані твердості та іншими мовами вищого рівня, а потім перекладаються на байткод і компілюються на EVM. Це означає, що машинний код ізольовано від файлової системи, процесів і мережі головного комп’ютера.

Кожен вузол у мережі Ethereum повинен узгодити з наступним для виконання тих самих інструкцій. Це робить віртуальну машину Ethereum Turing Complete , а це означає, що вона може виконувати логічні кроки для обчислювальної функції.

Для кожної інструкції, яку впроваджує EVM, їй призначається вартість, що дозволяє системі відстежувати витрати на виконання. Вартість виконання криптотрансакцій EVM та виконання інших інструкцій вимірюється в блоках, сумісних з EVM, відомих як газ.

Активуючи економіку на основі комісій за виконані інструкції, а не за виконані фінансові транзакції, як-от Bitcoin, досягається тривале виконання. Це означає, що віртуальна машина Ethereum — це одноранговий комп’ютер з підключенням по всьому світу, який може створювати смарт-контракти, події краудфандингу P2P, економіку обміну файлами тощо.

На відміну від Інтернету на початку 1990-х років, майбутнє вже тут.

Опкоди

Наразі існує приблизно 150 різних opcode, які EVM може виконати. Отже, що таке opcodes і чому вони важливі для розуміння EVM?

Причина, з якої віртуальна машина Ethereum називається Turing Complete, значною мірою пов’язана з її здатністю виконувати інструкції на рівні машини, відомі як opcodes.

Опкоди, сумісні з EVM, допомагають EVM виконувати певні завдання, пов’язані з криптовалютними трансакціями EVM або смарт-контрактами. Однак opcodes використовуються для різних операцій — від арифметичних і даних, що зберігаються в пам’яті, до отримання інформації про блок.

При цьому opcodes записуються не безпосередньо в EVM. Завдяки здатності розробників легко створювати й взаємодіяти з смарт-контрактами EVM записуються мовою програмування Solidity. Однак для інтерпретації цю рідну мову потрібно конвертувати в opcode.

Кожен opcode отримує один байт. Це означає, що можна використовувати максимум 256 opcode.

Смарт-контракти

Намагаючись зрозуміти, що таке EVM, необхідно базове знання смарт-контрактів та їх роль у криптовалюті EVM, DeFi та інших функціях блокчейну.

Інколи це називається «Застосунок EVM», смарт-контракти — це лінії коду, сумісні з EVM, які використовуються сторонами для угод один з одним без використання третьої сторони або втручання центральних органів влади.

У кожному смарт-контракті є визначений перелік операцій, які виконуються за певних умов ончейн- або позачейн-трейдингу. Ці операції можуть варіюватися від переказу коштів на певні адреси, створення нових смарт-контрактів і спілкування між наявними. Замість того, щоб вимагати від третьої сторони, будь-хто може надіслати кошти на адресу смарт-контракту, щоб прискорити виконання цих операцій.

Ethereum застосував концепцію Bitcoin і надзвичайним чином дозволив розробникам створювати смарт-контракти на додаток до блокчейну. Наступним кроком було створення середовища, в якому смарт-контракти можуть жити та взаємодіяти один з одним. Саме тут починає працювати віртуальна машина Ethereum.

EVM поєднує ресурси не лише одного, але й тисяч CPU, підключених до мережі Ethereum. Крім перевірки транзакцій, він перекладає окод смарт-контрактів, написаний у Solidity, у байткод, щоб можна було прочитати інструкції та виконати операції. Для цієї останньої частини вам потрібен газ.

Газ

Газ — це паливо, яке керує віртуальною машиною Ethereum. Незалежно від того, чи переводите ви криптовалюту EVM або інвестуєте в NFT, газ потрібно сплатити за виконання операції. Газ діє як обчислювальна комісія, необхідна для виконання смарт-контрактів.

Кожному opcode призначається вартість газу. Що складніше opcode, то вища комісія за газ. Наразі початкова вартість кожної транзакції становить 21 000 газу.

Комісія за газ стягується для компенсації валідаторам, відповідальним за перевірку, щоб переконатися, що інформація про трансакцію дійсна, і що немає винятків чи помилок EVM.

Ще важливіше те, що комісії за газ допомагають запобігти атакам на DDoS і забезпечувати безпеку мережі. Оскільки розгортання складних контрактів на масштабі потребує довгих і дорогих обчислень, нападникам зазвичай не рекомендується здійснювати зловмисні спроби. Атака просто буде занадто дорогою для виконання.

Що таке блокчейни, сумісні з EVM?

Співпраця між блокчейнами виявилася значною проблемою. Оскільки проблеми з Ethereum, як-от високі комісії за газ і повільні транзакції, зберігаються, розробники почали створювати DApps і смарт-контракти на основі інших бездозвільних блокчейнів, щоб пропонувати швидші транзакції та нижчі комісії за газ. На жаль, багато з цих блокчейнів сильно обмежені та не мають сумісності з іншими блокчейнами.

Доведено, що блокчейни, сумісні з EVM, є простим способом вирішення цієї проблеми. Замість того, щоб починати з нуля та створювати середовище, подібне до середовища EVM, за допомогою кросчейн-мостів розробники можуть копіювати певні частини мережі Ethereum і створювати DApp, які дають користувачам змогу швидко й легко передавати активи між будь-якими мережами EVM.

Завдяки цій сумісності багато сучасних блокчейнів відповідають цій моделі, сумісній з EVM. Приклади включають деякі з найбільших імен у криптовалютному просторі EVM, як-от:

Інтелектуальний ланцюг Binance

Avalanche

Фантом

Cardano

Багатокутник

Трон

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

Зрештою, під час обговорення блокчейнів, сумісних з EVM, усе зводиться до оптимізації та створення найкращого досвіду децентралізованого користувача. Тим не менш, є й інші переваги.

Взаємодія екосистеми Ethereum

Однією з найбільших переваг EVM є їхня сумісність в екосистемі Ethereum. Ethereum — це найбільш широко використовуваний блокчейн у світі. Завдяки віртуальній машині Ethereum DApps на основі блокчейну Ethereum можуть спілкуватися та взаємодіяти один з одним, забезпечуючи швидший і зручніший досвід користувача.

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

Легко переміщувати капці

Віртуальні машини Ethereum полегшують перехід і розширення DApps до нових мереж без необхідності перезаписувати код. Використання віртуальної машини іншого типу, наприклад Move-VM або Bym, потребує більше ресурсів і значно ускладнює перенесення DApps.

Низький бар’єр для входу для розробників Ethereum

EVM також має низький бар’єрний вхід для розробників Ethereum. Немає потреби хвилюватися про характер EVM або про сумісність їхнього коду з EVM. Також немає потреби вивчати інші мови програмування, оскільки розробники можуть використовувати знайомі інструменти Ethereum, як-от Waffle і MetaMask.

Випадки використання EVM

Тепер, коли ми розглянули, що таке EVM і як він працює, давайте подивимося, як усе об’єднується для підтримки EVM-криптовалюти та інших проєктів на основі Ethereum.

Токени ERC-20

Кілька проєктів DApp і Ethereum заохочують користувачів токенами ERC-20, які спеціально розроблені для легкого переказу між адресами та підтримання однакової вартості в мережі.

Токени ERC-20 створюються смарт-контрактами відповідно до визначених структур даних. Ця структура даних відповідає за присвоєння назви, розповсюдження та моніторинг токена.

Ці токени використовуються набагато більше, ніж EVM-криптовалюти. Nexus Mutual, який забезпечує страхування смарт-контрактів, використовує токен NXM ERC-20, щоб дати користувачам можливість робити претензії та покривати покупки. Іншим прикладом є Livepeer . Незважаючи на те, що це не той самий популярний приклад під час обговорення EVM, ця децентралізована мережа потокової передачі відео використовує токен ERC-20 у прямому ефірі, щоб заохочувати користувачів надавати мережі ресурсами. Це лише два з багатьох DApp, які працюють з токенами ERC-20.

AMM та DEX

Децентралізовані біржі (DEX) дозволяють обмін токенами ERC-20 шляхом розгортання смарт-контрактів. Ці смарт-контракти дають користувачам змогу входити до пулів ліквідності токенів без втручання сторонніх осіб, надаючи їм назву автоматизованих маркетмейкерів (AMM). SushiSwap, Uniswap та кілька інших популярних бірж насправді є застосуванням цієї децентралізованої моделі AMM.

Майнінг NFT

Ще одним поширеним токеном є несприятливий ERC-721. Інтелектуальні контракти з цим токеном часто використовуються для майнінгу негрошових токенів (NFT), які є токенами, що мають унікальну вартість у блокчейні Ethereum.

Кілька років тому певний код тепер може демократизувати віртуальний доступ до мистецьких ринків. Такі гральні проєкти, як боги Нечейнед і Axie Infinity, також використовують ці токени для ігрових предметів і колекцій.

Дефі-кредитування

AdaSwap — це децентралізована біржа на основі Кардано з AMM. Нещодавно вона оголосила про співпрацю з Milkomeda . Використовуючи рішення рівня 2 для бічного чейну, Milkomeda забезпечує блокчейни не з EVM, як-от сумісність з Cardano EVM. За допомогою цієї технології sidechain користувачі можуть переказувати активи та запускати Cardano DApps на Ethereum, і навпаки.

AdaSwap і Milkomeda використовують цю співпрацю для інтеграції віртуальних машин Ethereum в екосистему Cardano. Є кілька інших платформ DeFi після керівника Cardano.

DAO

Віртуальна машина Ethereum керується децентралізованою автономною організацією або DAO. DAO — це загальна організація, якій бракує центрального органу влади. Це дає спільноті контроль над мережею.

DAO — це не лише повністю автономні DAO, але й прозорі. Інтелектуальні контракти окреслюють правила та виконують рішення на основі написаних кодами інструкцій, але в будь-який момент голосування та пропозиції можна зробити шляхом консенсусу. Навіть сам код може бути відкритий для публічного аудиту.

Зрештою, DAO повністю керуються окремими учасниками, які разом приймають важливі рішення щодо проєкту. Правила DAO встановлюються членами основної спільноти та впроваджуються через смарт-контракти. Оскільки вони видимі, перевірені та відкриті для публічного аудиту, кожен учасник DAO може зрозуміти, як працює протокол на кожному етапі процесу.

Обмеження EVM

Намагаючись зрозуміти, що таке EVM, важливо враховувати як їхні плюси, так і їхні мінуси. Незважаючи на численні переваги, технологія EVM також має певні обмеження. І по-перше, використання віртуальної машини Ethereum вимагає певного рівня технічного досвіду. Обов’язковою умовою є знання твердості, Java та інших мов програмування.

По-друге, EVM відомі своїми високими комісіями за газ. Незалежно від того, наскільки інтелектуальним може бути EVM, він не може уникнути власної популярності та перевантаження даних, що з ним пов’язані, що призводить до збільшення комісій за транзакції порівняно з іншими мережами.

Нарешті, віртуальна машина Ethereum не повністю децентралізована. Насправді близько 25 відсотків нодів Ethereum фактично працюють на вебсервісах Amazon. Якщо AWS зазнає значного відключення або припинення надання послуг, це може значно вплинути на EVM та DApps, які вони використовують.

Майбутнє EVM

Коли справа доходить до блокчейну Ethereum і EVM, ми тільки на початку. Найближчим часом швидкість, складність і здатність віртуальної машини Ethereum лише зростають, майже так само, як ПК 1990-х років перетворилися на механіки обробки, які використовуються сьогодні.

Однак EVM не є ідеальними. Проблеми щодо пропускної здатності мережі та швидкості трансакції продовжують становити проблему для системи. Наразі ці проблеми є фокальними моментами для спільноти розвитку Ethereum, а їх вирішення — дорожньою картою для тривалого використання та успіху Ethereum.

Якщо Ethereum має виконати свої обіцянки щодо революційного способу взаємодії та взаємодії один з одним, це буде результатом покращень EVM.

Підсумки

У цій статті ми провели віртуальну машину Ethereum, вивчили виконання смарт-контрактів і розглянули, як EVM виконують байткод. Ми також обговорили gGas, механізм бухгалтерського обліку для EVM, і розповіли про те, як він полегшує транзакції та захищає Ethereum від атак DDoS. Зрештою, EVM — це серце та душа розгортання та виконання смарт-контрактів. Глибоке розуміння віртуальної машини Ethereum є важливим для тих, хто хоче розвивати DApps і занурюватися в наш майбутній децентралізований світ.