Powrót

3. Poziom zaawansowany

Ukończono: 0%
Kroki: 0/0
  1. 1. Co to jest Taproot?
  2. 2. Mosty blockchain – co to jest?
  3. 3. Czym jest atak 51% na blockchain?
  4. 4. Zero-knowledge proof- protokół, który szanuje prywatność
  5. 5. Co to jest EOSREX?
  6. 6. Mirror Protocol – co to jest 
  7. 7. Czym jest i jak działa DAO? 
  8. 8. Czym jest spoofing na rynku kryptowalut?
  9. 9. Cyfrowe prawo własności
  10. 10. Jak sprawdzić projekt kryptowalutowy – czyli tokenomia kryptowalut
  11. 11. Czym jest Ethereum Plasma?
  12. 12. Co to jest Ethereum Casper?
  13. 13. Co to jest Selfish Minning?
  14. 14. Jak stworzyć własny NFT?
  15. 15. Podpisy Schnorra - co to jest?
  16. 16. Co to jest dowód Zk-SNARK i Zk-STARK
  17. 17. Co to jest Proof of Elapsed Time- dowód upływającego czasu (PoET)?
  18. 18. MimbleWimble
  19. 19. Czym są ETFy?
  20. 20. Aktywa syntetyczne
  21. 21. Czym są likwidacje DeFI?
  22. 22. Nowy system tożsamości - Polygon ID
  23. 23. Czym jest Ethereum Virtual Machine MEV?
  24. 24. Fundacja Ethereum i protokół Scroll - czym są?
  25. 25. Czym jest bizantyjska tolerancja błędów?
  26. 26. Czym jest skalowalność technologii blockchain?
  27. 27. Interchain Security- nowy protokół Cosmos (Atom)
  28. 28. Coin Mixing vs. Coin Join - definicja, możliwości i zagrożenia
  29. 29. Co to są tokeny SoulBound SBD?
  30. 30. Co to jest Lido?
  31. 31. Czym są Threshold Signatures i jak działają?
  32. 32. Technologia blockchain i cyberataki
  33. 33. Skrypt Bitcoina - czym jest i co powinieneś wiedzieć na ten temat
  34. 34. Czym jest zkEVM i jakie są jego podstawowe cechy?
  35. 35. Czy poufne transakcje na blockchainie istnieją? Co to jest Confidential Transaction?
  36. 36. Algorytmiczne stablecoiny – wszystko, co powinieneś o nich wiedzieć
  37. 37. Polygon Zk Rollups - co powinieneś wiedzieć na jego temat?
  38. 38. Co to jest Infura Web3?
  39. 39. Mantle – skalowalność Ethereum L2 – jak działa?
  40. 40. Polygon zkEVM - wszystko, co powinieneś wiedzieć
  41. 41. Co to jest Optimism (OP) i jak działają jego rollupy?
  42. 42. Czym są węzły RPC node i jak działają?
  43. 43. SEI Network: wszystko, co musisz wiedzieć o rozwiązaniu warstwy 1 dla DeFi
  44. 44. Rodzaje mechanizmów konsensusu Proof-of-Stake: DPoS, LPoS oraz BPoS
  45. 45. Bedrock: krzywa epileptyczna, która zapewnia bezpieczeństwo!
  46. 46. Czym jest Tendermint i jak działa?
  47. 47. Pantos: jak rozwiązać problem transferu tokenów miedzy blockchainami?
  48. 48. Czym jest szyfrowanie asymetryczne?
  49. 49. Funkcja Base-58 w kryptowalutach
  50. 50. Czym jest i jak działa protokół Nostr?
  51. 51. Czym jest i jak działa most XDAI Bridge?
  52. 52. Porównanie Solidity i Rust: Wybór języka programowania w ekosystemie blockchain.
  53. 53. Czym jest Pinata w Web 3? Wyjaśniamy!
  54. 54. Czym jest Real-Time Operating System (RTOS)?
Lekcja 23 z 54

23. Czym jest Ethereum Virtual Machine MEV?

Ethereum to sieć blockchain, która jako pierwsza wprowadziła pojęcie programowalności inteligentnych kontraktów. Jak działa sieć i co to w zasadzie jest to całe Ethereum, znajdziecie w naszej poprzedniej lekcji.

Ekosystem sieci zapewnia podstawy do tworzenia, kompilowania i wykonywania tysięcy inteligentnych kontraktów. Jak? Dzięki Ethereum Virtual Machine (EVM). Na dzisiejszej lekcji szerzej omówimy to pojęcie.

Ethereum Virtual Machine – definicja 

EVM to oprogramowanie, którego zadaniem jest tworzenie i kompilowanie inteligentnych kontraktów do czytelnego formatu, nazywanego Bytecode.  Jednocześnie EVM oblicza stan sieci Ethereum po dodaniu każdego nowego bloku do łańcucha.

Ethereum Virtual Machine znajduje się na szczycie warstwy sprzętowej i sieciowej Ethereum. Co jest jeszcze ciekawego w EVM? Inteligentne kontrakty wdrożone na innych, kompatybilnych łańcuchach z EVM (np. Polygon czy Avalanche) są rozpoznawalne przez węzły Ethereum. W efekcie deweloperzy mogą stosunkowo łatwo przenieść swoje dApp’sy lub tokeny z Ethereum na inne łańcuchy, kompatybilne z Ethereum Virtual Machine, programowane w języku Solidity.

W branży krypto EVM często określane jest jako „serce Ethereum”, które napędza cały ekosystem sieci.

Jak działa Ethereum Virtual Machine? 

Działanie EVM możemy podzielić na dwie odrębne sekcje – tworzenie tokenów i inteligentnych kontraktów.  Przyjrzyjmy się temu tematowi dokładnie.

Ethereum Virtual Machine ułatwia proces tworzenia nowych tokenów na blockchainie Ethereum. Jak już wcześniej wspomnieliśmy, EVM to program, który ułatwia tworzenie skryptów, używanych do implementacji operacji na blockchainie Ethereum. Skrypt to zestaw instrukcji lub algorytm, który mówi „komputerowi” co zrobić, aby coś działało prawidłowo. W swoim działaniu EVM wymaga od deweloperów, aby mieli dostęp do dowolnego łańcucha sieci, by móc wykonać żądane polecenia i stworzyć nowy token na łańcuchu bloków bez żadnych trudności.

Skoro już wiesz, jak powstają nowe tokeny przy użyciu EVM, spójrzmy teraz na inteligentne kontrakty. W sieci Ethereum istnieje ich mnóstwo. Mają one zdefiniowany kod, który ułatwia wymianę kryptowalut i informacji. Takie umowy (kody) są zdefiniowane przez twórcę inteligentnego kontraktu i zapewniają określony wynik.

Ethereum Virtual Machine zapewnia deweloperom i twórcom inteligentnych kontraktów środowisko Turing Complete, w których mogą tworzyć skrypty i kontrakty. Oznacza to, że wszystko, co zaimplementujemy za pomocą komputera, uruchomimy przy użyciu EVM.

EVM odgrywa bardzo ważną rolę w ekosystemie Ethereum. Tworzy środowisko dla zdecentralizowanych aplikacji (dApps), które budujemy na szczycie łańcucha. Jeśli zapomniałeś, czym są zdecentralizowane aplikacje dApps zerknij tutaj.

Ethereum Virtual Machine zapewnia nas, że wszystkie transakcje i inteligentne kontrakty na blockchainie Ethereum są wykonywane w prawidłowy sposób, zgodny z wcześniej ustalonym kodem inteligentnego kontraktu.

Mówiąc prościej – EVM to platforma, która w dużej mierze ułatwia deweloperom tworzenie dApp’sów i wdrożenie na blockchainie.

EVM – budowa 

Ethereum Virtual Machine zbudowane jest z dwóch części. Pierwsza z nich uruchamia kod źródłowy Solidity. EVM napisany jest w C++ i używa LLVM, jako swojego kompilatora. EVM wspiera wiele języków programowania, bezpieczeństwo czy środowisko uruchomieniowe dla kodów. Pozwala również programistom napisać niestandardowy EVM bytecode.

Druga część to tzw. uncles. Czyli małe kawałki inteligentnych kontraktów lub danych przechowywanych na łańcuchu bloków. Pozwala na przechowywanie metadanych. Jakich?

  1. Informacji o podstawowych operacjach, które możemy wykonać na aktywach przechowywanych w pamięci (nie na blockchainie!).
  2. Jakie jest saldo Etheru, które ktoś posiada w danym momencie.
  3. Przechowywanie wszystkich działań i transakcji, powiązanych z Ethereum.
  4. Informacje o hashu danego bloku.
  5. Informacji o tzw. block number, czyli liczbie wskazującej, do którego bloku należy konkretny blockhash.
  6. Kodu wykonywanego przy użyciu EVM. Określa on, jaka akcja zostanie podjęta, gdy zdarzy się dane wejście (np. przekazanie pieniędzy).
  7. Rzeczywisty rozmiar kodu w bajtach.
  8. Informacje o części EVM, która pozwala użytkownikom określić, ile gazu są gotowi wydać, aby coś wykonać.

Ktoś powiedział – gaz? Możemy teraz zapytać – ale co właściwie ma on wspólnego z wydajnością EVM? No cóż, gaz jest miarą mocy obliczeniowej. Mówiąc prościej, określa on czas, ile zajmuje wykonanie transakcji i kontraktu. Ponieważ w całym ekosystemie jest tak dużo kodu, do jego uruchomienia „z góry” wykorzystywana jest określona ilości gazu. Domyślny limit ustawiono na 250 000 jednostek. Pamiętaj, że im bardziej skomplikowana transakcja, tym więcej gazu potrzeba do jej wykonania.

Zalety EVM

  • Zmniejsza ryzyko wykonania niezaufanego kodu, bez narażania danych poufnych. EVM gwarantuje deweloperom, że ich obliczenia nie będą kolidować z innymi (systemem lub tym, co dzieje się w plikach osobistych).
  • Umożliwia uruchomienie złożonych inteligentnych kontraktów. Dzięki Ethereum Virtual Machine możemy uruchomić złożone inteligentne kontrakty, nie martwiąc się, jak zadziałają na siebie. Można napisać je raz, ale uruchomić na wielu platformach. Pozwala to na stworzenie jednego inteligentnego kontraktu, działającego na wielu platformach.
  • Przetwarzanie deterministyczne. Inteligentne kontrakty napisane za pomocą EVM, mają dostęp do wszystkich sieci Ethereum w danym momencie. W efekcie pozwala to na przetwarzanie w sposób deterministyczny i daje dużo większą gwarancję na ich poprawność.
  • Konsensus w formie rozproszonej. Ekosystem Ethereum umożliwia uruchomienie tego samego programu przez większość użytkowników, na własnych komputerach.
  • Łatwość pisania kontraktów stateful. EVM jest przeznaczony do pisania inteligentnych kontraktów i tworzenia dApps’ów. Reasumując – programów działających w sieciach rozproszonych, zapewniając jednocześnie, że wszyscy widzą tę samą wersję. EVM ułatwia także pisanie kontraktów stateful, które mają dostęp do pamięci trwałej.

Wady EVM

  • Bardzo wysoki koszt przechowywania danych. Krótko mówiąc – gaz. Czyli to, co wykorzystujemy, uiszczając opłatę za uruchomienie inteligentnego kontraktu.
  • Wysoki koszt przechowywania danych na blockchainie. Może on zająć ponad 3TB.
  • Wymagana duża wiedza techniczna. Pisanie inteligentnych kontraktów i jednoczesne używanie EVM wymaga dość sporej wiedzy technicznej. Mowa o środowisku Turing Complete, które pozwala programistom pisać w dowolnym języku programowania. Dla jednych jest to cudowne, dla drugich (z mniejszą wiedzą i obyciem) może być wręcz

Blockchainy kompatybilne z EVM

Interoperacyjność między łańcuchami bloków Ethereum okazała się istotnym problemem dla deweloperów. Wysokie opłaty za gaz i powolne transakcje zmusiły deweloperów Ethereum do tworzenia dApps’ów i inteligentnych kontraktów na innych blockchainach. Tym samym mogli zaoferować szybsze transakcje i niże opłaty. Niestety, nie mogło być tak łatwo i pięknie. Wiele z tych łańcuchów bloków ma poważne ograniczenia i nie mają interoperacyjności z innymi blockchainami.

Łańcuchy kompatybilne z EVM świetnie rozwiązują powyższy problem. Deweloperzy nie muszą zaczynać od zera i tworzyć środowiska podobnego do Ethereum Virtual Machine. Kopiują pewne elementy sieci Ethereum i tworzą dApps’y, pozwalające użytkownikom szybko i łatwo przenosić aktywa między dowolnymi sieciami EVM.

Dzięki takiej interoperacyjności sieci najczęściej używanych blockchainów podążają za kompatybilnym z większością EVM. Przykładowe łańcuchy bloków współpracujące z EVM:

  • Binance Smart Chain
  • Avalanche
  • Fantom
  • Cardano
  • Polygon
  • Tron

Sidechainy wyżej wymienionych ekosystemów są kompatybilne z EVM. Oferują korzyści i zasięgi blockchaina Ethereum, ze zdecydowanie większą prędkością, pojemnością i niższymi opłatami transakcji.

Przypadki użycia EVM

Teraz gdy już wiesz, czym jest i jak działa EVM. Przyjrzyjmy się, jak wszystko łączy się ze sobą i wspiera ekosystem EVM i inne projekty oparte na Ethereum.

Tokeny ERC-20 

Tokeny ERC-20 działają jako motywator dla użytkowników dApp i projektów Ethereum. Są specjalnie zaprojektowane tak, żeby łatwo przenosić je pomiędzy sieciami i zachować ich wartość. Tokeny ERC-20 są tworzone przez inteligentne kontrakty, oparte na określonych strukturach danych.

AMM i DEX 

DEX’y umożliwiają wyminę tokenów ERC-20, właśnie dzięki inteligentnym kontraktom. Z kolei te właśnie inteligentne kontrakty umożliwiają użytkownikom giełd korzystanie z puli płynności, bez konieczności integracji stron trzecich. Tym samym nadaje się im tytuł AMM – zautomatyzowanych animatorów rynku. Do tego grona zaliczymy m.in. SushiSwap, Uniswap, czy kilka innych, popularnych giełd.

Tokeny ERC-271 

Kolejnym typem tokena, który wykorzystywany jest w ekosystemie EVM, to token ERC-271. Bardzo często ten typ tokena wykorzystywany jest do bicia tokenów niewymienny (NFT).

Jeszcze kilka lat temu, kiedy kryptowaluty dopiero oglądały światło dzienne, nie do pomyślenia byłoby, że kawałek kodu, będzie miał zdolność do demokratyzacji wirtualnego dostępu do rynków sztuki. God Unchainned, Axie Infinity, Decentraland – to tylko kilka przykładów gier, które używają ERC-271 w grze, jako przedmiotów kolekcjonerskich.

DeFi

Cardano i jego zdecentralizowana giełda AMM AdaSwap. Dzięki współpracy z Milkomedą i rozwiązaniami warstwy 2 sidechaina Milkomeda daje blockchainom takim jak EVM kompatybilność. Dzięki temu rozwiązaniowi, a w zasadzie sidechainowi, użytkownicy mogą przekazać aktywa i uruchamiać Cardano dApps na Ethereum i odwrotnie.

DAO

Warto wiedzieć, że EVM jest zarządzane przez DAO, czyli zdecentralizowaną organizację autonomiczną. DAO są w pełni autonomiczne i przejrzyste. Inteligentne kontrakty wyznaczają zasady, wykonując decyzje oparte o instrukcje zapisane w kodzie. Nie przeszkadza to jednak użytkownikom systemu w przeprowadzaniu głosowań i zgłaszania propozycji konsensusu. Ciekawostka: nawet sam kod może być oparty o publiczny audyt.  Dzięki temu każdy członek społeczności DAO zrozumie, jak działa protokół na każdym jego etapie.

Jeśli chcesz przypomnieć sobie, czym było i jakie są najważniejsze cechy DAO, odsyłamy Cię do naszej lekcji.

Jak działa EVM? 

A teraz coś dla fanów matematyki i informatyki. Ethereum Virtual Machine działa bardzo podobnie jak większość funkcji matematycznych. Dlaczego? Ponieważ może generować deterministyczne wyjście dla dowolnego wejścia. 

EVM odnosi się głównie do stanu i transakcji. Gdzie stan EVM jest opisywany jako struktura danych, a transakcje to instrukcje działania z różnych kont, podpisanych kryptograficznie.

Stan, a raczej struktura danych, znana jest jako zmodyfikowany Merkle Patricia Trie. Utrzymuje on zapis wszystkich kont, powiązanych ze sobą przez różnego rodzaju hashe. Co ciekawe, „stan” w funkcjach EVM może odnosić się do konkretnego hasha na blockchainie Ethereum.

Transakcje. Warto wiedzieć, że Ethereum Virtual Machine obsługuje aż dwa warianty transakcji. Jednakże tylko jeden z nich skutkuje wywołaniem wiadomości, a drugi tworzy kontrakty. Tworzenie kontraktu prowadzi do stworzenia nowego konta, zawierającego bytecode inteligentnego kontraktu.

Opcodes 

Jeśli uważnie studiowałeś nasze lekcje, ten termin pojawiał się już niejednokrotnie. Szczególnie gdy omawialiśmy samą sieć Ethereum lub tematy z nią powiązane. Dlaczego wspominamy o nich teraz?  Opcody to integralna część każdej implementacji EVM.

Opcody obsługiwane przez Ethereum Virtual Machine pomagają mu realizować poszczególne zadania, powiązane z inteligentnymi kontraktami lub transakcjami kryptowalutowymi EVM, ale nie tylko! Opcody mają także inne zastosowania – rejestrują dane i zadania arytmetyczne, czy pobierają informacje o bloku.

Ciekawostka: opcody nie mają bezpośredniego skryptu w EVM. W efekcie mogą pomóc programistom w tworzeniu inteligentnych kontraktów i interakcji z nimi bez zbędnego wysiłku.

Podsumowanie 

Jeśli kiedykolwiek wchodziłeś w interakcje z ekosystemem Ethereum, musiałeś usłyszeć o Ethereum Virtual Machine. Wirtualna maszyna bez żadnych fizycznych ograniczeń. Do swojego działania nie wymaga żadnego sprzętu z górnej półki. EVM to także świetne środowisko, do łatwego tworzenia i wdrażania inteligentnych kontraktów.