Nur zu Bildungszwecken; stellt keine Anlageberatung oder Anlageempfehlung dar. Anlagen können zu Verlusten führen.
Direkte Antwort
Die EVM ist die Zustandsübergangsmaschine der Ausführungsschicht, die Bytecode nach den Regeln eines bestimmten Forks interpretiert. Bei gleichem gültigem Vorzustand, gleicher Transaktion oder Message, Blockumgebung und Spezifikation müssen konforme Clients denselben Folgezustand oder Fehler berechnen. Die EVM ordnet keine Transaktionen, liefert keine Finalität und macht EVM-kompatible Chains nicht ebenso sicher wie Ethereum.
Eine extern signierte Transaktion ist ein Protokollobjekt oberster Ebene. Vertragsaktivität besteht aus verschachtelten Message Calls und Call Frames, nicht aus eigenständigen Transaktionen. Jeder Frame hat Code, Program Counter, 256-Bit-Stack, Memory, Calldata, Returndata, Gas und Kontext; persistenter Storage gehört zum Konto, transienter Storage gilt transaktionsweit.
Funktionsweise
- Chain und
chainId, Netzwerk, Block und Hash, kanonischen oder finalisierten Status, Fork, Client, Revision, Vorzustand, Typ, signierte Bytes, Hash und Receipt festlegen. - Envelope dekodieren und Vorabgültigkeit von Ausführung trennen. Signatur, Absender, Nonce, Ziel oder Erstellung, Value, Calldata, Gaslimit, Gebühren, Access List und Typparameter prüfen. Eine Vorabablehnung ist kein inkludierter Revert.
- Top-Level-Message und Call Tree erstellen.
CALL,STATICCALL,DELEGATECALL, Erstellung und Precompiles sowie Caller, Kontext- und Codeadresse,msg.sender,msg.value, Value, Daten, Gas und Ergebnis erfassen. „Interne Transaktion“ ist eine Trace-Ansicht. - Program Counter, Stack, Memory, Daten, Logs sowie persistenten und transienten Storage verfolgen.
CALLnutzt den Callee-Kontext;DELEGATECALLführt Zielcode im Caller-Kontext aus und erhält Sender und Value;STATICCALLverbietet Zustandsänderung. - Fork-Gasregeln für Intrinsic Gas, Opcodes, Memory, Cold/Warm Access, Calls, Stipends, Precompiles und Refunds anwenden. Gebühr getrennt vom Value berechnen. Eine Schätzung ist keine Garantie.
- Ergebnisse nach Scope behandeln.
RETURNcommitet nur, wenn Vorfahren committen.REVERTsetzt Frame und Nachfahren zurück, liefert Daten und kann Gas zurückgeben; Exceptional Halt ist anders. Eltern können Fehler abfangen, daher kann Top-Level-Status1sein. Ein inkludierter Fehler verbraucht Nonce und Gas. - Status, Gas, Logs, Erstellungsadresse und Rückgabe mit Salden, Nonces, Code, Storage, Token-Ledgern, Traces und State Root abgleichen. Bei Bedarf re-exekutieren und Proxies, Layouts, Precompiles, Compiler und Forks getrennt von Finalität prüfen.
Durchgerechnete Beispiele
- Top-Level-Revert und Gebühr. Eine Typ-2-Transaktion hat Limit
80,000, verbraucht52,000, Base Fee20 gwei, maximale Priority Fee3 gweiund Max Fee40 gwei. Effektiv giltmin(40, 20 + 3) = 23 gwei; bezahlt werden52,000 * 23 gwei = 0.001196 ETH, davon52,000 * 20 gwei = 0.001040 ETHverbrannt und52,000 * 3 gwei = 0.000156 ETHPriority Fee. Die ungenutzten28,000 gaswerden nicht berechnet. Bei Revert rollen Storage, Value und Logs zurück, Nonce und Gebühr bleiben. - Abgefangener Kindfehler. A beginnt mit
A.x = 5. B schreibtB.y = 9, emittiert ein Log und führtREVERTaus; Schreiben und Log rollen zurück. A siehtsuccess = false, schreibtA.x = 7und endet normal. Receipt-Status ist1, final giltA.x = 7, B behält den Vorwert. - DELEGATECALL-Kontext. Proxy hat
slot0 = 5, Implementierungslot0 = 99; Code addiert7. DurchDELEGATECALLwird Proxyslot0 = 12, Implementierung bleibtslot0 = 99; Adresse und Storage des Proxy gelten, Sender und Value bleiben erhalten. - Fork-bezogenes SELFDESTRUCT. Unter EIP-6780 führt ein bestehender Vertrag mit
2 ETHSELFDESTRUCTzu B aus. B erhält2 ETH, der Saldo wird null, Konto, Code und Storage werden aber nicht gelöscht. Löschung bleibt nur bei Erstellung und Selbstzerstörung in derselben Transaktion.
Risiken
- Gegen falsche Chain, Block, Fork, Client oder Vorzustand re-exekutieren.
- Nicht kanonischen oder reorganisierten Zustand als final behandeln.
- Vorabablehnung mit inkludiertem Revert verwechseln.
- Übereinstimmung ausstehender Simulation mit Inklusion annehmen.
- Top-Level-Revert, Exceptional Halt oder Out-of-Gas übersehen.
- Abgefangenen Kindfehler übersehen.
- Kontext, Codeadresse, Caller, Sender oder Value falsch lesen.
- Proxy durch Layoutfehler bei
DELEGATECALLbeschädigen. - Reentrancy oder unsichere externe Kontrollübertragung zulassen.
- Ungeprüften Returndata, Flags oder Fehlern vertrauen.
- Logs oder Traces als maßgeblichen Zustand behandeln.
- Access-, Memory- oder weitergeleitetes Gas falsch berechnen.
- Refunds, Caps, Stipends oder
63/64-Regel falsch anwenden. - Falsche Precompile-Adresse, Eingabe, Kosten oder Forkregeln nutzen.
- Persistent Storage, Memory und Transient Storage verwechseln.
- Zustandsänderung in
STATICCALLerwarten. - Alte Löschannahmen für
SELFDESTRUCTanwenden. - Implementierungs-, Admin- oder Compilerdrift übersehen.
- Abweichende oder veraltete Clientregeln ausführen.
- Konsens-, Bridge-, Token- oder Governance-Sicherheit aus EVM-Kompatibilität ableiten.
Häufige Irrtümer
- Solidity-Quellcode wird direkt onchain ausgeführt.
- Ein inkludierter Revert kostet nichts und ändert die Nonce nicht.
- Receipt-Status
1beweist den Erfolg aller internen Calls. - Event oder Trace ist der maßgebliche Zustand.
- EVM-Kompatibilität garantiert identische Opcodes, Gas, Precompiles, Konsens und Sicherheit.
Verwandte Themen
Quellen
- Ethereum Virtual Machine (EVM) - Ethereum.org (abgerufen: 2026-08-12)
- Ethereum Yellow Paper: a formal specification of Ethereum, a programmable blockchain - Ethereum Foundation (abgerufen: 2026-08-12)
- Ethereum Execution Layer Specification - Ethereum Execution Specs (abgerufen: 2026-08-12)
- Introduction to Smart Contracts - Solidity Documentation (abgerufen: 2026-08-12)
- EIP-7: DELEGATECALL - Ethereum Improvement Proposals (abgerufen: 2026-08-12)
- EIP-140: REVERT instruction - Ethereum Improvement Proposals (abgerufen: 2026-08-12)
- EIP-2929: Gas cost increases for state access opcodes - Ethereum Improvement Proposals (abgerufen: 2026-08-12)
- EIP-6780: SELFDESTRUCT only in same transaction - Ethereum Improvement Proposals (abgerufen: 2026-08-12)