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 Ethereum Plasma?
  4. 4. Co to jest Ethereum Casper?
  5. 5. Co to jest dowód Zk-SNARK i Zk-STARK
  6. 6. Co to jest Selfish Minning?
  7. 7. Czym jest spoofing na rynku kryptowalut?
  8. 8. Podpisy Schnorra - co to jest?
  9. 9. MimbleWimble
  10. 10. Cyfrowe prawo własności
  11. 11. Czym są ETFy?
  12. 12. Jak sprawdzić projekt kryptowalutowy – czyli tokenomia kryptowalut
  13. 13. Czym jest atak 51% na blockchain?
  14. 14. Czym jest i jak działa DAO? 
  15. 15. Zero-Knowledge Proof- protokół, który szanuje prywatność
  16. 16. Co to jest EOSREX?
  17. 17. Co to jest Proof of Elapsed Time- dowód upływającego czasu (PoET)?
  18. 18. Mirror Protocol – co to jest?
  19. 19. Aktywa syntetyczne
  20. 20. Jak stworzyć własny NFT?
  21. 21. Czym są likwidacje DeFI?
  22. 22. Nowy system tożsamości - Polygon ID
  23. 23. Fundacja Ethereum i protokół Scroll - czym są?
  24. 24. Czym jest bizantyjska tolerancja błędów?
  25. 25. Czym jest skalowalność technologii blockchain?
  26. 26. Interchain Security- nowy protokół Cosmos (Atom)
  27. 27. Coin Mixing vs. Coin Join - definicja, możliwości i zagrożenia
  28. 28. Czym jest Ethereum Virtual Machine MEV?
  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. Czym jest NEAR Rainbow Bridge?
  41. 41. Liquid Staking Ethereum i tokeny LSD. Co musisz wiedzieć na ten temat?
  42. 42. 10 najlepszych blockchainowych wyroczni. Jak działają? Czym się różnią?
  43. 43. Czym jest Web3.js i Ether.js? Jakie są między nimi podstawowe różnice?
  44. 44. Czym jest StarkWare i rekurencyjne dowody ważności
  45. 45. Quant Network: Skalowalność przyszłości
  46. 46. Polygon zkEVM - wszystko, co powinieneś wiedzieć
  47. 47. Co to jest Optimism (OP) i jak działają jego rollupy?
  48. 48. Czym są węzły RPC node i jak działają?
  49. 49. SEI Network: wszystko, co musisz wiedzieć o rozwiązaniu warstwy 1 dla DeFi
  50. 50. Rodzaje mechanizmów konsensusu Proof-of-Stake: DPoS, LPoS oraz BPoS
  51. 51. Bedrock: krzywa epileptyczna, która zapewnia bezpieczeństwo!
  52. 52. Czym jest Tendermint i jak działa?
  53. 53. Pantos: jak rozwiązać problem transferu tokenów miedzy blockchainami?
  54. 54. Czym jest szyfrowanie asymetryczne?
  55. 55. Funkcja Base-58 w kryptowalutach
  56. 56. Czym jest i jak działa protokół Nostr?
  57. 57. Czym jest i jak działa most XDAI Bridge?
  58. 58. Porównanie Solidity i Rust: Wybór języka programowania w ekosystemie blockchain.
  59. 59. Czym jest Real-Time Operating System (RTOS)?
  60. 60. Czym jest i jak działa Rinkeby Testnet Ethereum?
  61. 61. Czym jest szyfrowanie probabilistyczne?
  62. 62. Czym jest Pinata w Web 3? Wyjaśniamy!
  63. 63. Czym jest EIP-4337? Czy Ethereum Account Abstraction zmieni Web3 na zawsze?
  64. 64. Czym są audyty inteligentnych kontraktów? Jakie firmy się nim zajmują?
  65. 65. Jak działa portfel AirGapped?
  66. 66. Czym jest proto-danksharding (EIP-4844) na Ethereum?
  67. 67. Czym jest i jak działa zdecentralizowana pamięć masowa?
  68. 68. Jak odzyskać kryptowaluty wysłane na niewłaściwy adres lub sieć? Praktyczny poradnik!
  69. 69. Portfel MPC i Obliczenia Wielostronne: Innowacyjna technologia dla prywatności i bezpieczeństwa.
  70. 70. Podpis progowy w kryptografii: zaawansowana technika podpisywania!
  71. 71. Adres Vanity w kryptowalutach: czym jest i jaka jest jego charakterystyka?
  72. 72. Atak Ponownego Wejścia (Reentrancy Attack) na inteligentnych kontraktach: zagrożenie dla bezpieczeństwa blockchain!
  73. 73. Slither: statyczny analizator dla smart kontraktów!
  74. 74. Sandwich Attack w DeFi: wyjaśnienie i zagrożenia!
  75. 75. Blockchain RPC dla Web3: Kluczowa technologia w świecie zdecentralizowanych finansów!
  76. 76. Re-staking: Korzyści z ponownego delegowania środków w stakingu!
  77. 77. Base: Ewolucja transakcji kryptowalutowych dzięki rozwiązaniu warstwy 2 od Coinbase
  78. 78. IPFS: Nowa era zdecentralizowanego przechowywania danych
  79. 79. Typowe luki i zabezpieczenia mostów w technologii blockchain
  80. 80. JumpNet – nowy sidechain Ethereum
Lekcja 28 z 80

28. 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 

Ethereum Virtual Machine (EVM) to oprogramowanie, które ma na celu generowanie i kompilowanie inteligentnych kontraktów do czytelnej formy zwaną Bytecode. Równocześnie EVM oblicza stan sieci Ethereum po dodaniu każdego nowego bloku do łańcucha.

Ethereum Virtual Machine zajmuje pozycję na najwyższym poziomie warstwy sprzętowej i sieciowej w ramach Ethereum. Co jeszcze jest interesujące w kontekście EVM? Inteligentne kontrakty wdrożone na innych zgodnych łańcuchach z EVM, takich jak Polygon czy Avalanche, są rozpoznawalne przez węzły Ethereum. W rezultacie deweloperzy mogą stosunkowo łatwo przenieść swoje dApp-y lub tokeny z Ethereum na inne łańcuchy, które są kompatybilne z Ethereum Virtual Machine i programować w języku Solidity.

W branży krypto EVM często nazywane jest „sercem Ethereum”, które napędza cały ekosystem sieci.

Jak działa Ethereum Virtual Machine?

Działanie EVM można 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 generowania nowych tokenów na blockchainie Ethereum. Jak wspomniano wcześniej, EVM to program, który ułatwia tworzenie skryptów używanych do realizacji operacji na blockchainie Ethereum. Skrypt to zestaw instrukcji lub algorytmów, które mówią „komputerowi”, co zrobić, aby coś działało prawidłowo. EVM wymaga od deweloperów dostępu do dowolnego łańcucha sieci, aby móc wykonać żądane polecenia i utworzyć nowy token na łańcuchu bloków bez żadnych trudności.

Teraz, gdy już wiadomo, jak powstają nowe tokeny przy użyciu EVM, spójrzmy 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 dostarcza deweloperom i twórcom inteligentnych kontraktów środowisko Turing Complete, w którym mogą tworzyć skrypty i kontrakty. Oznacza to, że wszystko, co zaimplementujemy za pomocą komputera, uruchomimy przy użyciu EVM.

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 (EVM) składa się z dwóch głównych elementów. Pierwszy z nich jest odpowiedzialny za uruchamianie kodu źródłowego Solidity. EVM został napisany w języku C++ i korzysta z LLVM jako kompilatora. Ten składnik EVM obsługuje różne języki programowania, zapewnia bezpieczeństwo oraz środowisko uruchomieniowe dla kodów. Ponadto umożliwia programistom pisanie niestandardowego kodu bajtowego EVM.

Drugi element to tzw. “uncles” – niewielkie fragmenty inteligentnych kontraktów lub danych przechowywanych na łańcuchu bloków. Ten składnik pozwala na przechowywanie metadanych, takich jak:

  • Informacje dotyczące podstawowych operacji, które można wykonać na aktywach przechowywanych w pamięci (nie na blockchainie!).
  • Saldo Etheru posiadane przez kogoś w danym momencie.
  • Historia wszystkich działań i transakcji związanych z Ethereum.
  • Informacje o hashu danego bloku.
  • Dane o tzw. “block number”, czyli liczbie wskazującej, do którego bloku należy konkretny “blockhash”.
  • Kod wykonywany przy użyciu EVM, określający, jakie działanie zostanie podjęte w przypadku określonego wejścia (np. przekazywanie środków).
  • Rzeczywisty rozmiar kodu w bajtach.
  • Informacje o fragmencie EVM, który pozwala użytkownikom określić, ile jednostek gazu są gotowi zużyć w celu wykonania danej operacji.

Kiedy ktoś wspomina o “gazie”, możemy zapytać, jak ma to związek z wydajnością EVM. Otóż, gaz pełni rolę miary mocy obliczeniowej. W skrócie, określa czas, jaki jest potrzebny do wykonania transakcji i kontraktu. Ponieważ w całym ekosystemie istnieje dużo kodu, do jego wykonania “z góry” przypisuje się określoną ilość gazu. Domyślny limit został ustawiony na 250 000 jednostek. Warto pamiętać, że im bardziej skomplikowana transakcja, tym więcej gazu jest potrzebne do jej wykonania.

Zalety EVM

  1. Zmniejsza ryzyko wykonania niezaufanego kodu: EVM minimalizuje ryzyko uruchomienia kodu pochodzącego od niezaufanych źródeł, jednocześnie chroniąc dane poufne. Gwarantuje deweloperom, że ich obliczenia nie będą interferować z innymi systemami lub danymi osobistymi.
  2. Umożliwia uruchamianie złożonych inteligentnych kontraktów: Dzięki Ethereum Virtual Machine możemy bez obaw uruchamiać złożone inteligentne kontrakty, nie martwiąc się o to, jak wpłyną one na siebie nawzajem. Kontrakty te można napisać raz i uruchamiać na różnych platformach, co umożliwia stworzenie jednego inteligentnego kontraktu działającego na wielu platformach.
  3. Przetwarzanie deterministyczne: Inteligentne kontrakty napisane przy użyciu EVM mają dostęp do pełnej sieci Ethereum w danym momencie. To umożliwia przetwarzanie w sposób deterministyczny, co zwiększa pewność co do ich poprawności.
  4. Konsensus w formie rozproszonej: Ekosystem Ethereum pozwala na uruchamianie tego samego programu przez większość użytkowników na ich własnych komputerach, co sprzyja konsensusowi w formie rozproszonej.
  5. Łatwość pisania kontraktów stateful: EVM jest dedykowany do pisania inteligentnych kontraktów i tworzenia dApp’ów, zapewniając jednocześnie, że wszyscy użytkownicy 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

  1. Bardzo wysoki koszt przechowywania danych: W skrócie – gaz. To, co zużywamy, płacąc opłatę za uruchomienie inteligentnego kontraktu.
  2. Wysoki koszt przechowywania danych na blockchainie: Może on przekroczyć 3TB, co stanowi znaczący wydatek.
  3. Wymagana duża wiedza techniczna: Pisanie inteligentnych kontraktów i korzystanie z EVM wymaga zaawansowanej wiedzy technicznej. Środowisko Turing Complete, pozwalające programować w różnych językach, może być zarówno zaletą dla niektórych, jak i przeszkodą dla innych osób z ograniczoną wiedzą i doświadczeniem.

Blockchainy kompatybilne z EVM

Interoperacyjność pomiędzy różnymi łańcuchami bloków w ekosystemie Ethereum stała się znaczącym wyzwaniem dla deweloperów. Wysokie opłaty za gaz i opóźnione transakcje skłoniły twórców Ethereum do poszukiwania alternatywnych rozwiązań na innych blockchainach. Choć pomagało to w zaoferowaniu szybszych transakcji i obniżeniu kosztów, napotykano na problem ograniczeń i braku interoperacyjności między różnymi łańcuchami blokowymi.

Łańcuchy zgodne z Ethereum Virtual Machine (EVM) stanowią skuteczne rozwiązanie dla tego problemu. Deweloperzy nie muszą zaczynać od podstaw, tworząc środowisko podobne do EVM. Zamiast tego mogą skorzystać z kompatybilnych łańcuchów blokowych, które replikują pewne elementy sieci Ethereum, umożliwiając szybkie i łatwe przenoszenie aktywów między różnymi sieciami EVM.

Dzięki tej interoperacyjności, najczęściej używane blockchainy podążają za standardem kompatybilności z EVM. Przykładowe łańcuchy blokowe, które współpracują z EVM, obejmują:

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

Sidechainy tych ekosystemów są zazwyczaj zgodne z EVM, co przynosi korzyści i możliwości charakterystyczne dla blockchaina Ethereum, lecz zdecydowanie większą prędkością, pojemnością i niższymi opłatami transakcyjnymi.

Przypadki użycia EVM

Teraz, gdy już zdobyłeś wiedzę na temat tego, czym jest i jak działa EVM, skoncentrujmy się na tym, jak wszystko to łączy się w ekosystemie EVM oraz jak wspiera inne projekty oparte na Ethereum.

  1. Tokeny ERC-20: Tokeny ERC-20 pełnią rolę motywatorów dla użytkowników dApp i projektów opartych na Ethereum. Są zaprojektowane specjalnie tak, aby łatwo przenosić je między różnymi sieciami, jednocześnie zachowując ich wartość. Tworzone są przez inteligentne kontrakty, które opierają się na określonych strukturach danych.
  2. AMM i DEX: DEX-y umożliwiają wymianę tokenów ERC-20, korzystając z inteligentnych kontraktów. To właśnie te kontrakty umożliwiają użytkownikom korzystanie z puli płynności bez konieczności integracji z zewnętrznymi platformami. Te zautomatyzowane animatorzy rynku (AMM), takie jak SushiSwap, Uniswap i inne popularne giełdy, są kluczowymi graczami w tym obszarze.
  3. Tokeny ERC-271: Kolejnym typem tokena w ekosystemie EVM są tokeny ERC-271, często używane do tworzenia tokenów niemieniących się (NFT). Gry takie jak God Unchainned, Axie Infinity czy Decentraland wykorzystują ERC-271 do generowania kolekcjonerskich przedmiotów w grze.
  4. DeFi: Projekty, takie jak Cardano i jego zdecentralizowana giełda AMM AdaSwap, współpracują z rozwiązaniami warstwy 2 sidechaina Milkomeda, co zapewnia kompatybilność z blockchainami, takimi jak EVM. To umożliwia użytkownikom przesyłanie aktywów i uruchamianie dAppów Cardano na Ethereum, a także odwrotnie.
  5. DAO: Warto zaznaczyć, że EVM jest zarządzane przez DAO, czyli zdecentralizowaną organizację autonomiczną. DAO działają w sposób autonomiczny i transparentny, gdzie inteligentne kontrakty ustalają zasady, podejmując decyzje na podstawie kodu. Mimo to użytkownicy systemu mogą brać udział w głosowaniach i zgłaszać propozycje konsensusu. Ciekawostką jest, że nawet sam kod może być poddany publicznemu audytowi, co umożliwia każdemu członkowi społeczności DAO zrozumienie, jak protokół działa na każdym 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? 

Teraz coś dla entuzjastów matematyki i informatyki. Ethereum Virtual Machine działa analogicznie do większości funkcji matematycznych, ponieważ jest w stanie generować deterministyczne wyjście dla dowolnego wejścia.

EVM skupia się głównie na stanie i transakcjach. Stan EVM opisuje strukturę danych, a transakcje to instrukcje działania z różnych kont, podpisane kryptograficznie.

Stan, reprezentowany jako zmodyfikowane drzewo Patricia Merkle, przechowuje zapisy wszystkich kont, powiązanych ze sobą przez różnego rodzaju hasze. Co interesujące, pojęcie “stan” w funkcjach EVM może odnosić się do konkretnego hasha na blockchainie Ethereum.

Warto również zaznaczyć, że Ethereum Virtual Machine obsługuje dwa warianty transakcji. Jednak tylko jeden z nich prowadzi do wywołania wiadomości, a drugi do tworzenia kontraktów. Tworzenie kontraktu skutkuje stworzeniem nowego konta, zawierającego bytecode inteligentnego kontraktu.

Opcody, które wielokrotnie pojawiały się w naszych wcześniejszych lekcjach, stanowią integralną część każdej implementacji EVM. Opcody obsługiwane przez Ethereum Virtual Machine służą do realizacji różnych zadań związanych z inteligentnymi kontraktami, transakcjami kryptowalutowymi, a także do rejestrowania danych i wykonywania operacji arytmetycznych. Ciekawostką jest to, że opcody nie posiadają bezpośredniego skryptu w EVM, co umożliwia programistom tworzenie inteligentnych kontraktów i interakcji z nimi bez nadmiernego wysiłku.

Podsumowanie 

Jeżeli kiedykolwiek miałeś styczność z ekosystemem Ethereum, z pewnością nie ominęła Cię informacja o Ethereum Virtual Machine. Jest to wirtualna maszyna, pozbawiona fizycznych ograniczeń, która do swojego działania nie wymaga zaawansowanego sprzętu. EVM stanowi również doskonałe środowisko do łatwego tworzenia i wdrażania inteligentnych kontraktów.