← Lernpfad Kapitel 6 von 7

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-ModellUTXO-Modell
ZustandGlobaler KontostandMenge unausgegebener Outputs
TransaktionSaldo anpassenOutputs konsumieren, neue erzeugen
ParallelisierungSchwierig (Locks nötig)Natürlich (unabhängige UTXOs)
PrivatsphäreGering (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:

  1. Betrag — eine bestimmte Menge Satoshi
  2. 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:

Zusammen ergibt das 800.000 sat (0,008 BTC). Deine Wallet zeigt dir eine Summe — aber intern sind es drei separate “Münzen”.

Merke

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:

  1. Deine Wallet wählt einen oder mehrere UTXOs als Inputs
  2. Sie erstellt neue Outputs — mindestens einen für den Empfänger
  3. Die alten UTXOs werden vollständig konsumiert — es gibt kein “teilweises Ausgeben”
  4. 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
Inputs werden konsumiert, neue Outputs entstehen

Ein konkretes Beispiel

Du willst 300.000 sat an einen Freund senden. Deine Wallet hat:

Möglichkeit 1: Die Wallet nimmt UTXO A (500.000 sat) als Input:

Möglichkeit 2: Die Wallet nimmt UTXO B (200.000 sat) + UTXO A (500.000 sat):

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:

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):

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:

KomponenteLegacy (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

// Simulations-Parameter

// 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.

Aufgabe

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

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.