Das UTXO-Modell
Bitcoin hat keine Konten. Kein Guthaben, das irgendwo als Zahl gespeichert ist. Stattdessen gibt es UTXOs — Unspent Transaction Outputs. Wer das UTXO-Modell versteht, versteht, warum Transaktionen so funktionieren, wie sie funktionieren, und warum Gebühren, Privatsphäre und Coin Management zusammenhängen.
Account-Modell vs. UTXO-Modell
Bei einer Bank (oder bei Ethereum) gibt es Konten mit Salden. Wenn Alice 100 € hat und 30 € an Bob sendet, wird ihr Kontostand auf 70 € reduziert und Bobs auf 30 € erhöht. Einfach, intuitiv — aber zentralisiert und zustandsabhängig.
Bitcoin wählt einen anderen Weg: das UTXO-Modell. Es gibt keine Kontostände. Es gibt nur Transaktions-Outputs, die noch nicht ausgegeben wurden.
| Account-Modell | UTXO-Modell | |
|---|---|---|
| Zustand | Globaler Kontostand | Menge unausgegebener Outputs |
| Transaktion | Saldo anpassen | Outputs konsumieren, neue erzeugen |
| Parallelisierung | Schwierig (Locks nötig) | Natürlich (unabhängige UTXOs) |
| Privatsphäre | Gering (ein Konto = eine Historie) | Besser (viele unverknüpfte Outputs) |
Was ist ein UTXO?
Ein UTXO ist ein unausgegebener Transaktions-Output. Er besteht aus genau zwei Dingen:
- Betrag — eine bestimmte Menge Satoshi
- Ausgabebedingung (Locking Script) — definiert, wer diesen Output ausgeben darf
Stell dir UTXOs wie Münzen und Scheine in einem Portemonnaie vor. Du hast nicht “0,8 BTC auf einem Konto”, sondern beispielsweise:
- 1 UTXO über 500.000 sat
- 1 UTXO über 200.000 sat
- 1 UTXO über 100.000 sat
Zusammen ergibt das 800.000 sat (0,008 BTC). Deine Wallet zeigt dir eine Summe — aber intern sind es drei separate “Münzen”.
Bitcoin hat keine Konten — nur Münzen. Dein “Guthaben” ist die Summe aller UTXOs, die du mit deinem privaten Schlüssel ausgeben kannst. Jeder UTXO wird immer komplett konsumiert — genau wie ein Geldschein, von dem du kein Stück abreißen kannst.
Wie das Ausgeben funktioniert
Wenn du Bitcoin sendest, passiert Folgendes:
- Deine Wallet wählt einen oder mehrere UTXOs als Inputs
- Sie erstellt neue Outputs — mindestens einen für den Empfänger
- Die alten UTXOs werden vollständig konsumiert — es gibt kein “teilweises Ausgeben”
- Falls die Inputs mehr wert sind als die Zahlung, entsteht ein Change Output (Wechselgeld) an eine Adresse in deiner Wallet
graph LR
I1["UTXO #1\n0.5 BTC"]:::input --> TX{"Transaktion"}:::tx
I2["UTXO #2\n0.3 BTC"]:::input --> TX
TX --> O1["Empfänger\n0.7 BTC"]:::output
TX --> O2["Wechselgeld\n0.0999 BTC"]:::output
TX -.-> FEE["Gebühr\n0.0001 BTC"]:::fee
classDef input stroke:#d79921,stroke-width:2px,color:#d79921
classDef tx stroke:#fe8019,stroke-width:3px,color:#fe8019
classDef output stroke:#98971a,stroke-width:2px,color:#98971a
classDef fee stroke:#cc241d,stroke-width:1px,color:#fb4934,stroke-dasharray: 5 5
Ein konkretes Beispiel
Du willst 300.000 sat an einen Freund senden. Deine Wallet hat:
- UTXO A: 500.000 sat
- UTXO B: 200.000 sat
Möglichkeit 1: Die Wallet nimmt UTXO A (500.000 sat) als Input:
- Output 1: 300.000 sat → Freund
- Output 2: 199.500 sat → deine Wechselgeld-Adresse
- Differenz: 500 sat → Mining-Gebühr
Möglichkeit 2: Die Wallet nimmt UTXO B (200.000 sat) + UTXO A (500.000 sat):
- Output 1: 300.000 sat → Freund
- Output 2: 399.200 sat → deine Wechselgeld-Adresse
- Differenz: 800 sat → Mining-Gebühr (teurer, weil zwei Inputs)
Die Gebühr steht nirgendwo explizit in der Transaktion. Sie ist immer:
Gebühr = Summe aller Inputs − Summe aller Outputs
Was übrig bleibt, geht an den Miner. Vergisst du das Wechselgeld, verschenkst du den Rest als Gebühr.
Implikationen des UTXO-Modells
Kein teilweises Ausgeben
Ein UTXO wird immer komplett konsumiert. Wenn du einen 1-BTC-UTXO hast und 0,01 BTC senden willst, musst du den gesamten UTXO als Input verwenden und dir 0,99 BTC minus Gebühr als Wechselgeld zurückschicken. Das erzeugt eine zusätzliche Output-Zeile in der Transaktion.
Change Outputs und Privatsphäre
Wechselgeld-Outputs sind ein Privatsphäre-Risiko. Blockchain-Analysten versuchen zu erraten, welcher Output die Zahlung und welcher das Wechselgeld ist. Hinweise:
- Runde Beträge — 0,1 BTC ist wahrscheinlich die Zahlung, 0,0437 BTC das Wechselgeld
- Adresstyp — unterschiedliche Formate bei Zahlung und Change fallen auf
- Erstverwendung — eine frische Adresse ist wahrscheinlich der Change
Dust: Wenn UTXOs wertlos werden
Ein UTXO, dessen Wert geringer ist als die Gebühr, die nötig wäre, um ihn auszugeben, heißt Dust (Staub). Bei hohen Gebühren können selbst UTXOs mit einigen Tausend Satoshi unwirtschaftlich werden.
Dust-Grenze (Richtwert bei 20 sat/vByte):
- Legacy (P2PKH): ca. 5.460 sat
- Native SegWit (P2WPKH): ca. 2.940 sat
- Taproot (P2TR): ca. 2.460 sat
Gebührenberechnung: Was eine Transaktion kostet
Die Mining-Gebühr hängt nicht vom gesendeten Betrag ab, sondern von der Größe der Transaktion in virtuellen Bytes (vByte). Diese Größe wird bestimmt durch:
- Anzahl der Inputs — jeder Input kostet Bytes (Signatur, Public Key, Referenz)
- Anzahl der Outputs — jeder Output kostet Bytes (Betrag, Locking Script)
- Adresstyp — Legacy-Inputs sind größer als SegWit, SegWit größer als Taproot
| Komponente | Legacy (P2PKH) | SegWit (P2WPKH) | Taproot (P2TR) |
|---|---|---|---|
| Input | ~148 vByte | ~68 vByte | ~57,5 vByte |
| Output | ~34 vByte | ~31 vByte | ~43 vByte |
Deshalb kostet eine Transaktion mit 5 Inputs deutlich mehr als eine mit 1 Input — unabhängig vom Betrag. Und deshalb lohnt es sich, UTXOs bei niedrigen Gebühren zu konsolidieren.
Rechne selbst nach
// Analyse — Standard-Zahlung (1 In, 2 Out)
Transaktionsgröße: — vB
Miner Fee: — sat
— BTC
Gebührenanteil: —
// Upgrade-Kosten-Check
UTXO auf effizienteren Adresstyp transferieren:
// Hinweise zur Kalkulation
- Overhead: Version, Locktime, VarInt-Zähler ≈ 10 vB + SegWit-Marker (0,5 vB)
- Outputs (Hauptsimulation): 2 × P2WPKH à 31 vB
- Outputs (Upgrade): 1 × Ziel-Adresstyp
- Engine: Rust → WebAssembly (44 KB), Quellcode
Alle Schätzungen basieren auf Standardimplementierungen. Don't trust, verify.
Vergleiche die Gebühren für denselben Betrag: Erstelle eine Transaktion mit 1 Legacy-Input (P2PKH) und dann eine mit 1 Taproot-Input (P2TR). Bei gleicher Gebührenrate (z.B. 20 sat/vByte) — wie viel sparst du mit Taproot? Der Unterschied wird bei mehreren Inputs noch größer.
UTXO-Management: Strategien für die Praxis
Gutes UTXO-Management spart Gebühren und schützt die Privatsphäre:
1. Konsolidierung bei niedrigen Gebühren — Wenn die Gebührenrate unter 5 sat/vByte fällt, ist der ideale Zeitpunkt, viele kleine UTXOs zu einem großen zusammenzuführen. Das reduziert künftige Transaktionskosten.
2. Coin Control nutzen — Wähle bewusst, welche UTXOs du für eine Transaktion verwendest. Mische keine UTXOs aus verschiedenen Kontexten (z.B. KYC und Non-KYC). Wallets wie Sparrow, Electrum und Bitcoin Core bieten Coin Control.
3. Labels pflegen — Beschrifte jeden UTXO mit Herkunft und Kontext. Ohne Labels verlierst du den Überblick und riskierst Privatsphäre-Fehler.
4. Taproot nutzen — bc1p-Adressen haben die kleinsten Input-Größen. Wer auf Taproot empfängt, spart bei jeder zukünftigen Ausgabe.
5. Runde Beträge vermeiden — Beim Empfangen lieber krumme Beträge akzeptieren. Beim Senden den gesamten UTXO verbrauchen, wenn möglich — das erzeugt kein Wechselgeld und verrät weniger.
Weiterführend
- Transaktionen Byte für Byte — Inputs, Outputs, Witness im Detail
- Chain-Analyse verstehen — warum UTXOs für Privatsphäre entscheidend sind
- Coin Control und Labels — UTXOs bewusst verwalten
- Wallets erklärt — wie Wallets UTXOs verwalten
Zurück zur Übersicht: Technik
Diskussion via Nostr
Kommentare werden über das dezentrale Nostr-Netzwerk geladen. Du brauchst eine Nostr-Identität und eine Browser-Extension wie nos2x oder Alby.