MSTR Cat

Blockchain/Niveau II · Mechanik/2.2 Transaktionen/Lektion 4

Change-Outputs

Der Rest, der den Absender verrät, und die Algorithmen, die versuchen, ihn zu verbergen

MaterialienEin Block-Explorer (z. B. mempool.space oder blockchain.com)Eine Bitcoin-Wallet mit mindestens zwei UTXOsEine Tabelle zum Erfassen von Transaktions-IDs, Input-Werten und Output-Strukturen

Neugier

  1. Warum sieht eine Transaktion, bei der ein genauer Betrag gezahlt wird, oft anders aus als eine, bei der Wechselgeld benötigt wird?
  2. Wie kann ein Analyst feststellen, welcher Output die Zahlung und welcher das Wechselgeld ist, ohne den internen Zustand der Wallet zu sehen?
  3. Was bringt einen Coin-Selection-Algorithmus dazu, eine etwas höhere Gebühr einer niedrigeren vorzuziehen?

Erkunden

  1. Die Inputs einer Bitcoin-Transaktion funktionieren wie unteilbare physische Banknoten. Wenn Alice 5 BTC zahlen möchte, aber nur einen einzigen UTXO über 20 BTC besitzt, kann sie diesen Input nicht aufteilen. Sie muss die gesamten 20 BTC ausgeben und erhält nach Abzug der Gebühren 15 BTC als Wechselgeld zurück. Deshalb enthalten die meisten Transaktionen zwei Outputs: einen für den Empfänger und einen für das Wechselgeld.
  2. Auf Protokollebene gibt es keinen Unterschied zwischen einem „Zahlungs“-Output und einem „Change“-Output. Beide sind Standard-Locking-Skripte wie P2PKH oder P2WPKH, die auf ihre Ausgabebedingungen warten. Nur der Ersteller der Transaktion weiß, welcher Output welcher ist. Dieses Fehlen einer Unterscheidung ist ein zentraler Mechanismus für die Privatsphäre: Wenn Change-Adresse und Zahlungsadresse gleich aussehen, können externe Beobachter sie nicht zweifelsfrei auseinanderhalten.
  3. Wallets verwenden Coin-Selection-Algorithmen, um zu bestimmen, welche Inputs ausgegeben werden. Wenn Alice zwei UTXOs zu je 50.000 Satoshis besitzt und Bob 85.000 Satoshis zahlen möchte, gibt sie beide Inputs aus (100.000 Sats) und erzeugt zwei Outputs: einen für Bob (85.000 Sats) und einen für sich selbst (15.000 Sats abzüglich der Gebühr). Diese Form, ein oder mehrere Inputs und genau zwei Outputs, gehört zu den häufigsten auf der Chain.
  4. Aus Gründen der Privatsphäre ist es üblich, das Wechselgeld einer neuen, noch nie verwendeten Adresse aus dem Schlüsselpool der Wallet zuzuweisen. Wird eine alte Adresse für das Wechselgeld wiederverwendet, können Chain-Analysten frühere Transaktionsaktivitäten mit der neuen verknüpfen. Im Idealfall gehen sowohl der Zahlungs- als auch der Change-Output an neue Adressen, sodass sie für externe Beobachter identisch aussehen.
  5. Nicht jede Zahlung braucht Wechselgeld. Coin-Selection-Algorithmen wie Branch and Bound, 2016 von Mark Erhardt beschrieben und in Bitcoin Core eingesetzt, suchen nach einer Kombination von Inputs, deren Summe der Zahlung plus Gebühr so nahe kommt, dass der kleine Rest einfach der Gebühr zugeschlagen werden kann. Eine Transaktion ohne Wechselgeld ist günstiger, erzeugt keinen neuen kleinen Output und liefert Analysten einen Hinweis weniger.
  6. Sehr kleine Outputs schaffen ein eigenes Problem. Unterhalb der Dust-Schwelle (standardmäßig etwa 546 Satoshis für P2PKH-Outputs und 294 für P2WPKH) kostet das Ausgeben eines Outputs mehr, als er wert ist, und Nodes leiten keine Transaktionen weiter, die einen solchen Output erzeugen. Analysten achten zudem auf verräterische Change-Muster: Der Output mit dem runden Betrag ist meist die Zahlung, und ein Output, dessen Adresstyp zu den Inputs passt, ist oft das Wechselgeld.

Kernfakten

  • Transaktions-Inputs sind unteilbar; ein Rest über Zahlung und Gebühr hinaus wird als Wechselgeld zurückgegeben, sofern er nicht klein genug ist, um der Gebühr zugeschlagen zu werden.
  • Auf Protokollebene gibt es keinen technischen Unterschied zwischen einem Change-Output und einem Zahlungs-Output; nur der Ersteller der Transaktion weiß, welcher welcher ist.
  • Die Coin Selection per Branch and Bound (Erhardt, 2016) sucht nach Input-Kombinationen, die keinen Change-Output benötigen.
  • Transaktionen ohne Wechselgeld haben keinen Output, der Gelder an den Absender zurückführt; jeder kleine Rest geht in die Gebühr.
  • Die Verwendung einer neuen, noch nie gesehenen Adresse für das Wechselgeld verhindert, dass Dritte den Change-Output leicht von einem Zahlungs-Output unterscheiden können.
  • Die standardmäßige Dust-Schwelle in Bitcoin Core liegt bei etwa 546 Satoshis für P2PKH-Outputs und 294 für P2WPKH.

Übung neun, sechs, drei, eins

9SammelnListen Sie 9 aktuelle Bitcoin-Transaktionen auf, die Sie beobachtet oder erstellt haben. Notieren Sie jeweils die Anzahl der Inputs und Outputs und ob ein Change-Output vorhanden war.
6GruppierenGruppieren Sie die 9 nach ihrer Struktur in 6 Kategorien: ein Input/ein Output, mehrere Inputs/zwei Outputs (mit Wechselgeld), mehrere Inputs/ein Output (ohne Wechselgeld), Coinbase, OP_RETURN oder andere komplexe Strukturen.
3VerdichtenReduzieren Sie die 6 Gruppen auf 3 unterschiedliche Auswirkungen auf die Privatsphäre, die davon abhängen, wie leicht ein Analyst Outputs einer bestimmten Nutzeridentität zuordnen kann.
1KristallisierenSchreiben Sie 1 Satz, der erklärt, warum das Fehlen einer technischen Unterscheidung zwischen Zahlungs- und Change-Outputs zugleich ein Vorteil für die Fungibilität und eine Herausforderung für die individuelle Privatsphäre ist.

Faktcheck

Datumsangaben, Zahlen und Behauptungen wurden mit den unten aufgeführten veröffentlichten Quellen abgeglichen.

In der interaktiven Akademie öffnen →

EN PT ES ZH JA KO RU FR MS