Topics Current Page

Czym jest wirtualna maszyna Ethereum (EVM)? Przewodnik dla początkujących

Advanced
17 lip 2022
15 min read

Podsumowanie AI

Pokaż więcej

Szczegółowe podsumowanie

Maszyna wirtualna Ethereum (EVM) jest często nazywana „sercem Ethereum” – czyli dokładnie tym, czym jest. Podobnie jak serce pompuje krew, która rozprowadza tlen i składniki odżywcze w całym organizmie, EVM daje deweloperom możliwość tworzenia inteligentnych kontraktów i DApps w języku programowania Solidity. Odpowiada za większość utworzonych obecnie aplikacji DApp, co odróżnia je od Bitcoin i innych rozproszonych ksiąg. W tym artykule zagłębimy się najpierw w maszyny wirtualne Ethereum i omówimy, czym są, jak działają i swoją rolę w rozwoju DApp oraz rozwoju Web 3.0.

Czym jest EVM?

Maszyna wirtualna Ethereum to platforma oprogramowania, czyli „komputer wirtualny”, używana przez programistów do tworzenia zdecentralizowanych aplikacji (DApps), a także do wykonywania i wdrażania inteligentnych umów w systemie Ethereum.

Niezależnie od tego, czy jesteś programistą zainteresowanym DApps, czy inwestorem, który chce dowiedzieć się więcej o stale zmieniającym się świecie kryptowalut EVM, prawdopodobnie słyszałeś o wirtualnym machines.To Ethereum, który najlepiej rozumie, czym jest EVM, warto najpierw dowiedzieć się czegoś o jego historii.

Według Vitalika Buterina, twórcy Ethereum, BitTorrent był pierwszym DApp. Bram Cohen wynalazł protokół udostępniania plików w 2001 r. i pomimo kilku prób jego zniszczenia BitTorrent pozostaje bardzo żywy.

Aby naprawdę zatrzymać BitTorrent, każdy komputer w każdym domu na całym świecie musiałby zostać wyłączony. To maszyna wirtualna nieograniczona ograniczeniami fizycznymi. To samo dotyczy maszyny wirtualnej Ethereum. EVM eliminuje potrzebę stosowania superzasilanego sprzętu i jest idealną platformą dla początkujących programistów. Jednak wiedza na temat bajtów, stosów i koncepcji blockchain, takich jak funkcje hash i dowód pracy, jest pomocna przy próbie głębszego zrozumienia kodu kompatybilnego z EVM i ogólnie maszyny wirtualnej Ethereum.

Celem maszyny wirtualnej Ethereum jest określenie stanu każdego bloku w łańcuchu blokowym Ethereum. Chociaż moduły EVM są podobne do innych sieci opartych na technologii blockchain, ponieważ wykorzystują rozproszoną księgę do utrzymywania baz danych dla transakcji, dodają kolejną warstwę funkcjonowania ze względu na swoje inteligentne możliwości kontraktowe. Wiele z nich określa tę drugą warstwę jako „automat rozproszonego stanu”.

Co robi EVM?

W najbardziej rozsądnej formie maszyna wirtualna Ethereum jest dużą bazą danych do przechowywania wszystkich kont i sald Ethereum. Jednocześnie jest to stan maszyny z możliwością wykonania kodu maszyny i zmiany z każdym nowym blokiem dodanym do księgi blockchain. Konkretne reguły określające, w jaki sposób moduł EVM będzie się zmieniał przy każdym nowym bloku, są w rzeczywistości definiowane przez sam moduł EVM.

Mówiąc prościej, maszyna wirtualna Ethereum to mechanizm przetwarzania i platforma oprogramowania, która działa jak zdecentralizowany komputer. Od aplikacji krypto DeFi i EVM po gry i rynki, takie jak OpenSea, deweloperzy wykorzystują maszynę wirtualną Ethereum do tworzenia DApps w oparciu o Ethereum i jego język programowania kompatybilny z EVM, Solidity.

Co najważniejsze, maszyna wirtualna Ethereum jest częścią sieci Ethereum odpowiedzialnej za realizację i wdrażanie inteligentnych kontraktów. To miejsce, w którym inteligentne kontrakty i miliony aplikacji DApp opartych na blockchain Ethereum oddychają na żywo.

Pomyśl o blockchain Ethereum jako o strukturze P2P różnych poszczególnych węzłów. Jeden węzeł łączy się z następnym, co sprawia, że każdy węzeł jest odpowiedzialny za bezpieczeństwo i stabilność całego ekosystemu. Aby to zrobić i utrzymać konsensus w całym łańcuchu blokowym Ethereum, każdy węzeł korzysta z EVM.

EVM i ich podobieństwa do CPU

Aby dokładniej wyjaśnić koncepcję EVM, pomaga to wrócić do podstaw, myśląc o tym, jak działają programy komputerowe. Całe ich oprogramowanie jest napisane w języku programowania, takim jak Java lub C++. Ponieważ jednak procesory nie mogą odczytać języka Java lub C++, kod jest kompilowany i tłumaczony na kod bajtowy .

Ethereum nie jest procesorem – jest rozproszoną siecią na całym świecie ze 100 procesorami jednocześnie obsługującymi EVM. Jednak EVM działa jako wirtualny CPU lub wirtualna „maszyna” uruchomiona w programie Go Ethereum lub „Geth”.

Podobnie jak w przypadku innych programów programistycznych, programiści tworzą DApps i piszą inteligentne umowy w języku programowania. Zamiast Java lub C++, język Ethereum nosi nazwę Solidity. Kod solidności jest kompilowany w bajtcode i dystrybuowany na każdy komputer (węzeł) z Geth w sieci.

Po wdrożeniu inteligentnej umowy każdy węzeł otrzymuje jej kopię, uruchamia swój kod bajtowy i przekazuje kod osobie, która wezwała do wdrożenia, co skutkuje „zmianą stanu”. Oznacza to, że bieżący stan łańcucha blokowego został zmieniony, co można zrobić tylko za zgodą każdego węzła.

Dlatego też EVM jest często określany jako „urządzenie rozproszone”. Śledzi stan łańcucha blokowego podczas transformacji każdej transakcji.

Jak działają EVM?

Jeśli kiedykolwiek pobrałeś piosenkę, film lub oprogramowanie z BitTorrent, wiesz, co może zrobić zdecentralizowana sieć. Nawet najpotężniejsze władze na świecie nie mogą go usunąć, ponieważ wymagałoby to wyłączenia każdego komputera podłączonego do sieci.

Jednym z najlepszych sposobów skalowania zdecentralizowanej sieci jest wykorzystanie maszyn wirtualnych. Działając jako warstwa między maszynami a wykonywanym przez nie kodem, maszyny wirtualne mogą być uruchamiane na różnych urządzeniach i systemach operacyjnych z dowolnego miejsca na świecie.

Maszyny wirtualne, takie jak EVM, działają podobnie jak maszyny fizyczne z procesorami, pamięcią i pamięcią masową, ale działają wyłącznie jako kod. Teoretycznie każdy może uruchomić maszynę wirtualną, zapewniając elastyczność i możliwość przenoszenia sieci zdecentralizowanych.

Maszyna wirtualna Ethereum wykorzystuje zdecentralizowaną sieć węzłową do realizacji inteligentnych kontraktów. Jest to dynamiczny wirtualny stos w piaskownicy, osadzony w każdym węźle Ethereum w celu wykonania inteligentnego kodu bajtu umowy kompatybilnego z EVM.

Inteligentne kontrakty, węzły i P2P

Ucząc się, czym są EVM i co robią dla kryptowalut w przypadkach takich jak pożyczki DeFi, pamiętaj, że inteligentne kontrakty są pisane w solidności i innych językach wyższego poziomu, a następnie są tłumaczone na bajtcode i kompilowane do EVM. Oznacza to, że kod maszyny jest odizolowany od systemu plików, procesów i sieci komputera hosta.

Każdy węzeł sieci Ethereum musi być zgodny z następnym, aby wykonać te same instrukcje. To sprawia, że Turing maszyny wirtualnej Ethereum jest ukończony, co oznacza, że może wykonywać logiczne kroki dla funkcji obliczeniowych.

Dla każdej instrukcji implementowanej przez EVM przypisywany jest do niej koszt, co pozwala systemowi śledzić koszty realizacji. Koszt przeprowadzania transakcji krypto EVM i wykonywania innych instrukcji jest mierzony w jednostkach zgodnych z EVM, zwanych gazem.

Poprzez umożliwienie gospodarki opartej na opłatach za zrealizowane instrukcje, a nie transakcje finansowe, takie jak Bitcoin, uzyskuje się kompletność Turing. Oznacza to, że maszyna wirtualna Ethereum jest komputerem typu peer-to-peer, połączonym globalnie, zdolnym do tworzenia inteligentnych kontraktów, wydarzeń crowdfundingu P2P, gospodarek udostępniania plików i nie tylko.

W przeciwieństwie do internetu na początku lat 90., przyszłość jest na miejscu.

Kody operacyjne

Obecnie istnieje około 150 różnych kodów operacyjnych, które może wykonać EVM. Czym dokładnie są kody operacyjne — i dlaczego są one ważne w zrozumieniu EVM?

Powodem, dla którego maszyna wirtualna Ethereum jest określana jako Turing Complete, jest głównie możliwość wykonywania instrukcji na poziomie maszyny, zwanych kodami operacyjnymi .

Kody operacyjne kompatybilne z EVM pomagają EVM wykonywać określone zadania związane z transakcjami krypto EVM lub inteligentnymi kontraktami. Kody operacyjne są jednak używane do różnych operacji, od arytmetyki i rejestrowania danych po pamięć i odzyskiwanie informacji o blokach.

Niemniej jednak kody operacyjne nie są zapisywane bezpośrednio w EVM. Ze względu na możliwość łatwego tworzenia i interakcji z inteligentnymi kontraktami programiści EVM są zapisywani w języku programowania solidności. Jednak ten język ojczysty musi zostać przekonwertowany na kod opcode, aby EVM mógł zostać zinterpretowany.

Każdy kod operacyjny ma przypisany jeden bajt. Oznacza to, że można użyć maksymalnie 256 kodów operacyjnych.

Inteligentne kontrakty

Próbując zrozumieć, czym jest EVM, niezbędna jest podstawowa wiedza na temat inteligentnych kontraktów i ich roli w kryptowalutach EVM, DeFi i innych funkcjach blockchain.

Czasami określane jako „aplikacja EVM”, inteligentne kontrakty to zgodne z EVM linie kodu wykorzystywane przez strony do zawierania transakcji ze sobą bez korzystania z usług strony trzeciej lub ingerencji ze strony władz centralnych.

W każdym kontrakcie inteligentnym znajduje się zdefiniowana lista operacji, które należy wykonać po spełnieniu określonych warunków on- lub off-chain. Te operacje mogą obejmować przelewy środków na określone adresy, tworzenie nowych inteligentnych kontraktów i komunikację między istniejącymi. Zamiast wymagać od strony trzeciej, każdy może wysłać środki na inteligentny adres kontraktu, aby skłonić te działania.

Ethereum wzięło koncepcję Bitcoin i doładowało ją, umożliwiając programistom budowanie inteligentnych kontraktów na podstawie swojego łańcucha blokowego. Kolejnym krokiem było stworzenie środowiska, w którym inteligentne kontrakty mogą żyć i wchodzić ze sobą w interakcje. W tym miejscu wkracza maszyna wirtualna Ethereum.

EVM łączy zasoby nie tylko jednego, ale tysięcy procesorów podłączonych do sieci Ethereum. Poza weryfikacją transakcji, przekłada on inteligentny kod operacyjny kontraktowy zapisany w Solidity na bajtcode, dzięki czemu można odczytać instrukcje i wykonać operacje. Do tej ostatniej części potrzebujesz gazu.

Gaz

Gaz jest paliwem napędzającym maszynę wirtualną Ethereum. Niezależnie od tego, czy przenosisz kryptowaluty EVM, czy inwestujesz w NFT, gaz jest potrzebny do zapłaty za realizację operacji. Gaz działa jako opłata obliczeniowa wymagana do realizacji inteligentnych kontraktów.

Każdemu kodowi operacyjnemu przypisywany jest koszt gazu. Im bardziej złożony kod operacyjny, tym wyższa opłata za gaz. Obecnie początkowy koszt każdej transakcji wynosi 21 000 gazów.

Opłaty za gaz są naliczane w celu skompensowania walidatorów odpowiedzialnych za sprawdzenie, czy informacje o transakcji są ważne i czy nie ma wyjątków ani błędów ze strony EVM.

Co jeszcze ważniejsze, opłaty za gaz pomagają zapobiegać atakom DDoS i zapewnić bezpieczeństwo sieci. Ponieważ wdrażanie złożonych kontraktów na dużą skalę wymagałoby długich i kosztownych obliczeń, atakujący są finansowo zniechęceni do podejmowania złośliwych prób. Atak byłby po prostu zbyt kosztowny do przeprowadzenia.

Czym są łańcuchy blokowe kompatybilne z EVM?

Interoperacyjność między blockchainami okazała się znaczącym problemem. Ponieważ problemy z Ethereum – takie jak wysokie opłaty gazowe i powolne transakcje – utrzymywały się, programiści zaczęli tworzyć DApps i inteligentne kontrakty na podstawie innych bezprawnych blockchain, aby oferować szybsze transakcje i niższe opłaty gazowe. Niestety wiele z tych łańcuchów blokowych jest poważnie ograniczonych i nie współpracuje z innymi łańcuchami blokowymi.

Łańcuchy blokowe kompatybilne z EVM okazały się łatwym sposobem rozwiązania tego problemu. Zamiast zaczynać od zera i tworzyć środowisko podobne do środowiska EVM za pomocą mostów łańcuchowych, programiści mogą kopiować niektóre elementy sieci Ethereum i tworzyć DApps, które umożliwiają użytkownikom szybkie i łatwe przenoszenie zasobów między dowolnymi sieciami EVM.

Dzięki tej interoperacyjności wiele najpopularniejszych łańcuchów blokowych jest zgodnych z tym modelem EVM. Przykłady obejmują niektóre z największych nazw w przestrzeni kryptowalut EVM, takie jak:

Inteligentny łańcuch binance

lawinę

Fantom

Cardano

Polygon

Tron

Niezależnie od powodów, dla których chcesz zrozumieć EVM, ważne jest, aby wiedzieć, że wszystkie te sidechain są kompatybilne z EVM.  Oferują one wszystkie korzyści i zasięg łańcucha blokowego Ethereum, ale z większą szybkością, większą przepustowością i niższymi kosztami transakcji.

Ostatecznie, omawiając bloki kompatybilne z EVM, wszystko sprowadza się do optymalizacji i tworzenia jak najlepszego zdecentralizowanego środowiska użytkownika. Istnieją jednak również inne korzyści.

Interoperacyjność ekosystemu Ethereum

Jedną z największych korzyści płynących z EVM jest ich interoperacyjność w ekosystemie Ethereum. Ethereum jest najczęściej używanym łańcuchem blokowym na świecie. Dzięki maszynie wirtualnej Ethereum, DApps oparte na blockchain Ethereum są w stanie komunikować się i wchodzić ze sobą w interakcje, co pozwala na szybsze i bardziej bezproblemowe korzystanie z aplikacji.

Używając mostów blockchain, można osiągnąć interoperacyjność między blockchainami. Użytkownicy mogą swobodnie wysyłać zasoby w sieciach EVM z jednego DApp do następnego.

Łatwe przenoszenie aplikacji

Maszyny wirtualne Ethereum ułatwiają migrację i rozszerzanie aplikacji DApp na nowe łańcuchy bez konieczności ponownego pisania kodu. Korzystanie z innego typu maszyny wirtualnej, takiego jak Move-VM lub Wasm, wymaga więcej zasobów i znacznie utrudnia przenoszenie DApps.

Niska bariera wejścia dla programistów Ethereum

EVM ma również wejście o niskiej wartości barierowej dla programistów Ethereum. Nie musisz martwić się o charakter EVM ani o to, czy ich kod jest kompatybilny z EVM. Nie ma również potrzeby uczenia się innych języków programowania, ponieważ programiści mogą używać znanych narzędzi Ethereum, takich jak Waffle i MetaMask.

Przypadki użycia EVM

Skoro już omówiliśmy, czym jest EVM i jak działa, przyjrzyjmy się, jak wszystko łączy się, aby napędzać krypto EVM i inne projekty oparte na Ethereum.

Tokeny ERC-20

Kilka projektów DApps i Ethereum motywuje użytkowników tokenami ERC-20, które zostały specjalnie zaprojektowane tak, aby można je było łatwo przenosić między adresami i utrzymywać tę samą wartość w sieci.

Tokeny ERC-20 są tworzone na podstawie inteligentnych umów zgodnie z określonymi strukturami danych. Ta struktura danych jest odpowiedzialna za nazywanie, dystrybucję i monitorowanie tokenu.

Tokeny te są używane dla znacznie więcej niż kryptowaluty EVM. Nexus Mutual, który zapewnia ubezpieczenie na inteligentnych kontraktach, wykorzystuje token NXM ERC-20, aby umożliwić użytkownikom składanie roszczeń i zakup ubezpieczenia. Innym przykładem jest Livepeer . Chociaż nie jest to do końca najpopularniejszy przykład podczas omawiania EVM, ta zdecentralizowana sieć przesyłania strumieniowego wideo wykorzystuje token Livepeer ERC-20, aby zachęcić użytkowników do dostarczania zasobów do sieci. To tylko dwa z wielu DApps, które obsługują tokeny ERC-20.

MM i DEX

Decentralizowane giełdy (DEX) umożliwiają wymianę tokenów ERC-20 poprzez wdrażanie inteligentnych kontraktów. Te inteligentne kontrakty pozwalają użytkownikom korzystać z puli płynności tokenów bez ingerencji stron trzecich, dając im tytuł zautomatyzowanych twórców rynku (AMM). SushiSwap , Uniswap i kilka innych popularnych giełd w rzeczywistości są zastosowaniami tego zdecentralizowanego modelu AMM.

Wydobycie NFT

Innym popularnym tokenem jest niefunkcjonowany ERC-721. Inteligentne kontrakty z tym tokenem są często używane do wydobywania niefunkcyjnych tokenów (NFT), które są tokenami mającymi unikalną wartość w łańcuchu blokowym Ethereum.

Nie do pomyślenia kilka lat temu jakiś kod ma teraz możliwość demokratyzacji wirtualnego dostępu do rynków sztuki. Takie projekty gamingowe, jak Gods Unchained i Axie Infinity, również wykorzystują te tokeny do gier i przedmiotów kolekcjonerskich.

Pożyczki DeFi

AdaSwap to zdecentralizowana wymiana z AMM oparta na Cardano. Niedawno ogłosiła współpracę z Milkomedą. Wykorzystując rozwiązania warstwy 2 dla łańcucha bocznego, Milkomeda zapewnia łańcuchy blokowe niezwiązane z EVM, takie jak kompatybilność Cardano EVM. Dzięki temu sidechain użytkownicy mogą przenosić zasoby i uruchamiać aplikacje Cardano DApps na Ethereum i odwrotnie.

AdaSwap i Milkomeda wykorzystują tę współpracę do integracji maszyn wirtualnych Ethereum z ekosystemem Cardano. Istnieje kilka innych platform DeFi, które podążają za liderem Cardano.

DAO

Maszyna wirtualna Ethereum jest zarządzana przez zdecentralizowaną organizację autonomiczną, czyli DAO. DAO jest podmiotem wspólnym, który nie ma władzy centralnej. Daje to społeczności kontrolę nad siecią.

DAO są nie tylko w pełni autonomiczne, ale również transparentne. Inteligentne kontrakty określają zasady i podejmują decyzje w oparciu o instrukcje napisane kodeksem, ale w każdym momencie głosowanie i propozycje mogą być dokonywane w drodze konsensusu. Nawet sam kod może być otwarty na audyt publiczny.

Ostatecznie DAO są w całości zarządzane przez poszczególnych członków, którzy wspólnie podejmują krytyczne decyzje dotyczące projektu. Zasady DAO są ustalane przez kluczowych członków społeczności i wdrażane w inteligentnych kontraktach. Ponieważ są one widoczne, możliwe do zweryfikowania i otwarte na audyt publiczny, każdy członek DAO może zrozumieć, jak działa protokół na każdym etapie.

Ograniczenia EVM

Starając się zrozumieć, czym są EVM, ważne jest, aby wziąć pod uwagę zarówno ich zalety, jak i wady. Pomimo wielu zalet technologia EVM wiąże się również z pewnymi ograniczeniami. Po pierwsze, korzystanie z maszyny wirtualnej Ethereum wymaga pewnego poziomu doświadczenia technicznego. Znajomość solidności, Java i innych języków programowania jest koniecznością.

Po drugie, EVM słyną z wysokich opłat za gaz. Niezależnie od tego, jak inteligentny może być EVM, nie można uniknąć jego własnej popularności i zatłoczenia danych, co skutkuje wyższymi opłatami transakcyjnymi w porównaniu z innymi sieciami.

Wreszcie, maszyna wirtualna Ethereum nie jest całkowicie zdecentralizowana. W rzeczywistości około 25 procent węzłów Ethereum działa w Amazon Web Services. Jeśli AWS doświadczy poważnej awarii lub zaprzestanie świadczenia swoich usług, EVM i DApps, które zasilają, będą w znaczący sposób zagrożone.

Przyszłość EVM

Jeśli chodzi o blockchain i EVM Ethereum, jesteśmy dopiero na początku. W niedalekiej przyszłości prędkość, złożoność i możliwości maszyny wirtualnej Ethereum wzrosną, podobnie jak komputery PC z lat 90. XX wieku, i przekształcą się w potęgi obliczeniowe używane obecnie.

Ale EVM nie są idealne. Wyzwania związane z przepustowością sieci i szybkością transakcji nadal stanowią problem z systemem. Obecnie problemy te są kluczowymi punktami dla społeczności deweloperskiej Ethereum, a ich rozwiązanie jest mapą drogową ciągłego wykorzystania i sukcesu Ethereum.

Jeśli Ethereum ma dotrzymać obietnicy rewolucjonizacji sposobu interakcji i interakcji ze sobą, będzie to rezultat ulepszeń wprowadzonych do EVM.

Konkluzja

W tym artykule omówiliśmy maszynę wirtualną Ethereum, zbadaliśmy realizację inteligentnych kontraktów i przyjrzeliśmy się, jak EVM realizują kod bajtowy. Omówiliśmy również gGas, mechanizm księgowy dla EVM i omówiliśmy, w jaki sposób ułatwia on transakcje i chroni Ethereum przed atakami DDoS. Ostatecznie EVM są sercem i duszą inteligentnego wdrażania i realizacji kontraktów. Uzyskanie głębszego zrozumienia maszyny wirtualnej Ethereum jest niezbędne dla każdego, kto chce rozwijać DApps i zagłębić się w nasz przyszły zdecentralizowany świat.

Aplikacja Bybit
Zarabiaj w inteligentny sposób