Bitcoin UTxO erklärt: Unspent Transaction Outputs

Alles, was du über das UTxO-Modell von Bitcoin wissen musst und was genau Unspent Transaction Outputs sind.
bitcoin header

Im traditionellen Finanzwesen nutzen Banken ein Konten-Modell, bei dem das Guthaben der Nutzer einfach erhöht wird, wenn sie eine Zahlung erhalten, und verringert wird, wenn sie eine Zahlung durchführen.

Viele Kryptowährungen wie Bitcoin verwenden zum Verfolgen und Abbilden von Nutzertransaktionen hingegen kein solches Konten-Modell, sondern ein so genanntes UTxO-Modell, was dem traditionellen Bargeld sehr ähnelt.

Was ist ein UTxO?

Der Begriff UTxO steht für Unspent Transaction Output, also ein noch nicht ausgegebenes Paket einer bestimmten Anzahl an Bitcoin, das mit einem einzelnen Geldschein verglichen werden kann.

Im Gegensatz zu traditinonellen Papierscheinen und Münzen können UTxOs bei Bitcoin jede beliebige Menge an Bitcoin enthalten, z.B. 0.0015 oder 210.21 BTC, und haben keine festgelegten Stückelungen.

Alle Bitcoin werden ausnahmslos in der Form von solchen UTxOs auf der Blockchain gespeichert und übertragen.

Das bedeutet, dass Bitcoin-Nutzer in Wirklichkeit viele verschiedene UTxOs besitzen, die zusammen ihr gesamtes Bitcoin-Vermögen ausmachen, ähnlich wie alle Papierscheine und Münzen zusammen den Geldbetrag ausmachen, den man im Portemmonaie hat.

Folglich gibt es im Bitcoin-Netzwerk keine Konten, in denen festgehalten wird, wie viele Bitcoin jeder einzelne Nutzer besitzt. Stattdessen wird das Bitcoin-Guthaben, das von deiner Krypto-Wallet angezeigt wird, durch die Summe all deiner individuellen UTxOs bestimmt, die irgendwo in der Bitcoin-Blockchain verstreut sind.

Wie entstehen UTxOs?

Wie der Name Unspent Transaction Outputs vermuten lässt, werden UTxOs als Output, also als ein Ergebnis, von Transaktionen auf einer Blockchain erstellt.

Wenn ein Nutzer dir Bitcoin schickt, gibt er einen oder mehrere seiner eigenen UTxOs aus, um einen oder mehrere neue UTxOs auf der Blockchain für dich als Ergebnis seiner Transaktion zu erstellen.

Der Absender kann dabei auch UTxOs für sich selbst erstellen, um z. B. den verbleibenden Bitcoin-Betrag zurückzubekommen, der in seiner Transaktion ungenutzt blieb.

Bitcoin UTxO in Transaktion
Bitcoin UTxO in Transaktion

Bitcoin UTxOs werden also niemals direkt übertragen sondern erst deaktiviert und dann neu erzeugt: Würdest du z. B. 10 mal all deine Bitcoin an dich selbst senden, würde sich ⸺ anders als beim Kontenmodell von Banken ⸺ dein Vermögen bei jedem mal in einem anderen Bitcoin UTxO befinden.

Nachdem UTxOs ausgegeben werden, da ihre Besitzer die Bitcoin verschickt haben werden sie einfach zu Spent Transaction Outputs (STxOs), also zu sozusagen leeren UTxOs ohne Bitcoin-Wert.

Ausgegebene UTxOs werden bei Bitcoin dennoch unter keinem Umstand gelöscht, damit auch alle Transaktionen wirklich in Stein gemeißelt und für immer nachvollziehbar bleiben.

Somit kann man die Bitcoin eines jeden UTxOs bis zu ihrem totalen Ursprung zurückverfolgen, wo sie ursprünglich an einen Bitcoin-Miner als Mining-Belohnung ausgezahlt wurden.

Zugriffs-Kontrolle

Um UTxOs ausgeben zu können, muss der Sender dem Blockchain-Netzwerk natürlich irgendwie beweisen, dass er auch wirklich der Besitzer dieser UTxOs ist. Anders als bei Banken kann man sich bei den pseodonymen Blockchains jedoch nicht auf seine echte Identität verlassen, denn deine Identität in einer Blockchain besteht lediglich aus Zahlen und Ziffern.

Stattdessen kommt bei Blockchains hier die asymmetrische Kryptographie bestehend aus privatem und öffentlichem Schlüssel ins Spiel.

Wenn du Bitcoin von jemandem erhältst, sperrt der Absender die UTxOs, die für dich erstellt wurden, kryptografisch mit deinem öffentlichen Bitcoin-Schlüssel, bzw. einer darus erstellen Empfangsadresse, sodass nur du mit deinem privaten Schlüssen diese UTxOs ausgeben darfst.

Sobald du deine UTxOs in Zukunft entsperren und ausgeben möchtest, musst du dem Bitcoin-Netzwerk eine digitale Signatur vorlegen, die deine Wallet automatisch mit deinem privaten Schlüssel erstellt und somit beweist, dass du der echte Besitzer dieser Bitcoin bist.

Bitcoin UTxOs: Praktische Beispiele

Der Besitz eines UTxO von 100 Bitcoin ist vergleichbar mit dem Besitz eines 100-Euro-Scheines: Wenn du etwas für 5 Euro kaufen willst, aber nur einen 100-Euro-Schein besitzt, zahlst du deinem Empfänger 100 Euro und erhältst 95 Euro als Wechselgeld.

Im Falle von Bitcoin, wenn du jemandem 5 Bitcoin zahlen möchtest, aber nur einen UTxO mit 100 Bitcoin besitzt, würdest du diesen UTxO mit 100 Bitcoin ausgeben, um einen neuen UTxO mit 5 Bitcoin für den Empfänger und einen neuen UTxO mit 95 Bitcoin für dich selbst zu erstellen.

Dieser Prozess des Ausgebens bestehender UTxOs zur Erstellung neuer UTxOs wird als Bitcoin-Transaktion bezeichnet.

💡

Man kann nicht einen Bruchteil eines UTxOs ausgeben, genauso wie man einen 10-Euro-Schein nicht in zwei Hälften reißen kann, um jemandem 5 Euro zu zahlen. Deshalb kann es sein, dass deine Bitcoin-Transaktionen auf einem Bitcoin-Explorer zwei Empfänger aufweisen, obwohl du die Bitcoin nur an eine Person sendest. In diesem Fall bist du selbst der zweite Empfänger eines von dir erstellten Bitcoin UTxOs, da du dir den übrig gebliebenen Bitcoin-Betrag quasi als Wechselgeld zurückzahlst.

Analog ist der Besitz eines UTxO mit 2 Bitcoin und eines UTxO mit 0.5 Bitcoin ist vergleichbar mit dem Besitz einer €2- und €0.5-Münze. Wenn du nun jemandem 2.5 Bitcoin schicken möchtest, würdest du einfach den UTxO von 2 Bitcoin sowie den UTxO von 0.5 Bitcoin zusammenlegen, um einen neuen UTxO von 2.5 Bitcoin für den Empfänger zu erstellen.

UTxOs sind also genau wie Papierscheine und Münzen in deinem realen Portemonnaie. Sie können unabhängig voneinander ausgegeben oder mit anderen UTxOs kombiniert werden, um beliebig hohe Beträge zu bezahlen.

Die Vorteile des UTxO Modells

Die drei größten Vorteile des UTxO-Modells sind eine leichtere Überprüfbarkeit, höhere Skalierbarkeit und Privatsphäre von Nutzer-Geldern auf einer öffentlichen Blockchain.

Schnelle Überprüfbarkeit

UTxOs schaffen eine transparente "Wertschöpfungskette", in der jedes neu geschaffene UTxO mit der Transaktion verknüpft ist, die es geschaffen hat.

Das UTxO-Modell macht es sehr einfach, die Bitcoins eines jeden Nutzers bis zum genauen Ursprung zurückzuverfolgen und zu überprüfen, ob die Gelder gültig sind und den Regeln des Bitcoin-Netzwerks entsprechen.

Dies ist ziemlich genau das Gegenteil eines Konten-Modells: Um die Gelder eines Nutzers auf Blockchains mit einem Konten-Modell wie Ethereum zu überprüfen, muss die gesamte Blockchain von Anfang bis Ende nach möglichen Transaktionen durchsucht werden, da es keine UTxOs gibt, die miteinander verbunden wären.

Aus Sicht der Informatik verkettet das UTxO-Modell also die Geldflüsse in Form einer verketteten Liste, die sich leicht durchlaufen lässt. Beim Konten-Modell hingegen sind Geldflüsse in Form von Transaktionen nur chronologisch geordnet in der Blockchain, ähnlich wie bei einem geordneten Feld.

Skalierbarkeit

Da UTxOs quasi eine unabhängige Wertschöpfungskette von einzelnen Geldmitteln bilden, sind Transaktionen auf UTxO-basierten Blockchains wie Bitcoin sehr abgekapselt, da sie niemals gesamte Konten oder globale Zustände der gesamten Blockchain verändern.

Dies macht das Senden und Empfangen von Bitcoin so einfach wie das Ausgeben eines UTxO und das Erstellen eines neuen. Die Validierung einer solchen Transaktion erfordert nur einige wenige, leicht durchzuführende kryptografische Überprüfungen der bereitgestellten digitalen Signaturen.

Transaktionen auf Account-basierten Blockchains wie Ethereum hingegen erfordern komplexe Überprüfungen und Aktualisierungen globaler Account-Zustände, mit potenziellen Konflikten zwischen verschiedenen Transaktionen und vielen zu bedenkenden Ausnahmefällen, die die Rechenleistung von Netzwerkteilnehmern stark erhöhen.

Theoretisch bedeutet das, dass UTxO-basierte Blockchains eine geringere Rechenlast für die Verarbeitung und Verifizierung von Geld-Transfers mit sich bringen, wodurch sie performanter sind und es für Benutzer einfacher ist, eine Full-Node zu betreiben.

Privatsphäre

Das UTxO-Modell von Blockchains wie Bitcoin erhöht zudem die Privatsphäre des gesamten Netzwerks.

Das liegt daran, dass ein UTxO nur mit einer Empfangsadresse verbunden ist und nicht mit einem ganzen Konto. Und weil Bitcoin-Nutzer so viele Empfängeradressen generieren können, wie sie möchten, können sie jeden einzelnen Bitcoin UTxO mit einer neu generierten Adressen empfangen.

Wenn du z. B. 100 Mal Bitcoin mit 100 verschiedenen Empfangsadressen empfängst, die von deiner Bitcoin-Wallet generiert wurden, wären alle deine 100 verschiedenen Bitcoin-UTxOs in keiner Weise öffentlich verknüpft. Niemand außer dir würde wissen, dass dein privater Schlüssel dir Zugang zu all diesen 100 individuellen Bitcoin UTxOs gibt.

Das würde die Illusion erwecken, dass die 100 Bitcoin UTxOs tatsächlich im Besitz von 100 Einzelpersonen sind, und dir erlauben, dein Vermögen vor dem Netzwerk zu verbergen, bis du diese UTxOs irgendwann mal zu größeren Beträgen kombinierst.

Erst wenn man mehrere seiner UTxOs in ein und derselben Transaktion verwendet, entlarvt man sich als Besitzer all dieser UTxOs. Aus diesem Grund lassen Befürworter von Privatsphäre oft kleine Bitcoin-UTxO-Beträge von wenigen Euros sogar für immer verfallen, um bloß nicht ihre Geldflüsse zu verknüpfen.

Wenn Bitcoin ein Account-Modell wie Banken oder die Kryptowährung Ethereum verwenden würde, wären all deine Bitcoin-Transaktionen mit einem einzigen, eindeutigen Konto verbunden, was es für jeden im Netzwerk extrem einfach machen würde, deine gesamte Transaktionshistorie und damit dein Gesamtguthaben einzusehen.

Welche Blockchains verwenden UTxOs?

Während Bitcoin die erste Kryptowährung war, die das UTxO-Modell einführte, haben viele andere Blockchains diesen Ansatz übernommen.

Einige bekannte Kryptowährungen, die das UTxO-Modell verwenden, sind Litecoin (LTC), Cardano (ADA), Dash (DASH), Tezos (XTZ) und ZCash (ZEC).

Um komplexere Transaktionen mit Smart Contracts zu ermöglichen, verwenden Kryptowährungen wie Cardano ein erweitertes UTxO-Modell - das eUTxO - das UTxOs programmierbar und flexibler macht.