Info

Das Wichtigste in Kürze:

  • Ein UTXO ist ein Output einer vergangenen Transaktion, der bisher noch nicht ausgegeben wurde.
  • Das Transaktionsmodell von Bitcoin ähnelt in vielen Punkten, anders als man erwarten würde, unserem klassischen Bargeld.
  • Wie Geldscheine und Münzen können UTXO nur vollständig ausgegeben und nicht aufgeteilt werden.
  • Mit manuellem Verwalten der eigenen UTXO ist es sowohl möglich Gebühren zu sparen, als auch die eigene Privatsphäre zu optimieren.

Woher kommt mein Kontostand?

Öffnet man seine Bitcoin Wallet bekommt man meistens einen klassischen Kontostand angezeigt, also eine Summe aller Bitcoin, die von der Wallet kontrolliert werden. Man könnte daher annehmen, dass in der Bitcoin Blockchain irgendwo dieser Kontostand vermerkt ist und laufend bei neuen Transaktionen aktualisiert wird.

Tatsächlich sieht die technische Realität im Bitcoin Netzwerk völlig anders aus als man intuitiv erwarten würde. Es gibt keine Kontostände wie bei einem Bankkonto und auch keine „Bitcoins“, die tatsächlich an andere Nutzer verschickt werden. Um zu verstehen, was es damit auf sich hat, schauen wir uns zunächst genauer an, wie Bitcoin Transaktionen überhaupt aufgebaut sind.

 

Inputs und Outputs

Jede Bitcoin Transaktion besteht aus sogenannten Inputs und Outputs. Oft ordnet man diese Begriffe dem Sender und Empfänger einer Zahlung zu, was zwar meistens korrekt, aber für dieses Thema etwas zu pauschal ausgedrückt ist.

Da es viele Parallelen zwischen Bitcoin Transaktionen und unserem klassischen Bargeld gibt, schauen wir uns direkt ein Beispiel aus dem Alltag an, um die eigentliche Bedeutung von In- und Outputs besser zu verstehen.

Stellen wir uns einen Geldbeutel mit insgesamt 185 € vor. Dieser „Kontostand“ unseres Geldbeutels steht zwar nirgendwo, rechnet sich aber leicht aus den Geldscheinen und Münzen, die sich darin befinden zusammen, in diesem Beispiel also jeweils einem 5, 10, 20, 50 und 100 € Schein.

Möchten wir jetzt etwas für 25 € bezahlen, dann wählen wir Geldscheine aus, um den Betrag (möglichst passend) zu begleichen, z.B. einen 5 € und einen 20 € Schein, das sind unsere Inputs. Der Empfänger der Zahlung erhält dann 25 €, ein neuer Output. Die Geldscheine, die sich in unserem Geldbeutel befinden, sind eigentlich nichts anderes als Outputs aus vergangenen Transaktionen, die noch nicht ausgegeben wurden, abgekürzt UTXO (Unspent Transaction Output).

Info

Merke:

Ein UTXO ist also ein Output einer vergangenen (und bestätigten) Bitcoin Transaktion, der bisher noch nicht ausgegeben wurde, also noch ausgegeben werden kann.

Zu sehr darf man sich nicht auf die Bargeld-Analogie stützen, denn ein UTXO befindet sich natürlich nicht „in einer Bitcoin Wallet“. Eine Wallet verwaltet im Hintergrund nur die Schlüssel des Nutzers, während Transaktionen alleine im Bitcoin Netzwerk bzw. „auf der Blockchain“ stattfinden. Mit der Information welche Schlüssel bzw. welche Adressen dem Nutzer gehören, kann die Wallet dann aber im Bitcoin Netzwerk überprüfen, ob es einen UTXO gibt, der von der Wallet ausgegeben werden kann. Die Wallet durchsucht also die Bitcoin Blockchain nach unseren UTXO, um uns deren Summe als anschaulichen Kontostand darzustellen, genau wie wir das manuell mit einem Geldbeutel auch machen würden.

Außerdem sind Geldscheine auf bestimmte Beträge festgelegt, während Bitcoin Outputs natürlich beliebige Beträge annehmen können.

Wechselgeld

Wie bei einer Bargeldzahlung kann man einen gewünschten Zielbetrag aber nicht immer passend bezahlen. Wollen wir mit unseren Geldscheinen von oben eine Rechnung von 21 € bezahlen, müssen wir mit unseren Inputs zunächst mehr ausgeben als eigentlich notwendig, z.B. 20 € + 5 €. Wir erwarten dann ein Wechselgeld von 4 €, also ein zusätzlicher Output, der an uns zurückgeht.

Sowohl Geldscheine als auch Bitcoin Outputs können nur in ihrer Gesamtheit verbraucht werden. Man kann einen 20 € Schein nicht in der Mitte durchschneiden, wenn man jemandem 10 € bezahlen möchte.

Auch bei Bitcoin Transaktionen kommt es dementsprechend häufig zu Wechselgeld bzw. zu sogenannten Change Outputs, da wir einen UTXO eben nicht aufteilen, sondern nur komplett ausgeben können. Haben wir keinen perfekt passenden UTXO, um einen gewünschten Betrag zu bezahlen, müssen wir, wie mit Bargeld, überbezahlen. Die überschüssige Differenz, also das Wechselgeld, senden wir mit einem weiteren neuen Output an eine eigene Adresse zurück. Wir bezahlen uns also das Wechselgeld selbst mit einer „Transaktion an uns selbst“ zurück.

Von außen sieht es dann auf den ersten Blick so aus, als hätten wir Bitcoin an zwei andere Empfänger geschickt, da es eben zwei gewöhnliche Outputs sind. Tatsächlich ist einer der beiden Empfänger aber der Sender der Transaktion selbst, was man oftmals auch an der Aufteilung der Beträge erkennen kann, wie hier im Beispiel:

Wo steht die Transaktionsgebühr?

Auf diese berechtigte Frage gibt es eine einfache Antwort: nirgendwo. Diesen zusätzlichen Platz in der Transaktion kann man sich nämlich sparen und stattdessen die gewünschte Transaktionsgebühr nur indirekt andeuten.

Bezahlt man im Restaurant eine 21 € Rechnung mit 25 € und nickt der Bedienung freundlich mit „Stimmt so“ zu, dann hat man indirekt angegeben, dass man 4 € Trinkgeld bezahlen möchte. Im Bitcoin Netzwerk ist das genau gleich: Die Differenz aller Inputs und Outputs, also der Betrag, der nicht explizit ausgegeben wurde, gibt die Transaktionsgebühr an und kann von Minern beansprucht werden.

Coin Selection

Aus dem Alltag wissen wir, dass es oftmals verschiedene Möglichkeiten gibt einen Betrag zu bezahlen, z.B. mit großen Scheinen, vielen kleinen Münzen oder doch einer Mischung aus beidem. Genau diese Aufgabe der Auswahl der UTXO (Coin Selection) übernimmt unsere Wallet im Hintergrund für uns. Als einfacher Nutzer bekommt man davon also relativ wenig mit und das ist meistens auch gut so.

Auch das Verwalten von Wechselgeld geschieht vollständig im Hintergrund über extra dafür vorgesehene Wechselgeld-Adressen. Daher wird dem Nutzer in seiner Transaktionsübersicht auch kein Wechselgeld angezeigt, um eventuelle Verwirrungen zu vermeiden.

Eine optimale UTXO Auswahl zu treffen, ist allerdings keinesfalls ein triviales Problem, da es erstens häufig verschiedene Kombinationen gibt, um den gewünschten Betrag zu erfüllen und zweitens dabei unterschiedliche Ziele verfolgt werden können. Wie die Coin Selection also konkret umgesetzt ist, kann sich von Wallet zu Wallet unterscheiden.

Doch nicht immer möchte man das Verwalten seiner UTXO komplett automatisiert der Wallet überlassen. Die zwei großen Themenblöcke, die beachtet werden sollten, schauen wir uns in den nächsten Abschnitten genauer an.

Gebühren sparen

Transaktionsgebühren werden in aller Regel als Gebührenrate in sat/vB, also Satoshis, die kleinste Einheit von Bitcoin, pro Speichereinheit, angegeben. Wir bezahlen also für eine Transaktion, die viel Speicher bzw. Platz verbraucht, auch entsprechend mehr Gebühren.

Es gibt daher einen Anreiz, die Größe einer Transaktion möglichst gering zu halten. Da wir jetzt verstanden haben, wie das UTXO Modell von Bitcoin funktioniert, können wir uns konkret zwei Ansätze anschauen, wie man sowohl heute als auch zukünftig Transaktionsgebühren sparen kann.

Payment Batching

Beim sogenannten Batching geht es darum, mehrere Zahlungen in einer einzigen Transaktion zu tätigen. Dafür werden einfach mehrere Outputs an die gewünschten Empfänger erstellt. Die Transaktion wird dadurch natürlich trotzdem größer, man spart aber dennoch Speicherplatz, da man im Idealfall nur einen bzw. wenige Inputs benötigt.

Vor allem für Exchanges und Broker, die sehr häufig große Mengen an Bitcoin für ihre Kunden auszahlen, ist dies eine gängige Vorgehensweise.

Konsolidierungen

Mit der Zeit können sich kleinere und damit eventuell unpraktische UTXO in der eigenen Wallet ansammeln, ähnlich wie mit kleinen Münzen im Geldbeutel. Welche UTXO Größen „unpraktisch“ sind und welche nicht, hängt allerdings komplett von der individuellen Nutzung ab, also ob man z.B. viele kleinere Transaktionen tätigt oder nicht.

Je mehr UTXO man für eine Transaktion ausgeben muss, d.h. je mehr Inputs eine Transaktion hat, desto größer und damit teurer ist die Transaktion. Um diese Tatsache kommt man erstmal nicht herum, man kann sich aber entsprechend daran anpassen und vorsorgen. Bei geringer Nachfrage nach Transaktionen und damit verhältnismäßig niedrigen Gebühren kann es sich lohnen, vorausschauend seine UTXO zu einem oder wenigen neuen UTXO zusammenzufassen. Eine solche Transaktion nennt man häufig auch Konsolidierung und ist nichts anderes als eine Transaktion an eine eigene Adresse.

Sind dann die Gebühren in Zukunft höher, spart man somit Transaktionsgebühren, da man die Kosten für das Zusammenfassen des „Kleingelds“ bereits zu einem wortwörtlich günstigeren Zeitpunkt vorwegnehmen konnte.

Gerade für Nutzer eines Bitcoin Sparplans, die regelmäßig Auszahlungen auf ihre Wallet tätigen und damit viele UTXO ansammeln, kann eine Konsolidierung hin und wieder sinnvoll sein. Dies hängt aber wie bereits erwähnt stark vom eigenen Nutzerverhalten ab.

Eine Konsolidierung kann man selbst ganz einfach durchführen, indem man alle seine Bitcoin an eine neue, eigene, Adresse schickt. Das ist in den meisten Fällen aber nicht ideal, da vor allem die Privatsphäre darunter leiden würde. Im nächsten Abschnitt sollte klarer werden, was damit gemeint ist.

Info

Merke:

Was Transaktionsgebühren angeht, gibt es also einen klaren Anreiz, möglichst wenige und entsprechend große UTXO zu verwalten und mehrere Zahlungen, soweit möglich und sinnvoll, in einer Transaktion zu bündeln.

Spare ich Gebühren durch das Wiederverwenden von Adressen?

Privatsphäre

Alle Bitcoin Transaktionen sind öffentlich nachvollziehbar. Geben wir Bob eine Adresse, um uns Bitcoin zu schicken, kann er alle Aktivitäten, die bisher stattgefunden haben und in Zukunft stattfinden werden, einsehen.

Diese Eigenschaft von Bitcoin dürfte den allermeisten bereits bekannt sein. Viele achten deshalb darauf, für jede Transaktion unbenutzte Adressen zu verwenden, um anderen Teilnehmern im Netzwerk möglichst wenig Informationen zu liefern. Dieses Verhalten wird ohnehin durch moderne Wallets begünstigt, die ganz automatisch neue Adressen zum Empfangen vorschlagen. Häufig wird dabei allerdings vernachlässigt, wie das UTXO Modell einem einen Strich durch die Rechnung machen kann.

Nehmen wir an, Bob schickt uns 0.1 BTC auf eine unbenutzte Adresse. Neben diesem neuen UTXO von Bob haben wir natürlich noch weitere UTXO, die wir mit unserer Wallet kontrollieren, allerdings auf anderen Adressen. Geben wir jetzt z.B. 0.2 BTC aus und wählen dafür unter anderem den UTXO von Bob, kann dieser in der ausgehenden Transaktion natürlich auch alle anderen Inputs sehen und entsprechend deren Historie.

Konkret sollte man folgende Eigenschaften, auch in Kombination, beachten:

  • Nutzt man mehrere UTXO für eine Transaktion, verknüpft man damit auch deren Historie und legt diese sowohl dem Empfänger als auch bisherigen bzw. zukünftigen Teilnehmern offen.
  • Wechselgeld bzw. Change Outputs sind meistens klar als solche erkennbar. Der Empfänger einer Transaktion kann also zukünftige Aktivitäten des Change UTXO nachvollziehen.
  • Konsolidierungen sind ebenfalls häufig als solche zu erkennen. Man veröffentlicht also, welche UTXO inklusive deren Historie zur eigenen Identität gehören und legt durch den neuen konsolidierten UTXO auch zukünftige Aktivitäten offen.
  • Zahlt man einen kleinen Betrag mit einem relativ großen UTXO, legt man dem Empfänger den großen Betrag offen. Vergleichbar ist dies als würde man eine Packung Kaugummis mit einem 500 € Schein bezahlen.

Info

Merke:

Was Privatsphäre angeht, gibt es also einen Anreiz möglichst wenige UTXO miteinander in Verbindung zu bringen und möglichst passend zu bezahlen.

Coin Control

Ob einem die eigene Privatsphäre, möglichst günstige Gebühren oder eine Mischung aus beidem wichtig ist, muss jeder individuell selbst entscheiden. Es gibt keine „richtige“ oder eindeutige Antwort auf die Frage, wie und ob man seine UTXO am besten verwalten sollte.

Die Möglichkeit diese Verwaltung selbst in die Hand zu nehmen, wird allerdings mit einer relativ verbreiteten Funktion namens Coin Control geboten, die einem erlaubt gezielt auszuwählen, welche UTXO man für eine Transaktion ausgeben möchte. So kann man individuelle Konsolidierungen durchführen und/oder bei Transaktionen mehr auf die eigene Privatsphäre achten.

Viele der gängigen Soft- und Hardware Wallets unterstützen Coin Control, darunter auch die BitBoxApp der von Blocktrainer.de empfohlenen BitBox02. Hierfür muss lediglich die Funktion in den Erweiterten Einstellungen der BitBoxApp aktiviert werden, um anschließend manuell UTXO für eine Transaktion auswählen zu können.

Eine hervorragende Übersicht über die eigenen UTXO und die Inputs bzw. Outputs von Transaktionen erhält man mit der Sparrow Wallet, die einem neben zusätzliche Funktionen wie das „einfrieren“ von bestimmten UTXO auch einen alternativen Algorithmus für die automatische UTXO-Auswahl anbietet, der auf Privatsphäre statt geringe Gebühren optimiert ist. Neben einfachen Hot-Wallets kann man die Sparrow Wallet auch in Verbindung mit den allermeisten Hardware-Wallets nutzen, was sie zur idealen Software für den fortgeschrittenen Bitcoiner macht.