Maszyna wirtualna Ethereum (EVM) to rozproszona maszyna stanu, która pozwala użytkownikom obciążyć wykonanie kodu przetwarzaniem transakcji. Pozwala to użytkownikom definiować złożone warunki wydatków i interakcje użytkowników, które nie byłyby możliwe w prostej sieci płatniczej. EVM umożliwia i realizuje inteligentne kontrakty w Ethereum i jest utrzymywany przez węzły Ethereum.
Każdy węzeł Ethereum utrzymuje własną kopię EVM, a kanoniczny, czyli „poprawny” stan EVM jest zazwyczaj ustalany w drodze konsensusu większości węzłów. Konstrukcja ta zachowuje zdecentralizowany charakter łańcuchów bloków, jednocześnie otwierając drzwi do znacznie bardziej skomplikowanych działań w łańcuchu niż proste transakcje typu peer-to-peer.
Chociaż EVM nie jest jedynym mechanizmem, który może stworzyć programowalny łańcuch bloków, od samego początku zdominował świat inteligentnych kontraktów. Po wydaniu Ethereum stworzono inteligentny język kontraktowy Solidity, aby zapewnić programistom bardziej czytelny i możliwy do kontrolowania język do pisania kontraktów EVM. Nieużywanie języka wyższego poziomu, takiego jak Solidity, zmusiłoby programistów do ręcznego tworzenia kontraktów z kodu bajtowego, który jest bardziej podatny na błędy i trudniejszy do kontrolowania. Pomimo stworzenia wielu nowych narzędzi i kompilatorów używanych do interakcji z EVM, Solidity pozostaje najczęściej używanym językiem do pisania kontraktów EVM.
Co to znaczy być kompatybilnym z EVM?
Chociaż Ethereum był pierwszym łańcuchem bloków, który wprowadził EVM, obecnie istnieje wiele innych łańcuchów bloków, które wykorzystują maszynę wirtualną Ethereum do wdrożenia obsługi inteligentnych kontraktów.
Maszyna wirtualna łańcucha bloków jest uważana za kompatybilną z EVM, jeśli zawiera te same kody operacyjne co EVM. Jeśli można wykonać wszystkie kody operacji EVM, wówczas dowolny język, który używa tylko kodów operacji EVM, może być również używany do tworzenia inteligentnych kontraktów i interakcji z dowolnym innym łańcuchem bloków kompatybilnym z EVM.
W praktyce oznacza to, że te same aplikacje można wdrożyć w dowolnym łańcuchu zgodnym z EVM, bez nadmiernych (lub często jakichkolwiek) modyfikacji przepływu lub kodu. Niektóre sieci kompatybilne z EVM, takie jak Quai Network, wykorzystują wiele połączonych ze sobą, jednocześnie działających EVM, aby oferować tańsze interakcje kontraktowe i modyfikacje stanu.
Co ciekawe, blockchain niekoniecznie musi być kompatybilny z EVM, aby był kompatybilny z Solidity. Maszyna wirtualna obsługująca pełny zestaw instrukcji EVM bez modyfikacji jest kompatybilna z EVM, ale maszyna wirtualna, która nie jest kompatybilna z EVM, może nadal być celem Solidity. Na przykład maszyna wirtualna oparta na Web Assembly (WASM) może być kompatybilna z Solidity, o ile oferuje mechanizm kompilacji Solidity do kodu bajtowego nowej maszyny wirtualnej. Rozróżnienie między zgodnością z EVM a niezgodnością z EVM można zobaczyć w kodzie bajtowym - surowy kod bajtowy kontraktu można kopiować i wklejać pomiędzy łańcuchami kompatybilnymi z EVM i nadawać się do użytku, podczas gdy ten sam kod byłby bezużyteczny w łańcuchu niezgodnym z EVM.
Niektóre alternatywy dla EVM obejmują LLVM (używany do kompilacji do kodu bajtowego Solana) i IELE (używany przez Cardano), które kultywują początkujące społeczności programistów, ale nadal są przyćmione przez popularność EVM.
Jakie są zalety zgodności z EVM?
Blockchainy i warstwy 2 kompatybilne z EVM utrzymują największe społeczności aktywnych programistów i użytkowników. Ze względu na istniejącą popularność EVM i różnorodny zestaw kodów operacyjnych, zdecydowana większość inteligentnych kontraktów i zdecentralizowanych aplikacji jest pisana i wdrażana w łańcuchu kompatybilnym z EVM.
Dzięki tak silnej społeczności programistów proces tworzenia oprogramowania EVM został szczegółowo udokumentowany i udoskonalony przez rozproszoną i bardzo zróżnicowaną grupę osób. Długa historia udanych (i nieudanych) aplikacji EVM położyła podwaliny pod bezpieczne i dobrze rozumiane środowisko programistyczne.
Języki używane do programowania na EVM mogą być złożone, ale rekompensują tę złożoność możliwością spełnienia niemal każdego możliwego zapotrzebowania dzięki kompletności turingu EVM. Maszyny wirtualne wyposażone w technologię Turinga stwarzają jednak ryzyko nieskończonych pętli, których można uniknąć poprzez dokładny audyt i weryfikację kodu inteligentnego kontraktu.
Najcenniejszym aspektem EVM jest jego społeczność i dokumentacja. Tysiące zasobów, w tym praktyczne doświadczenie programistów Solidity, jest dostępnych dla początkujących konstruktorów.
Chociaż kompatybilność z EVM ma wiele zalet, istnieją pewne słabsze punkty EVM, takie jak jego złożoność i ceny gazu. Jako pierwsze na świecie podejście do inteligentnych kontraktów w technologii blockchain, EVM przedkłada funkcjonalność nad prostotę. Chociaż języki takie jak Solidity są niezwykle skomplikowane, narzędzia, które zostały zbudowane w ostatnich latach w celu uzupełnienia programistów korzystających z EVM, radykalnie poprawiły środowisko programistyczne i doświadczenie, zachowując jednocześnie pełną funkcjonalność EVM.
EVM ma również istniejące problemy z cenami gazu, w szczególności z czynszami państwowymi, które stanowią wąskie gardło w sieci:
„To, na czym naprawdę cierpi Ethereum, to fakt, że nie ma czynszu państwowego. Zatem rozmiar stanu wzrósł do punktu, w którym są one silnie ograniczone przez operacje wejścia/wyjścia. Zatem niekoniecznie jest to nieodłączny problem EVM, przenosi on duże ilości stanu i nie ma dla niego mechanizmu płatności. Nie kosztowały czegoś, co jest wyraźnie efektem zewnętrznym. Sposób, w jaki go rozwiązujemy, jest taki — tak jak stan fragmentowania pozwala na bardziej efektywną propagację transakcji, pozwala także na mniejszy rozmiar stanu w dowolnym kontekście. Inną rzeczą, którą robimy, jest dodanie czynszu państwowego, abyśmy mogli ograniczyć rozdęcie państwa, co pozwoli nam przetwarzać znacznie więcej transakcji”.
-Dr K, współzałożyciel Quai Network
Jakie są najpopularniejsze tokeny EVM?
Najpopularniejszym tokenem wykorzystującym maszynę wirtualną Ethereum jest, co prawdopodobnie nie jest zaskoczeniem, Ethereum. Jako pierwszy protokół obsługujący możliwości inteligentnych kontraktów w dowolnym zakresie, Ethereum zyskał potężną przewagę jako pierwszy na rynku i ugruntował swoją pozycję jako platforma typu „go-to” dla DeFi, NFT i nie tylko. Jednak wysokie opłaty, z którymi często spotyka się Ethereum w okresach dużego popytu, skłoniły użytkowników do poszukiwania alternatywnych protokołów, które oferują porównywalne bezpieczeństwo, decentralizację i funkcjonalność do Ethereum bez wysokich kosztów użytkowania.
Istnieje również mnóstwo projektów, takich jak BSC, Tron i EOS, które oferują niedrogą kompatybilność z EVM kosztem decentralizacji i/lub bezpieczeństwa. Żaden z tych projektów nie był jednak w stanie utrzymać niskich opłat przy jednoczesnym zachowaniu decentralizacji, bezpieczeństwa i funkcjonalności porównywalnej z Ethereum.
Natomiast Quai Network to sieć łańcuchów bloków poprzedzająca Mainnet, wykorzystująca połączone wydobywanie i sharding, aby oferować funkcjonalność EVM przy niskich kosztach, bez żadnych kompromisów w zakresie decentralizacji i bezpieczeństwa. Dzięki zastosowaniu wielu powiązanych ze sobą łańcuchów bloków tworzących asynchronicznie bloki, z których każdy obsługuje niezależny EVM, Quai Network skaluje zarówno decentralizację, jak i inteligentne kontrakty do niespotykanego dotąd poziomu.
Wniosek
EVM, jako pierwsza metoda wdrażania inteligentnych kontraktów w łańcuchu bloków, rozkwitła w ciągu ostatniej dekady wraz z eksplozją nowych działań rozwojowych i narzędzi. Jednakże pomimo tej dużej fosy w EVM można wprowadzić wiele ulepszeń, które mogą potencjalnie jeszcze bardziej udoskonalić zachęty i poprawić istniejący stan inteligentnych kontraktów.
Dołącz do nas, aby zbudować lepszy blockchain.
Strona internetowa
Niezgoda
Świergot
Youtube
Reddit
LinkedIn
Dokumentacja programisty
Zatrudniamy!
Quai Network to sieć typu blockchain typu open source typu Proof-of-Work, wykorzystująca możliwości scalonego wydobywania w celu zwiększenia przepustowości i bezpieczeństwa. Użytkownicy Quai Network będą cieszyć się krótkimi czasami transakcji bez uszczerbku dla decentralizacji i bezpieczeństwa. Górnicy będą mieli konkurencyjne możliwości wydobycia w wielu łańcuchach bloków w sieci.
Zdolna do tysięcy transakcji na sekundę, Quai Network to rozwiązanie Proof-of-Work zapewniające skalowalność, które wkrótce będzie gotowe do wydania w Mainnecie.
Zastrzeżenie
Opinie, pomysły i stwierdzenia udostępnione w tej aktualizacji są dostarczane z licznymi założeniami, ryzykami i niepewnościami, które z biegiem czasu mogą ulegać zmianom. Istnieje wiele czynników ryzyka, w tym związanych z blockchainem, systemami kryptograficznymi i technologiami ogólnie, a także działalnością, operacjami i wynikami operacji Quai, które mogą spowodować, że rzeczywiste wyniki lub wydarzenia, których oczekuje się, nie zostaną zrealizowane lub, nawet jeśli zostaną w znacznym stopniu zrealizowane, nie osiągnąć żadnych lub wszystkich korzyści, jakich można by w związku z tym oczekiwać. Zastrzegamy sobie prawo do jednostronnej, całkowitej lub częściowej zmiany planów, oczekiwań i zamiarów określonych w niniejszym dokumencie w dowolnym momencie i z dowolnego powodu, według naszego wyłącznego uznania i nie zobowiązujemy się do publicznego aktualizowania ani korygowania jakichkolwiek stwierdzeń wybiegających w przyszłość czy to w wyniku nowych informacji, przyszłego rozwoju sytuacji, czy z innego powodu
Poglądy, opinie i oświadczenia zawarte w tej aktualizacji są poglądami indywidualnego autora, a nie jakiejkolwiek instytucji, uniwersytetu lub osoby prawnej działającej na obszarze jurysdykcji Stanów Zjednoczonych lub poza nią. Nie ma powiązania pomiędzy tymi poglądami, opiniami i oświadczeniami a jakimkolwiek podmiotem nastawionym na zysk lub non-profit, w szczególności z uniwersytetami, fundacjami i innymi agencjami zlokalizowanymi na terenie Stanów Zjednoczonych. Wszelkie dostrzeżenie takiego powiązania jest całkowicie przypadkowe i zostanie natychmiast skorygowane, jeśli czytelnik zwróci na to naszą uwagę.


