Wie Bitcoin unter der Haube wirklich funktioniert

MH
Geschrieben von Mohamed Habbat
Geschätzte Lesezeit: 10 Min.

Jede Bitcoin-Transaktion ist ein winziges Programm. Die meisten Nutzer lesen nie eines. Das musst du auch nicht. Aber wenn du wissen willst, was dein Wallet schreibt, wenn du auf Senden klickst, öffnet dieses Kapitel die Motorhaube.

Du kannst es überspringen und Bitcoin trotzdem sicher nutzen. Liest du es, weisst du, warum es bei Bitcoin keine Smart-Contract-Hacks wie beim DAO gibt, warum deine Transaktion manchmal stundenlang unbestätigt bleibt und was Taproot wirklich verändert hat.

Was ist Bitcoin Script?

Jede Bitcoin-Transaktion trägt ein kleines Programm in einer Sprache namens Bitcoin Script.

Script definiert die Ausgaberegel. Wenn du jemandem Bitcoin schickst, bewegst du keine Coins an seine Adresse. Du erzeugst einen Output, der mit einem Script-Programm gesperrt ist. Dieses Programm legt die Bedingungen fürs Ausgeben fest. Um die Coins später auszugeben, muss der Empfänger einen Input liefern, der das Programm entsperrt.

Die beiden Teile haben Namen. Das sperrende Programm ist der ScriptPubKey (oder Output-Script). Die entsperrenden Daten sind die ScriptSig oder, in neueren Transaktionsformaten, ein Witness.

Bitcoin Script ist stackbasiert. Befehle laufen der Reihe nach ab, legen Werte auf einen Stack und nehmen sie wieder herunter. Stell dir einen Tellerstapel vor, bei dem du nur den obersten Teller anfasst. Die Operationen bleiben einfach: einen Wert ablegen, eine Signatur prüfen, Hashes vergleichen, mit OP_IF verzweigen.

Ein Node validiert eine Transaktion, indem er zuerst das entsperrende Script ausführt (und die nötigen Daten auf den Stack legt) und danach das sperrende Script. Endet der oberste Wert auf dem Stack mit einem Wert ungleich null, ist die Transaktion gültig. Andernfalls lehnt der Node sie ab.

Dein Wallet schreibt das Script für dich. Du siehst es nie. Aber wer den Mechanismus kennt, weiss, was Bitcoin-Transaktionen können und was nicht.

Häufige Script-Muster

Standard-Bitcoin-Transaktionen nutzen eine kleine Auswahl an Script-Vorlagen:

Pay-to-Public-Key-Hash (P2PKH). Das klassische Adressformat, das mit "1" beginnt. Das sperrende Script sagt: Wer einen öffentlichen Schlüssel liefert, der zu diesem Hash passt, plus eine gültige Signatur des zugehörigen privaten Schlüssels, darf diese Coins ausgeben. Die meisten historischen Bitcoin-Transaktionen bauen darauf.

Pay-to-Script-Hash (P2SH). Adressen, die mit "3" beginnen. Das sperrende Script sagt: Wer ein Script liefert, dessen Hash diesem Wert entspricht, plus Inputs, die dieses Script erfüllen, darf diese Coins ausgeben. P2SH ermöglichte Multisig und komplexe Bedingungen, ohne dass Adressen länger wurden.

Pay-to-Witness-Public-Key-Hash (P2WPKH). SegWit-Adressen, die mit "bc1q" beginnen. Gleiche Logik wie P2PKH, aber die Signaturdaten wandern in den Witness-Teil der Transaktion. SegWit senkte die Gebühren und behob einen lange bekannten Malleability-Bug.

Pay-to-Taproot (P2TR). Adressen, die mit "bc1p" beginnen. Das neueste Format. Es nutzt Schnorr-Signaturen und eine Baumstruktur für Ausgabebedingungen. Eine einfache Ausgabe sieht identisch aus wie eine komplexe Ausgabe mit mehreren Bedingungen, was die Privatsphäre verbessert.

OP_RETURN. Ein spezieller Output, der beliebige Daten an eine Bitcoin-Transaktion anhängt. Die Standardness-Regel begrenzte das historisch auf 80 Bytes pro Output. Bitcoin Core 30, veröffentlicht am 10. Oktober 2025, hob den Standardwert von -datacarriersize auf 100,000 Bytes an. Die Release Notes beschreiben das als faktisch unbegrenzt, weil die Standardness-Obergrenze pro Transaktion zuerst greift. Siehe die Release Notes zu Bitcoin Core 30 und die Berichterstattung von CoinDesk zur Begründung. OP_RETURN-Outputs sind nachweislich nicht ausgebbar. Das Token-Protokoll Runes und andere Verfahren zur Datenverankerung nutzen sie. (Ordinals-Inscriptions funktionieren anders. Sie betten Daten über eine OP_FALSE OP_IF-Hülle in den Taproot-Witness ein, nicht in OP_RETURN.)

Was sind OP-Codes?

OP-Codes (Operation Codes) sind die einzelnen Befehle in Bitcoin Script. Jeder tut genau eine Sache.

Die, die dir am häufigsten begegnen:

OP_DUP. Dupliziert das oberste Element auf dem Stack. Das Standard-Adress-Script nutzt ihn, um den Hash des öffentlichen Schlüssels zu prüfen, ohne den öffentlichen Schlüssel zu zerstören.

OP_HASH160. Nimmt das oberste Element vom Stack, berechnet darüber SHA-256 gefolgt von RIPEMD-160 und legt das Ergebnis ab. Diese Hash-Funktion macht aus öffentlichen Schlüsseln Bitcoin-Adressen.

OP_EQUALVERIFY. Prüft, ob die obersten zwei Elemente auf dem Stack übereinstimmen. Falls nicht, schlägt das Script auf der Stelle fehl.

OP_CHECKSIG. Nimmt einen öffentlichen Schlüssel und eine Signatur vom Stack, prüft die Signatur gegen die Transaktionsdaten und legt wahr oder falsch ab. Das ist die grundlegende Operation "Beweise, dass dir das gehört".

OP_CHECKMULTISIG. Prüft mehrere Signaturen gegen mehrere öffentliche Schlüssel. Erfordert M von N, wobei das Script M und N festlegt.

OP_CHECKLOCKTIMEVERIFY (CLTV). Lässt das Script fehlschlagen, ausser die Locktime der Transaktion liegt bei oder nach einer bestimmten Blockhöhe oder einem bestimmten Zeitstempel. Zeitgesperrte Outputs, die vor einem bestimmten Zeitpunkt niemand ausgeben kann, bauen darauf.

OP_CHECKSEQUENCEVERIFY (CSV). Wie CLTV, erzwingt aber relative Timelocks. Der Output bleibt nicht ausgebbar, bis nach seiner Erzeugung eine bestimmte Anzahl Blöcke vergangen ist. Die Payment Channels des Lightning Network hängen davon ab.

OP_IF / OP_ELSE / OP_ENDIF. Bedingte Ausführung. Ein Script kann mehrere Ausgabepfade anbieten, die beim Ausgeben über die Daten gewählt werden, die der Ausgebende liefert.

Viele OP-Codes aus der Frühzeit von Bitcoin wurden deaktiviert, nachdem Sicherheitsforscher Schwachstellen darin gefunden hatten. Satoshi und die Maintainer schränkten die Ausdruckskraft von Script mit Absicht ein.

Was bedeutet "Turing-vollständig", und warum ist Bitcoin es nicht?

Eine Turing-vollständige Sprache kann jede Berechnung simulieren, wenn sie genug Zeit und Speicher hat. Dafür muss sie unbegrenzt Schleifen laufen lassen und beliebigen Zustand zwischen Operationen halten können.

Ethereums Smart-Contract-Sprache (Solidity, ausgeführt auf der EVM, der Ethereum Virtual Machine) ist Turing-vollständig. Sie führt Schleifen aus, hält Zustand über Transaktionen hinweg und führt beliebig komplexe Programme aus. Damit Endlosschleifen das Netzwerk nicht lahmlegen, verlangt Ethereum für jeden Rechenschritt "Gas". Ein Programm läuft, bis es fertig ist oder das Gas ausgeht.

Bitcoin Script ist bewusst nicht Turing-vollständig. Keine Schleifen. Keine Rekursion. Kein dauerhafter Zustand zwischen Transaktionen. Jede Script-Ausführung endet nach einer begrenzten Anzahl Schritte. Das war eine Entscheidung, kein Überbleibsel früher Technik.

Drei Gründe stehen hinter dieser Entscheidung:

Vorhersagbarkeit. Jeder Node im Bitcoin-Netzwerk validiert jede Transaktion. Könnte Script endlos Schleifen laufen lassen, könnte eine einzige bösartige Transaktion die Validierung weltweit anhalten oder jeden Node zu unbegrenzten Berechnungen zwingen, bevor er über das Schicksal der Transaktion entscheidet. Begrenztes Script hält die Validierung schnell, egal wie exotisch die Transaktion ist.

Sicherheit. Ausdrucksstarke Sprachen haben grössere Angriffsflächen. Ethereums Geschichte ist voll von Smart-Contract-Exploits, vom DAO-Hack 2016 bis zu den DeFi-Protokoll-Plünderungen, die sich ab 2020 häuften. Die enge Ausdruckskraft von Bitcoin Script schliesst ganze Klassen von Schwachstellen aus, bevor sie entstehen können.

Konsenssicherheit. Zehntausende unabhängige Nodes weltweit müssen die Regeln von Bitcoin identisch auswerten. Externe Datenquellen, komplexer Zustand oder unbegrenzte Berechnungen würden den Konsens zerbrechlich machen. Script hält die Validierung deterministisch und in sich geschlossen.

Dafür bezahlst du mit Fähigkeiten. Bitcoin kann die offenen, programmierbaren Anwendungen, die Ethereum nativ unterstützt, nicht ausführen. Komplexe Finanzanwendungen, dezentrale Börsen und Governance-Systeme, die fortlaufenden Zustand brauchen, leben auf anderen Layern oder in anderen Netzwerken.

Welche Smart Contracts kann Bitcoin?

Innerhalb der Grenzen von Script drückt Bitcoin eine beachtliche Bandbreite an Verträgen aus:

Multisig. Verlangt M Signaturen von N festgelegten Schlüsseln, bevor Mittel bewegt werden. Ein 2-von-3-Multisig bedeutet: Zwei beliebige von drei Schlüsselinhabern können eine Transaktion autorisieren, aber keiner kann allein handeln. Firmenkassen, Nachlassregelungen und Verwahrungsanbieter laufen darauf.

Timelock-Verträge. Mittel bleiben eingefroren bis zu einer bestimmten Blockhöhe oder Zeit. Vesting-Pläne, Anleihen mit Sperrfristen und komplexere Konstruktionen nutzen sie als Bausteine.

Payment Channels im Lightning Network. Eine Kombination aus Multisig und relativen Timelocks lässt zwei Parteien sofort off-chain handeln und nur den Endsaldo on-chain abrechnen. Das ist heute der am weitesten verbreitete Bitcoin-Smart-Contract.

Hash Time-Locked Contracts (HTLCs). Der Mechanismus, der Lightning-Zahlungen über Zwischenstationen leitet, ohne ihnen vertrauen zu müssen. Eine Zahlung wird mit einem kryptografischen Geheimnis gesperrt. Der Empfänger entsperrt sie, indem er das Geheimnis offenlegt. Die Zwischenstationen werden nur bezahlt, wenn sich das Geheimnis durch die Kette zurück verbreitet.

Taproot-Script-Bäume (MAST). Taproot bindet mehrere Ausgabebedingungen in einen Hash-Baum ein. Der Ausgebende legt nur den Zweig offen, den er tatsächlich nutzt, und hält ungenutzte Bedingungen privat. Komplexe Verträge mit mehreren Pfaden verraten fast nichts über die Pfade, die niemand genommen hat.

Vaults mit verzögerter Wiederherstellung. Eine Konstruktion aus zwei Transaktionen. Die erste Transaktion startet einen Entsperrvorgang. Eine zweite Transaktion schliesst ihn nach einer Verzögerung ab. War die erste Transaktion nicht autorisiert, kann ein Wiederherstellungsschlüssel während der Verzögerung eingreifen. Das Ergebnis verhält sich wie ein Tresor mit Zeitschloss.

Diese Konstruktionen laufen heute im Netzwerk. Sie sind keine Theorie auf dem Whiteboard. Sie sind aber auch viel einfacher als das, was Ethereums vollständige Smart-Contract-Umgebung ausdrücken kann.

Was ist der Mempool?

Der Mempool (Memory Pool) hält gültige, unbestätigte Transaktionen, die auf die Aufnahme in einen Block warten.

Eine Bitcoin-Transaktion, die du sendest, landet nicht direkt in einem Block. Sie verbreitet sich im Netzwerk, Node für Node. Jeder Node prüft die Signatur, die Inputs, das Format. Ist alles in Ordnung, nimmt der Node die Transaktion in seinen lokalen Mempool auf. Dort sitzt sie, sichtbar und unbestätigt, bis ein Miner sie aufgreift.

Miner wählen Transaktionen aus dem Mempool nach Gebührensatz aus (Satoshi pro virtuellem Byte). Höhere Gebührensätze überholen die Warteschlange. Ist der Mempool fast leer, werden selbst sehr günstige Transaktionen schnell bestätigt. Ist er voll, was bei Nachfragespitzen passiert, können Transaktionen mit niedriger Gebühr Stunden oder Tage warten.

Jeder Node begrenzt die Grösse seines Mempools. Der Standardwert von Bitcoin Core liegt bei 300 Megabyte. Füllt sich der Mempool, wirft der Node die Transaktionen mit den niedrigsten Gebühren hinaus, um Platz zu schaffen. Verworfene Transaktionen sind nicht für immer verloren. Du kannst sie erneut senden. Sie werden nur nicht bestätigt, bis die Gebühren sinken oder du deine erhöhst.

Replace-by-Fee (RBF). Bitcoin erlaubt, eine unbestätigte Transaktion durch eine neue Version zu ersetzen, die mehr Gebühr zahlt, was ihre Priorität erhöht. Moderne Wallets unterstützen das. Hängt deine Transaktion fest, ist RBF die Standardlösung.

Unbestätigte Transaktionen laufen ab. Bitcoin-Core-Nodes werfen unbestätigte Transaktionen nach rund 14 Tagen aus ihrem Mempool. Die Coins sind nicht verloren. Die Transaktion muss nur erneut gesendet werden.

Praktischer Rat. Prüfe Gebührenschätzungen, bevor du sendest. Werkzeuge wie mempool.space zeigen den aktuellen Zustand des Mempools und die geschätzten Bestätigungszeiten für jede Gebührenstufe. Für nicht dringende Transaktionen sind Wochenenden und die Nachtstunden in europäischen Zeitzonen tendenziell günstiger, weil das globale Transaktionsvolumen dann historisch nachlässt.

Wichtige Begriffe

UTXO. Unspent Transaction Output. Die einzelnen "Coins", aus denen ein Bitcoin-Guthaben besteht.

ScriptPubKey. Das sperrende Script an einem Output. Legt fest, wer ihn ausgeben darf und wie.

ScriptSig / Witness. Die entsperrenden Daten, die der Ausgebende liefert, um das sperrende Script zu erfüllen.

Timelock. Eine Script-Bedingung, die das Ausgeben bis zu einer bestimmten Zeit oder Blockhöhe blockiert.

PSBT. Partially Signed Bitcoin Transaction. Ein standardisiertes Format, um Transaktionen zu teilen und gemeinsam zu signieren, wenn mehrere Parteien beteiligt sind. Multisig-Setups und der Ordinals-Handel bauen darauf.

P2TR (Pay-to-Taproot). Das aktuell empfohlene Bitcoin-Adressformat. Es nutzt Schnorr-Signaturen und MAST für effiziente und private komplexe Ausgabebedingungen.

Mempool. Der Pool gültiger, aber unbestätigter Transaktionen, die auf Miner warten.

RBF (Replace-by-Fee). Ein Mechanismus, mit dem ein Sender die Gebühr einer unbestätigten Transaktion erhöhen kann, um die Bestätigung zu beschleunigen.

Risikohinweis

Bitcoin Script ist innerhalb seiner Grenzen mächtig und ausserhalb davon unerbittlich. Ein falsch geschriebenes Script kann Coins in einem Output einschliessen, den niemand je ausgeben kann. Multisig- und Timelock-Konstruktionen brauchen sorgfältige Planung und Tests, besonders bei Backup und Wiederherstellung. Mempool-Gebühren schwanken stark mit der Nachfrage. Transaktionen mit sehr niedriger Gebühr können lange unbestätigt bleiben, wenn das Netzwerk ausgelastet ist. Nutze für jede nicht standardmässige Script-Arbeit nur Software, die du verstehst und der du vertraust.

Das Wichtigste für dich

Bitcoin Script ist mit Absicht einfach und begrenzt. Genau das macht Bitcoin sicher, vorhersagbar und in grossem Massstab vertrauenswürdig. Der Preis ist, dass komplexe Anwendungen auf höheren Layern leben. Der Mempool ist der Wartebereich für jede Transaktion. Wer ihn lesen kann, setzt Gebühren klug. Taproot und Schnorr sind die aktuelle Grenze der Ausdruckskraft von Bitcoin und machen komplexe Verträge privater und günstiger.

Kapitelzusammenfassung

  • Bitcoin Script ist eine stackbasierte Sprache in jeder Transaktion. Sie legt fest, wer einen Output ausgeben darf und unter welchen Bedingungen.
  • OP-Codes sind die einzelnen Befehle. OP_CHECKSIG prüft Signaturen. OP_CHECKLOCKTIMEVERIFY erzwingt Timelocks. OP_IF ermöglicht bedingte Ausgabepfade.
  • Bitcoin Script ist bewusst nicht Turing-vollständig. Keine Schleifen, kein dauerhafter Zustand. Die Validierung bleibt schnell, vorhersagbar und sicher.
  • Bitcoin drückt echte Smart Contracts aus, die heute aktiv genutzt werden: Multisig, Timelocks, Lightning Payment Channels, HTLCs, Taproot-Script-Bäume.
  • Der Mempool hält unbestätigte Transaktionen. Miner priorisieren nach Gebührensatz. Mit RBF können Sender die Gebühr festhängender Transaktionen erhöhen. Mempool-Grösse und Gebührenlage bewegen sich mit der Nachfrage.

Quellen

  • Antonopoulos, A. Mastering Bitcoin. O'Reilly
  • Bitcoin.org Developer Guides, Script-Referenz
  • Bitcoin Optech Newsletter: Dokumentation zu Taproot, Schnorr, MAST
  • Mempool.space: Live-Gebührenschätzung und Mempool-Visualisierung
  • Chaincode Labs: Schulungsmaterial zu Bitcoin Script
  • Bitcoin-Core-Dokumentation: Mempool-Richtlinien und RBF

Dieser Inhalt dient der Bildung und stellt keine Finanzberatung dar.