KryptoRatgeber

Glossar

Bytecode

Aktualisiert 12. Juni 2026

Bytecode ist eine maschinenlesbare, plattformunabhängige Zwischendarstellung von Programmcode, die durch Kompilierung aus einer höheren Programmiersprache entsteht und von einer virtuellen Maschine (VM) interpretiert oder in nativen Maschinencode übersetzt wird.

Wie Bytecode entsteht und funktioniert

Wenn ein Entwickler Quellcode schreibt – etwa in Java oder Solidity –, versteht ein Hardware-Prozessor diesen Text nicht direkt. Ein Compiler übersetzt den Quellcode deshalb zunächst in Bytecode: eine kompakte Folge von Bytes, die Programmanweisungen und Werte codiert, für Menschen aber nicht lesbar ist. Dieser Bytecode wird anschließend an eine VM übergeben. Die VM liest die Bytecode-Instruktionen und wandelt sie entweder zur Laufzeit in prozessorspezifischen Maschinencode um oder interpretiert sie Schritt für Schritt. Entscheidend ist, dass dieselbe Bytecode-Datei auf verschiedenen Betriebssystemen und Prozessorarchitekturen lauffähig ist – solange dort die passende VM installiert ist. Das unterscheidet Bytecode von nativem Maschinencode, der stets an eine konkrete Hardware-Plattform gebunden bleibt.

Bytecode im Ethereum-Ökosystem

Im Kontext von Blockchain und Smart Contracts ist Bytecode vor allem als EVM-Bytecode relevant. Schreibt ein Entwickler einen Smart Contract in Solidity, kompiliert der Solidity-Compiler den Quellcode in EVM-Bytecode (Ethereum Virtual Machine Bytecode). Genau diese Bytecode-Darstellung wird auf der Ethereum-Blockchain gespeichert – nicht der ursprüngliche Solidity-Quelltext. Jeder Ethereum-Node führt den Contract über seine lokale EVM-Instanz aus; die Plattformunabhängigkeit ist damit strukturell in das Protokoll eingebaut.

Für die Interaktion mit einem deployten Contract benötigen Nutzer und Anwendungen in der Regel das ABI (Application Binary Interface): eine strukturierte Beschreibung, welche Funktionen und Parameter der Contract bereitstellt. Das ABI fungiert gewissermaßen als menschenlesbarer „Übersetzungsschlüssel" zum darunterliegenden Bytecode. Wer den Quellcode eines Contracts verifizieren möchte, kann ihn neu kompilieren und den resultierenden Bytecode mit dem on-chain gespeicherten Bytecode vergleichen – stimmen beide überein, gilt der Quellcode als authentisch.

Abgrenzung und Sicherheitsrelevanz

Bytecode ist nicht dasselbe wie Maschinencode: Maschinencode wird direkt vom Prozessor ausgeführt, Bytecode hingegen stets über eine VM als Vermittlungsschicht. Diese Trennung ermöglicht Portabilität, bringt aber auch Angriffsfläche mit sich. Da auf der Blockchain nur der Bytecode öffentlich liegt, der Quellcode jedoch nicht zwingend veröffentlicht werden muss, lässt sich die Logik eines unveröffentlichten Contracts für Außenstehende nur durch aufwändiges Reverse Engineering rekonstruieren. Sicherheitsaudits setzen daher idealerweise am verifizierten Quellcode an.

Verwandte Begriffe