EVM (Ethereum-Virtual Machine) – maszyna wirtualna
Wirtualna maszyna Ethereum (EVM) to kompletna maszyna wirtualna oparta na pakietach Turinga, która wykonuje inteligentne kontrakty na blockchainie Ethereum.
EVM to środowisko uruchomieniowe dla smart kontraktów w Ethereum. Jest to środowisko piaskownicy, co oznacza, że kod działający wewnątrz EVM nie może bezpośrednio uzyskać dostępu do sieci, systemu plików ani innych procesów na maszynie hosta. Ten projekt ma kluczowe znaczenie dla bezpieczeństwa, zapobiegając powodowaniu rozległych szkód przez złośliwe smart kontrakty. EVM działa w oparciu o architekturę opartą na stosie, wykonując instrukcje kodu bajtowego. Każdy węzeł Ethereum uruchamia instancję EVM, zapewniając, że wszystkie węzły zgadzają się co do stanu blockchain po każdej transakcji z udziałem smart kontraktu. Ten mechanizm konsensusu jest fundamentalny dla działania Ethereum.
Projekt EVM umożliwia wykonywanie dowolnego kodu, co czyni Ethereum programowalnym blockchainem. Deweloperzy piszą smart kontrakty w językach wysokiego poziomu, takich jak Solidity, które następnie są kompilowane do kodu bajtowego EVM. To właśnie ten kod bajtowy jest wykonywany przez EVM. EVM zarządza również stanem Ethereum, w tym saldami kont, kodem kontraktu i pamięcią. Gas jest używany do opłacania zasobów obliczeniowych i pamięci masowej używanych przez smart kontrakty, zapobiegając atakom typu odmowa usługi.
graph LR
Center["EVM (Ethereum-Virtual Machine) – maszyna wirtualna"]:::main
Pre_cryptography["cryptography"]:::pre --> Center
click Pre_cryptography "/terms/cryptography"
Rel_smart_contracts["smart-contracts"]:::related -.-> Center
click Rel_smart_contracts "/terms/smart-contracts"
Rel_solidity["solidity"]:::related -.-> Center
click Rel_solidity "/terms/solidity"
Rel_zkevm_zero_knowledge_ethereum_virtual_machine["zkevm-zero-knowledge-ethereum-virtual-machine"]:::related -.-> Center
click Rel_zkevm_zero_knowledge_ethereum_virtual_machine "/terms/zkevm-zero-knowledge-ethereum-virtual-machine"
classDef main fill:#7c3aed,stroke:#8b5cf6,stroke-width:2px,color:white,font-weight:bold,rx:5,ry:5;
classDef pre fill:#0f172a,stroke:#3b82f6,color:#94a3b8,rx:5,ry:5;
classDef child fill:#0f172a,stroke:#10b981,color:#94a3b8,rx:5,ry:5;
classDef related fill:#0f172a,stroke:#8b5cf6,stroke-dasharray: 5 5,color:#94a3b8,rx:5,ry:5;
linkStyle default stroke:#4b5563,stroke-width:2px;
🧠 Sprawdzenie wiedzy
🧒 Wyjaśnij jak 5-latkowi
EVM to taka jakby jednostka napędowa w komputerze [Ethereum](/pl/terms/ethereum). Czyta ona specjalne instrukcje (kod bajtowy) ze smart kontraktów i wykonuje działania, tak jak szef kuchni krok po kroku realizuje przepis. Każdy krok kosztuje trochę pieniędzy, czyli "gazu", żeby gotowanie nie trwało wiecznie.
🤓 Expert Deep Dive
Wirtualna Maszyna Ethereum (EVM) to deterministyczne środowisko wykonawcze oparte na stosie, zaprojektowane do obsługi inteligentnych kontraktów. Jej podstawową funkcją jest przetwarzanie wywołań transakcji i przejść stanu w całej sieci Ethereum. Specyfikacja EVM definiuje zestaw kodów operacji (opcode'ów), rozmiar słowa wynoszący 256 bitów oraz mechanizm rozliczania gazu do mierzenia nakładu obliczeniowego. Determinizm jest kluczowy; każdy węzeł wykonujący ten sam kod bajtowy z tym samym stanem początkowym musi osiągnąć identyczny stan końcowy. Jest to realizowane poprzez ścisłe przestrzeganie funkcji przejścia stanu EVM. Mechanizm gazu, choć zapobiega nadużywaniu zasobów, wprowadza ograniczenia ekonomiczne, które znacząco wpływają na projektowanie dAppów i doświadczenie użytkownika, szczególnie w odniesieniu do kosztów transakcji i ograniczeń przepustowości. Kompromisy architektoniczne obejmują nieodłączne ograniczenia architektury opartej na stosie w przypadku złożonych obliczeń oraz wyzwania związane z optymalizacją efektywności gazu dla wykonania inteligentnych kontraktów. Wybory projektowe EVM wpłynęły na późniejsze projekty wirtualnych maszyn blockchain, ale także podkreślają ciągłe dążenie do wyższej wydajności i niższych opłat transakcyjnych, prowadząc do innowacji takich jak rozwiązania warstwy 2 i alternatywne środowiska wykonawcze.