Ein Bitcoin-UTXO ist ein unverbrauchter Transaktionsoutput (Unspent Transaction Output): ein Bitcoin-Betrag, den eine frühere Transaktion erzeugt und noch keine spätere ausgegeben hat. Jede Transaktion verbraucht über ihre Inputs bestehende Outputs und erzeugt an ihrer Stelle neue.
Das Guthaben in deiner Wallet ist deshalb eine Summe und kein Konto, das das Protokoll für dich führt. Zeigt die Wallet 10.000 Satoshis an, können die in einem einzigen Output liegen oder auf mehrere verteilt sein (Bitcoin Developer Guide: Transactions).
Was ist ein Bitcoin-UTXO?
Jeder Output besteht aus zwei Teilen: einem Betrag und Bedingungen. Der Betrag ist in Satoshis gespeichert, der kleinsten Einheit, die das Protokoll kennt; ein BTC sind 100 Millionen Satoshis. Die Bedingungen stehen im sogenannten Pubkey Script. Wer den Output später ausgeben will, muss sie erfüllen. Im bekanntesten Fall heißt das: nachweisen, dass man den privaten Schlüssel zu einer Adresse hat. Ein Script kann aber genauso gut mehrere Signaturen verlangen (Bitcoin Transaction Reference, Abschnitt TxOut).
Unverbraucht bleibt ein Output, bis ein Input ihn beansprucht. Sobald eine gültige Transaktion ihn ausgibt und in der Blockchain steht, ist er endgültig verbraucht.
Outputs statt Kontostand
Ein Bankkonto ist eine Zahl, die steigt und fällt. Bitcoin funktioniert eher wie ein Portemonnaie voller Scheine mit krummen Werten. Bekommst du drei Zahlungen, hast du in der Regel drei getrennte Outputs und nicht einen größeren Kontostand. Jeder behält seinen Betrag und seine Bedingungen, bis er ausgegeben wird.
Ein Output ist allerdings keine Person, eine Adresse auch nicht. Eine Wallet kann Tausende Outputs auf vielen Adressen kontrollieren, und ein Dienst, der Coins für Kunden verwahrt, bündelt womöglich das Geld vieler Menschen hinter wenigen Adressen. Das UTXO-Modell beschreibt Wertstücke und die Regeln, nach denen sie ausgegeben werden. Wem sie gehören, sagt es nicht.
Wie verbrauchen Transaktions-Inputs UTXOs?
Ein Input enthält selbst keine Bitcoin. Er ist ein Verweis auf einen schon existierenden Output, plus die Daten, mit denen sich dieser Output freischalten lässt.
Transaktions-ID und Output-Index
Damit der Verweis eindeutig ist, nennt ein Input zwei Angaben: die Transaktions-ID (txid) der Transaktion, die den Output erzeugt hat, und die Position des Outputs in dieser Transaktion. Diese Position heißt Output-Index, meist vout genannt. Gezählt wird ab 0, der zweite Output einer Transaktion hat also den Index 1. Häufig siehst du beides zusammen als txid:vout geschrieben (Bitcoin Transaction Reference, Abschnitte TxIn und Outpoint).
Neben dem Verweis liefert der Input die Daten, die die Bedingungen des referenzierten Outputs erfüllen. Beim klassischen Ein-Schlüssel-Output, den der Developer Guide durchspielt, sind das eine Signatur und der passende öffentliche Schlüssel. Andere Output-Typen, auch neuere Formate, können andere Daten verlangen. Jeder Node prüft das selbst. Passt es nicht, ist die ganze Transaktion ungültig (Bitcoin Developer Guide: Transactions).
Was passiert mit einem ausgegebenen Output?
Er ist weg, und zwar vollständig und ein für alle Mal. Verweist eine spätere Transaktion noch einmal auf denselben Output, wäre das ein Double Spend, und die Nodes lehnen sie ab (Bitcoin Developer Guide: Block Chain). Am alten Output wird nichts geändert oder abgezogen. Soll nur ein Teil seines Werts bewegt werden, verbraucht die Transaktion ihn komplett und verteilt den Betrag auf neue Outputs.
Eine Sorte Transaktion fällt aus dem Muster: die Coinbase-Transaktion. Miner erzeugen sie in jedem Block, sie hat keinen vorherigen Output, den sie ausgeben könnte, und ihre Outputs zahlen die Blocksubvention plus die Gebühren der übrigen Transaktionen im Block aus (Bitcoin Transaction Reference, Abschnitt TxOut). Alles Folgende betrifft gewöhnliche Nicht-Coinbase-Transaktionen.
Eine hypothetische Transaktion mit zwei Inputs
Die Zahlen sind ausgedacht, damit die Rechnung übersichtlich bleibt. Sie sind kein Gebührenvorschlag und sagen nichts über die aktuelle Lage im Netz.
Deine Wallet hält zwei UTXOs, einen über 0,7 BTC und einen über 0,3 BTC. Du willst jemandem 0,25 BTC zahlen, und die Coin Selection der Wallet nimmt beide Outputs. Der 0,3-BTC-Output allein hätte gereicht; Wallets wählen nach eigenen Regeln aus, und mit zwei Inputs zeigt das Beispiel einfach mehr.
Den Beträgen folgen
Die Transaktion hat zwei Inputs, je einen pro Output, es gehen also 1,0 BTC hinein. Heraus kommen zwei neue Outputs: 0,25 BTC, gebunden an die Adresse des Empfängers, und 0,7499 BTC, gebunden an eine Adresse, die deine Wallet kontrolliert. Der zweite ist das Wechselgeld. Zusammen enthalten die Outputs 0,9999 BTC.
| Posten | BTC | Satoshis |
|---|---|---|
| Input A (verbraucht den 0,7-BTC-Output) | 0,7 | 70.000.000 |
| Input B (verbraucht den 0,3-BTC-Output) | 0,3 | 30.000.000 |
| Summe Inputs | 1,0 | 100.000.000 |
| Zahlungs-Output | 0,25 | 25.000.000 |
| Wechselgeld-Output | 0,7499 | 74.990.000 |
| Summe Outputs | 0,9999 | 99.990.000 |
| Gebühr: Inputs minus Outputs | 0,0001 | 10.000 |
Ist die Transaktion bestätigt, sind deine beiden alten UTXOs verbraucht. An ihrer Stelle gibt es zwei neue Outputs, und solange niemand sie ausgibt, sind sie selbst UTXOs: Den über 0,25 BTC kann der Empfänger ausgeben, den über 0,7499 BTC deine Wallet.
Der Index eines Outputs ergibt sich allein aus seiner Position in der Transaktion (Bitcoin Developer Guide: Transactions). Wer die Transaktion baut, legt die Reihenfolge der Outputs fest. Die Zahlung kann auf Index 0 oder 1 liegen, das Wechselgeld ebenso. Eine Protokollregel „Empfänger zuerst“ gibt es nicht.
Warum gibt es einen Wechselgeld-Output?
Weil ein UTXO immer ganz ausgegeben werden muss. Der Developer Guide sagt es nüchtern: Kaum jemand hat UTXOs, die genau dem Betrag entsprechen, den er zahlen will, deshalb enthalten die meisten Transaktionen einen Wechselgeld-Output (Bitcoin Developer Guide: Transactions, Abschnitt Transaction Fees And Change). Ohne ihn würde der gesamte Überschuss zur Gebühr. Lässt du im Beispiel den Wechselgeld-Output weg, könnte der Miner 0,75 BTC einstreichen.
Wechselgeld ist ein normaler Output, keine Rückzahlung
Das Wort klingt nach Münzen, die dir an der Kasse zurückgegeben werden. Zurück kommt aber nichts. Der Wechselgeld-Output ist ein neuer Output derselben Transaktion, genauso aufgebaut wie der Zahlungs-Output, und das Protokoll hat kein Feld, das ihn als Wechselgeld markiert. Deine Wallet erkennt ihn, weil sie den Schlüssel hat. In der Blockchain steht kein solches Etikett.
Wechselgeld kann an die Adresse gehen, von der die ausgegebenen Coins kamen, technisch nötig ist das aber nicht. Der Developer Guide empfiehlt ausdrücklich eine neue Adresse, weil wiederverwendete Adressen es anderen leichter machen, deine Zahlungen miteinander zu verknüpfen (Bitcoin Developer Guide: Transactions, Abschnitt Avoiding Key Reuse). Egal wohin: Wechselgeld lässt sich später wie jeder andere UTXO ausgeben.
Wo steckt die Transaktionsgebühr?
In keinem Output. Bei einer gewöhnlichen Transaktion ist die Gebühr der Wert, den die Inputs mitbringen und die Outputs nicht auszahlen. Eine Nicht-Coinbase-Transaktion, deren Outputs zusammen mehr enthalten als ihre Inputs, wird abgelehnt. Sind die Inputs größer, darf der Miner, dessen Block die Transaktion aufnimmt, die Differenz als Gebühr beanspruchen (Bitcoin Developer Guide: Block Chain). Eine Zeile „Gebühr“ gibt es in der Transaktion nicht. Sie ergibt sich aus der Subtraktion.
Ein typischer Denkfehler: nur die Zahlung von den Inputs abziehen. Im Beispiel kämen dann 1,0 − 0,25 = 0,75 BTC heraus, und das liegt weit daneben. Auch der Wechselgeld-Output muss abgezogen werden: 1,0 − 0,25 − 0,7499 = 0,0001 BTC.
Wie hoch die Gebühr sein sollte, ist eine andere Frage. Gebühren richten sich nach der Größe der Transaktion, nicht nach dem überwiesenen Betrag (Bitcoin Developer Guide: Transactions). Seit dem SegWit-Upgrade wird diese Größe in virtuellen Bytes (vB) gemessen statt in rohen Bytes (BIP 141), und jeder zusätzliche Input oder Output macht die Transaktion größer. Gebührensätze und Bestätigungszeiten sind ein eigenes Thema.
Wie liest du Inputs und Outputs im Block-Explorer?
Ein Block-Explorer zeigt eine Transaktion ziemlich genau so, wie das Protokoll sie speichert. Die Darstellung variiert, meist findest du aber:
- die txid der Transaktion
- auf der Input-Seite die verbrauchten Outputs, jeweils mit
txid:vout-Verweis und Betrag - auf der Output-Seite jeden neuen Output mit Index, Betrag und der Adresse oder dem Script, an das er gebunden ist
- zu jedem neuen Output, ob er inzwischen ausgegeben wurde
Genauso wichtig ist, was dort nicht steht. Welcher Output Wechselgeld ist, verrät die Seite nicht. Beobachter raten oft, etwa anhand eines Outputs, der an eine Adresse aus den Inputs zurückgeht. Eine Wallet, die Wechselgeld an frische Adressen schickt, hebelt solche Vermutungen leicht aus. Wer die Adressen kontrolliert, steht dort auch nicht. Und ob etwas verkauft wurde, schon gar nicht: Schiebst du Coins zwischen zwei eigenen Wallets hin und her, sieht das strukturell aus wie eine Zahlung an einen Fremden.
On-Chain-Kennzahlen bauen genau auf diesen verbrauchten und unverbrauchten Outputs auf. Wie Analysten mit dem UTXO-Bestand insgesamt arbeiten, zeigen die Grundlagen der On-Chain-Analyse. Eine Kennzahl, die aus ausgegebenen Outputs berechnet wird, erklärt Bitcoin SOPR erklärt.
Was verrät das UTXO-Modell nicht?
Die Chain speichert Struktur: welche Outputs verbraucht und welche erzeugt wurden, mit welchen Beträgen und Bedingungen. Identität, Absicht und Preis stehen nicht darin. Eine On-Chain-Bewegung beweist keinen Eigentümerwechsel und enthält keinen Kaufpreis; jeder Dollarwert an einem Output stammt aus einer separaten Kurshistorie. Ob eine Transaktion steuerlich relevant ist, ist eine Rechtsfrage, die ein Transaktionsgraph nicht beantworten kann. Das klärt im Zweifel eine Steuerberatung.
Den Hintergrund zum Netzwerk selbst liefert Was ist Bitcoin?. Die Bitcoin-Seite auf CoinVett ordnet BTC in den Marktkontext ein; ein Transaktions-Explorer ist sie nicht.
Wenn du dir eine Transaktion ansiehst, halte die Posten sauber auseinander. Jeder Input legt einen früheren Output vollständig still, jeder Output ist ein neuer möglicher UTXO, und Wechselgeld ist schlicht einer davon. Die Gebühr ist das, was übrig bleibt, wenn du alle Outputs, Wechselgeld eingeschlossen, von den Inputs abziehst.
Hinweis: Die Beträge im Rechenbeispiel sind ausgedacht und keine Gebührenempfehlung; die Quellen sind im Text verlinkt. Nur zur Information, keine Anlageberatung.
Häufige Fragen
Kann man einen Bitcoin-UTXO teilweise ausgeben?
Nein. Ein Input verbraucht den Output, auf den er verweist, immer vollständig. Soll nur ein Teil des Betrags verschickt werden, erzeugt die Transaktion einen Zahlungs-Output und in der Regel einen neuen Wechselgeld-Output für den Rest, abzüglich der Gebühr.
Ist das Wechselgeld immer der zweite Output oder geht es an meine ursprüngliche Adresse?
Nein. Die Wallet, die die Transaktion baut, bestimmt die Reihenfolge der Outputs, Wechselgeld kann also auf jedem Index liegen. Es kann auch an eine neue Adresse gehen, was der Bitcoin Developer Guide empfiehlt. Allein aus der Transaktion kann ein Außenstehender nicht zuverlässig erkennen, welcher Output Wechselgeld ist.
Wo steckt die Gebühr in einer Bitcoin-Transaktion?
Bei gewöhnlichen Nicht-Coinbase-Transaktionen gibt es keinen Gebühren-Output. Die Gebühr ist die Summe der Inputs minus die Summe aller Outputs, Wechselgeld eingeschlossen, und der Miner des Blocks kann sie beanspruchen. Im hypothetischen Beispiel bleiben bei 1,0 BTC Inputs und 0,9999 BTC Outputs 0,0001 BTC Gebühr.