Niezliczoną ilość razy natknęliśmy się już się na sformułowanie, że coś jest (lub nie) kompatybilne z Ethereum Virtual Machine (EVM). Spróbujmy zrozumieć, co to oznacza.
Co to jest Ethereum Virtual Machine?
Zanim zaczniemy studiować, czym jest Ethereum Virtual Machine, musimy poznać podstawy. Czym jest maszyna wirtualna? Jest to niematerialny, logiczny odpowiednik komputera, zdolny uruchamiać aplikacje czy systemy operacyjne. W ten sposób możemy np. pracować w środowisku Linuxa, uruchomionym na komputerze z Windows. Ma ono dostęp do zasobów maszyny i pracuje podobnie jak natywnie zainstalowany Linux, tyle że w izolowanym środowisku.
Maszyny wirtualne działają więc tak jak fizyczne. W swoim zachowaniu są podobne do zwykłych komputerów z pamięcią RAM, dyskiem i procesorem; główna różnica polega na tym, że działają one wyłącznie jako kod. Dzięki temu mogą pracować w różnych systemach i specyfikacjach sprzętowych.
Możemy więc opisać maszynę wirtualną Ethereum (EVM) jako oprogramowanie, symulujące fizyczny komputer. Oprogramowanie to jednak jest zainstalowane nie na jednym, ale na wielu tysiącach maszyn, połączonych w wielką sieć. Każdy jej węzeł połączony jest z innymi, zaś razem odpowiadają one za bezpieczeństwo i stabilność całej sieci.
Rozwój EVM
Ethereum Virtual Machine powstała w 2014 roku i jest pierwszą maszyną wirtualną, implementującą złożoną logikę na blockchainie. Wokół niej powstał cały ekosystem. EVM obsługuje ~80-90% transakcji blockchain i obok obsługi głównej sieci Ethereum, wyznacza standardy dla innych łańcuchów, takich jak Polygon czy Binance Smart Chain.
Od 2014 w rozwój EVM zainwestowano miliardy dolarów. Powstały języki programowania (Solidity), pakiety narzędziowe (Remix), frameworki (Hardhat), API (Web3.js) i mnóstwo innych. Pojawiły się tysiące kursów, samouczków, stron internetowych, forum społeczności. Rozwinął się biznes w postaci firm tworzących smartkontrakty czy oferujących ich audyty. Blockchainy oparte na EVM zostały zintegrowane z setkami portfeli, giełd kryptowalut i agregatorami danych.
EVM obsługuje aktywa DeFi o wartości ok. 50 miliardów dolarów. Niezależnie od wartości finansowej, zbudowanie i zapewnienie bezpieczeństwa smartkontraktów takich projektów jak Aave, MakerDAO czy Synthetix, zajęło lata.
W tej chwili blockchainy kompatybilne z EVM nie mają konkurencji, która miałaby porównywalne liczby użytkowników i wartość rynku.
Odrobina teorii
Nie możemy właściwie opisać działania EVM bez odwołania się do koncepcji maszyny Turinga, logiki przetwarzania danych i wielu innych zawiłych koncepcji. Pójdziemy więc na skróty, mając nadzieję, że nie czyta tego żaden programista.
Bitcoin ogranicza się do bycia zdecentralizowaną księgą rachunkową (DLT). Notuje, kto ile ma na koncie, komu środki przesłał lub skąd otrzymał… i właściwie tyle. EVM do funkcji takiej bazy danych dokłada zapis stanu maszyny, która może wykonywać kod i zmieniać swoje działanie z każdym nowym blokiem (funkcja stanu rozproszonego).
Stan maszyny zmienia się z każdym wywołaniem smartkontraktów, w istocie są one bowiem zakodowanymi instrukcjami, jak ma się ona zachować. Właśnie potencjał do interpretacji i wykonywania smartkontraktów odróżnia Ethereum od prostszych łańcuchów bloków, takich jak Bitcoin.
Smartkontrakty EVM są pisane w Solidity. Aby jednak mogły one zostać wykonane, muszą zostać przekompilowane na kod binarny, czyli ciąg zer i jedynek. To kod binarny, nie program napisany w Solidity, jest następnie wykonywany przez EVM. Oznacza to, że w szczególnych wypadkach mogą pojawić się w kodzie smartkontraktu luki, których programista nie musi być świadomy. Stąd biorą się błędy czy exploity, gdy taką lukę zauważy i wykorzysta haker.
Zalety i wady Ethereum Virtual Machine
EVM ma wiele zalet, a do najważniejszych z nich należą:
- przewaga pierwszego gracza: pozwoliła ona zbudować bardzo rozbudowany ekosystem,
- dojrzałość projektowa: usunięcie większości „chorób wieku dziecięcego”,
- demokratyzacja: każdy może użyć EVM do uruchomienia własnej zdecentralizowanej aplikacji (dApp),
- mnóstwo możliwości: DeFi, NFT, własne tokeny – możemy wdrożyć, co tylko chcemy,
- kompatybilność: łańcuchy oparte o EVM mogą wymieniać dane między sobą.
Niestety, rzeczy doskonałe nie istnieją. EVM ma także liczne wady:
- sprzeczne założenia: EVM musi być złożony by zapewniać wiele funkcji maszyny wirtualnej, lecz złożoność ta odbija się na bezpieczeństwie,
- trudność użycia: EVM wymaga wiedzy technicznej, co ogranicza grono twórców do osób umiejących pisać smartkontrakty,
- ograniczenia Solidity: nie istnieją standardowe biblioteki opisujące tokeny czy swapy, programista musi definiować je w smartkontrakcie, co może generować błędy,
- ograniczona wydajność: duża liczba wywołań może znacznie spowolnić sieć i uczynić transakcje bardzo drogimi,
- niewystarczająca decentralizacja: wiele węzłów Ethereum obsługiwanych jest przez duże podmioty w rodzaju Amazon Web Services.
Kompatybilność z EVM
Ethereum było pierwszym blockchainem opartym o EVM, obecnie podobne rozwiązanie wykorzystuje wiele innych łańcuchów bloków i stało się ono swego rodzaju standardem.
Maszyna wirtualna danego blockchaina jest uważana za kompatybilną z EVM, jeśli obsługuje te same kody operacji. Jeśli wszystkie kody EVM mogą zostać wykonane, wówczas smartkontrakt będzie działał na dowolnym innym blockchainie kompatybilnym z Ethereum Virtual Machine. Cechę tę wykorzystuje np. opisywany niedawno Moonbeam, dający te same możliwości co Ethereum za ułamek jego kosztów gazu.
Zalety kompatybilności z EVM są oczywiste. Istnieje ogromna społeczność programistów i użytkowników, nie ma więc problemu z przekonywaniem ich do nowych, nieznanych dotąd rozwiązań. Istnieje też rozbudowana dokumentacja oraz tysiące przykładów bardziej i mniej udanych wdrożeń kodu. Znacznie ułatwia ona także tworzenie mostów, pozwalających na przenoszenie środków z jednej sieci do drugiej.
Z tego powodu wiele blockchainów (Avalanche, BSC, Fantom, Arbitrum) jest kompatybilnych z EVM. Te, które natywnie kompatybilne nie są (Terra, Stellar, Ripple, Cardano) często starają się wdrożyć sidechainy lub jakieś rozwiązania pomostowe, by mimo wszystko umożliwić wymianę danych z łańcuchami EVM.
Przyszłość Ethereum Virtual Machine
EVM był doskonałą koncepcją jak na swoje czasy, jednak od tego czasu nieco się postarzał. Ma on problem ze skalowalnością, który utrudnia masową adopcję krypto. O ile jednak to można poprawić użyciem rozwiązań Layer 2, problemem pozostaje wspomniana wewnętrzna sprzeczność założeń EVM.
Jednocześnie jednak istniejąca siatka powiązań stabilizuje istniejący ekosystem. Tysiące programistów i projektów nie przerzucą się z dnia na dzień na inne rozwiązania, choćby były one znacznie lepsze od Ethereum Virtual Machine. Takie procesy wymagają lat. Z drugiej strony, to łańcuchy odrzucające kompatybilność z EVM mają szansę stworzyć naprawdę innowacyjny ekosystem, pozbawiony wielu dawnych ograniczeń. Trudny wybór…
EVM występuje więc w roli starej królowej, którą wszyscy znają od urodzenia i nie wyobrażają sobie nikogo innego na tronie. Entropia jednak jest nieubłagana i podobnie jak Karol zastąpił swoją matkę, również EVM zostanie kiedyś zastąpiony przez nowszy i lepszy mechanizm. Kiedy się to jednak stanie i kto przejmie rolę króla smartkontraktów, jeszcze nie wiadomo.
Być może wygrają projekty starające się pogodzić kompatybilność z EVM z przezwyciężeniem jego ograniczeń? Ostatnio modnym trendem stają się zk-EVM, łączące EVM z rozwiązaniem wiedzy zerowej. Może to one staną się gamechangerem?
Ten, kto to odgadnie, zarobi miliony.
Mark Twain mawiał: prognozowanie jest rzeczą trudną, szczególnie jeżeli dotyczy przyszłości – i trzeba przyznać mu rację. Być może EVM odejdzie w przeszłość, jednak pogłoski o jego rychłej śmierci są zdecydowanie przesadzone.
Inwestowanie jest ryzykowne. Inwestuj odpowiedzialnie.