Какво е виртуална машина Ethereum (EVM) и как работи?

Етер (ETH), която е втората по големина криптовалута по отношение на пазарна капитализация, е популярна сред инвеститорите в криптовалута поради родния си ETH токен. Въпреки това неговият роден език за програмиране Solidity и виртуалната машина Ethereum (EVM) играят важна роля в похвалата, която получава от общността на разработчиците. Всъщност, на Ефириум блокчейн продължава да привлича децентрализирано приложение (DApp) разработчиците поради своята гъвкавост, широката гама от налични инструменти за разработчици и голямата потребителска база на платформата.

Формирайки ядрото на архитектурата на блокчейн, EVM е програмата, която изпълнява нейния приложен код или интелигентни договори, както се наричат, предоставяйки им среда за изпълнение, която работи върху мрежата Ethereum. Нещо повече, EVM е Turing-пълен и по този начин може да стартира всяка програма, кодирана на всеки език за програмиране, като по този начин позволява на разработчиците лесно да създават персонализирани интелигентни договори и DApps за разрастващите се Web3 пространство. 

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

Какво е Ethereum Virtual Machine (EVM) и как работи?

Концептуализирано през 2013 г. от програмист Виталик Бутерн, мрежата Ethereum дължи своя феноменален успех като предпочитана блокчейн за разработчиците на DApp на виртуалната машина Ethereum (EVM), която е проектирана от Гавин Ууд по време на неговия мандат в Ethereum. Написан на C++ и използващ компилатора на проекта LLVM, EVM е специална машина за състояние, която работи непрекъснато и чиито неизменни операции определят състоянието на всеки блок в блокчейна на Ethereum. 

EVM не само управлява какво могат или не могат да правят възлите с разпределената книга, поддържана от блокчейна на Ethereum, но също така определя специфичните правила за промяна на състоянието от блок на блок. Последната функционалност е това, което позволява функционалността на интелигентния договор, с която Ethereum стана известен.

За да разберете какво прави една виртуална машина Ethereum, трябва да разгледате всяка от различните функции, които тя обслужва за осигуряване на безпроблемната работа на мрежата Ethereum. За всеки вход, който получава, EVM произвежда изход, който е детерминистичен по природа и следва математическа функция в най-простия смисъл. 

Работейки като стекова машина, която изтласква преходни стойности към и от натискащ стек, EVM има дълбочина от 1024 елемента, като всеки от тях е 256-битова дума. Той също така поддържа временна памет под формата на байтов масив, който се променя между две транзакции в блокчейна на Ethereum. Кодовете на интелигентни договори, които са компилирани, се изпълняват от EVM под формата на колекция от 140 стандартни кода за операции, докато други специфични за блокчейн стекови операции също се изпълняват от него.

Схеми на виртуална машина Ethereum

По този начин EVM има състояние на машината, което е непостоянно по природа по време на обработката на всяка транзакция и глобално или световно състояние, което съдържа информация относно различните акаунти, поддържани в блокчейна на Ethereum. Всички действия се управляват от EVM кода, който сам по себе си е преминал през няколко итерации от стартирането на мрежата Ethereum през 2015 г., което води до съществуването на различни реализации на EVM, които се използват в момента.

Всъщност EVM е отговорен за поддържането на ниво на абстракция между хиляди възли на Ethereum и изпълняващия код, действайки като функция, която предоставя последователни резултати, без да разкрива много подробности на клиенти или възли.

Каква е целта на виртуалната машина Ethereum (EVM)?

EVM осигурява надеждно захранване на всички приложения, работещи в мрежата на Ethereum, без докладвани значителни прекъсвания. За разработчиците EVM действа като всеобхватна програма, която изпълнява по-малки изпълними програми, които са известни като интелигентни договори в Ethereum, като същевременно им предоставя свободата да пишат тези интелигентни договори в разнообразие от езици за програмиране включително Solidity, Vyper, Python и Yul, между другото.

Благодарение на тази гъвкавост, предлагана от EVM, блокчейнът Ethereum създаде хиляди DApps в децентрализирани финанси (DeFi) намлява незаменим жетон (NFT) пространство. Всяко от тези DApps и интелигентните договори, от които са направени, се преобразуват в байткод, който се подава в EVM и се разпространява между всички възли в мрежата на Ethereum. Когато се разгърне интелигентен договор, EVM е отговорен за комуникацията с всички възли и извършването на промени в състоянието, когато се постигне консенсус.

Може да се каже, че EVM се вмъква във всеки възел на Ethereum, за да изпълнява интелигентни договори, използвайки байткод вместо основния език за програмиране, като по този начин изолира физическия хост компютър от машинния код, на който работи Ethereum.

Предимства на Ethereum Virtual Machine (EVM)

За сметка на начина, по който работи EVM, разработчиците могат да изпълняват код, без да се притесняват за въздействието му върху останалата част от мрежата или за възможността той да пропусне данни или лични файлове, хоствани на някой от компютрите на възлите. 

Освен това те могат да изпълняват сложни интелигентни договори в различни компютърни среди с разпределен консенсус. Това гарантира, че отказът на единичен възел няма никакво отрицателно въздействие върху работата на DApp или интелигентния договор, тъй като EVM кодът остава един и същ във всички възли. Освен това, тъй като данните за акаунта се поддържат на глобално ниво в EVM, разработчиците го намират за идеален за писане на персонализиран код на интелигентен договор и създаване на различни DApps, които имат достъп до този глобален набор от данни и произвеждат надеждни резултати. 

Светостта на резултата е това, което прави EVM, в частност, и блокчейна Ethereum като цяло подходящи за устойчивото разширяване на DApps и екосистемата на Ethereum за интелигентни договори. Добавете към това библиотеката от стандартни кодове, от които разработчиците могат да избират, нарастващ брой EVM-съвместими блокчейн на слой 2 и голям брой възможни случаи на използване на EVM и е лесно да се разбере защо EVM е предпочитаната платформа за Web3 разработка.

Недостатъци на Ethereum Virtual Machine (EVM)

Въпреки многото предимства, предлагани от EVM, има определени недостатъци, които трябва да бъдат взети под внимание от разработчиците и предприемачите, изграждащи Ethereum. Най-важното от тях са високите такси за транзакции или разходите за газ, свързани с изпълнението на интелигентен договор в мрежата на Ethereum. 

Заплатени в ETH, тези такси варират в зависимост от сложността на договора и претоварването на мрежата в момента на изпълнение, което прави наложително за разработчиците и предприемачите да съответно цените услугите си. Освен това, тъй като Solidity е най-предпочитаният език за кодиране на EVM, това означава, че разработчиците трябва да имат достатъчен опит с него и да притежават минимален технически опит, за да създават ефективни интелигентни договори, като го използват. 

Последното е важно, тъй като всяко допълнително изискване за изчисление ще доведе до по-високи разходи за газ и в крайна сметка ще се окаже пагубно за успеха на проекта. Ако разработчиците изберат да кодират, използвайки други езици, те трябва да бъдат внимателни при разрешаването на всички присъщи повторения в кода, тъй като EVM така или иначе ще продължи да ги компилира. Докато надграждането на интелигентни договори е възможно на по-късен етап, то идва с рискове за сигурността, свързани със създаването на междинен интелигентен договор, който препраща към адреса на оригиналния интелигентен договор.

Бъдещето на EVM

Независимо от революционните промени, донесени от EVM в блокчейн екосистемата, тази технология за четене и изпълнение на код се подобрява от редица блокчейн проекти. 

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

Въпреки това, с протокола Ethereum, който успешно завърши сливането през септември 2022 г., следващата цел е да се премести от EVM към Ethereum WebAssembly (eWASM). Проектиран да бъде силно модулен и независим от платформата, eWASM се рекламира като следващият променител на играта за протокола Ethereum и може да мотивира други блокчейни да използват тази среда за изпълнение и за интелигентни договори. Дали обаче eWASM ще замени EVM като най-доверен механизъм за интелигентни договори е въпрос, на който само времето ще отговори.