Clustering-Heuristiken und ihre Grenzen · Lektion 3 von 6
Heuristiken zur Erkennung von Wechselgeld
9 Min. Lesezeit
Bei den meisten Bitcoin-Zahlungen wird ein Teil des ausgegebenen Betrags als Wechselgeld an den Absender zurückgesendet. Wenn sich der Wechselgeld-Output identifizieren lässt, kann eine Analystin oder ein Analyst den verbleibenden Bestand des Absenders verfolgen, Peel-Ketten rekonstruieren und die Wechselgeldadresse dem Cluster des Absenders hinzufügen. Anders als die Common-Input-Regel ist die Erkennung von Wechselgeld jedoch immer eine probabilistische Schätzung. Die Forschung zeigt, dass schlecht gewählte Wechselgeldheuristiken die Hauptursache für unkontrolliert anwachsende Cluster sind.
Warum es Wechselgeld gibt
Ein UTXO muss vollständig ausgegeben werden. Eine Wallet mit einer 0,09-BTC-Münze, die 0,05 BTC zahlen möchte, gibt die gesamte Münze aus, sendet 0,05 BTC an den Empfänger und überweist den Rest abzüglich der Gebühr an eine von ihr kontrollierte Adresse. Hier ist eine solche Transaktion, dekodiert und vereinfacht:
{
"txid": "b52d…0e7a", "version": 2, "locktime": 861203,
"vin": [
{"address": "bc1q…h8e2", "type": "p2wpkh", "value_btc": 0.09000000,
"sequence": "0xfffffffd"}
],
"vout": [
{"n": 0, "address": "1Kx3…9vQe", "type": "p2pkh", "value_btc": 0.05000000},
{"n": 1, "address": "bc1q…7k3f", "type": "p2wpkh", "value_btc": 0.03985860}
]
}
Die Gebühr beträgt 0.09000000 − 0.08985860 = 0.00014140 BTC (14,140 Satoshis). Aus den Daten geht nicht hervor, welcher Output die Zahlung ist. Die Analystin oder der Analyst muss dies ableiten; hier weisen mehrere unabhängige Indizien in dieselbe Richtung.
Klassische Heuristiken
| Heuristik | Logik | Hauptfehlerquelle |
|---|---|---|
| Neue Adresse (einmaliges Wechselgeld) | Wallets erzeugen für Wechselgeld eine neue Adresse. Eine Output-Adresse, die noch nie zuvor aufgetaucht ist, während die andere bereits aufgetaucht ist, ist wahrscheinlich eine Wechselgeldadresse | Auch Empfänger verwenden neue Adressen; manche Wallets verwenden Wechselgeldadressen wieder |
| Übereinstimmung des Skripttyps | Wechselgeld verwendet denselben Adresstyp wie die Inputs, weil es aus derselben Wallet stammt | Nicht aussagekräftig, wenn Absender und Empfänger denselben Typ verwenden; mit der zunehmenden Verbreitung von nativem SegWit und Taproot immer häufiger |
| Runder Betrag | Zahlungen sind häufig runde Beträge; Wechselgeld, das die Gebühr auffängt, ist es selten | In Fiat-Währung festgelegte Zahlungen sind in BTC nicht rund; manche Wallets randomisieren Beträge |
| Optimales Wechselgeld (unnötiger Input) | Ist ein Output kleiner als jeder Input, handelt es sich wahrscheinlich um Wechselgeld, da die Wallet andernfalls nicht all diese Inputs benötigt hätte | Coin-Selection-Algorithmen minimieren nicht immer die Anzahl der Inputs; gilt nur für Ausgaben mit mehreren Inputs |
| Fingerabdrücke | Das Wechselgeld wird später von derselben Wallet-Software ausgegeben; die ausgebende Transaktion weist daher dieselben Merkmale wie die ursprüngliche auf | Beliebte Standardeinstellungen werden von vielen Wallets gemeinsam verwendet; Fingerabdrücke ändern sich mit Softwareversionen |
Die Idee der neuen Adresse geht auf Androulaki et al. (2013, „Bewertung des Datenschutzes von Nutzern bei Bitcoin“) zurück, die Wechselgeld-Outputs als „Schattenadressen“ bezeichneten, sowie auf Meiklejohn et al. (2013, „Eine Handvoll Bitcoins“). Deren Heuristik 2 kennzeichnet einen Output als Wechselgeld, wenn nur eine der Output-Adressen zum ersten Mal auftaucht, es sich bei der Transaktion nicht um eine Coinbase-Transaktion handelt und kein Output an eine Input-Adresse zurückgeht (kein Wechselgeld an sich selbst). Spätere Arbeiten ergänzten Bedingungen: Goldfeder et al. (2018, eine Studie zu Datenschutzrisiken bei Webzahlungen) schlossen CoinJoins aus, und Ermilov et al. (2017, „Automatische Clusterbildung von Bitcoin-Adressen“) verlangten genau zwei Outputs und einen Wert, der mindestens bis zur vierten Dezimalstelle signifikant ist.
Im Beispiel ist Output 1 eine neue Adresse, stimmt mit dem P2WPKH-Typ des Inputs überein und hat keinen runden Betrag. Output 0 hingegen entspricht einer runden Zahlung von 0,05 BTC an eine Legacy-Adresse, die bereits zuvor Gelder empfangen hat. Alle Indizien sprechen dafür, dass Output 1 Wechselgeld ist.
Spätere Transaktionen können die Vermutung bestätigen oder widerlegen. Wird bc1q…7k3f schließlich zusammen mit anderen Coins ausgegeben, die sich bereits im Cluster des Absenders befinden, verknüpft die Common-Input-Regel die Adresse nun unabhängig davon; die Kennzeichnung als Wechselgeld wird damit zu einem starken Beleg statt einer bloßen Schlussfolgerung. Wird sie stattdessen zusammen mit Coins aus einem bekannten Börsencluster ausgegeben, war Output 1 wahrscheinlich doch die Zahlung, und die Kennzeichnung muss zusammen mit allen darauf beruhenden Verknüpfungen rückgängig gemacht werden. Genau diese verzögerte Bestätigung nutzten Möser und Narayanan (2022) für den Aufbau ihrer Ground Truth, wie weiter unten beschrieben. Deshalb sollten Wechselgeldkennzeichnungen mit dem Wachstum der Blockchain neu bewertet und nicht zum Zeitpunkt ihrer Vergabe endgültig festgeschrieben werden.
Wallet-Fingerabdrücke
Wallet-Software hinterlässt konsistente Spuren in Feldern, deren Werte nicht vom Konsens festgelegt werden:
- Version. Transaktionen mit relativen Zeitsperren (BIP 68) müssen Version 2 festlegen; viele Wallets verwenden weiterhin Version 1. In den von Möser und Narayanan (2022) analysierten Daten verwendeten etwa 80 % der Transaktionen Version 1. Version 2 allein grenzt die Auswahl daher nur teilweise ein.
- Locktime. Manche Clients, insbesondere Bitcoin Core, setzen
nLockTimestandardmäßig auf die aktuelle Blockhöhe, um Fee Sniping abzuschrecken. Eine Locktime nahe der Höhe des Bestätigungsblocks ist ein Fingerabdruck. - Signalisierung von Replace-by-Fee. Eine Transaktion signalisiert die Ersetzbarkeit nach BIP 125, wenn ein Input einen
nSequence-Wert unter0xfffffffehat, wie im Beispiel (0xfffffffd). - Sortierung. BIP 69 definiert eine optionale lexikografische Sortierung von Inputs und Outputs; Wallets, die diese nutzen, erzeugen ein erkennbares Muster.
- Skript- und Gebührenverhalten. Auch Adresstypen, Rundung der Gebührensätze und Multisig-Layouts unterscheiden sich zwischen Wallets.
Die Fingerabdruck-Heuristik vergleicht die Transaktion, mit der jeder infrage kommende Output ausgegeben wird, mit der ursprünglichen Transaktion. Hatte die ursprüngliche Transaktion Version 2, eine auf die Blockhöhe gesetzte Locktime und RBF-Signalisierung, und wird Output 1 später durch eine Transaktion mit denselben drei Merkmalen ausgegeben, während Output 0 durch eine Transaktion mit Version 1 und Locktime 0 ausgegeben wird, handelt es sich bei Output 1 wahrscheinlich um Wechselgeld. Fingerabdrücke sind zeitgebundene Belege: Standardeinstellungen ändern sich zwischen Releases. Daher sollte festgehalten werden, für welchen Zeitraum die Fingerabdruckregeln gelten.
Was die Forschung zur Genauigkeit sagt
Dieselbe Heuristik kann je nachdem, wann und wie sie gemessen wird, sehr gut oder schlecht abschneiden.
- Meiklejohn et al. (2013) werteten eine Adresse, die später wiederverwendet wurde, als Hinweis auf ein falsch positives Ergebnis. Ihre naive Heuristik 2 ergab 13 % falsch positive Ergebnisse und einen Supercluster mit 1,6 Millionen Schlüsseln. Nach Verfeinerungen (eine Woche vor der Kennzeichnung warten, Transaktionen von Würfelspielen ausnehmen, bestimmte Adressmuster ausschließen, manuelle Überprüfung) schätzten sie den Wert auf 0,17 %.
- Kappos et al. (2022, „Wie man eine Million peel-en kann“) testeten dieselbe Heuristikenfamilie anhand manuell verifizierter Cluster. Sie ermittelten eine Falsch-Entdeckungsrate von 51,64 % für die Heuristik von Meiklejohn, 64,19 % für die Heuristik von Androulaki und 12,7 % für die strengere Heuristik von Ermilov. Die Abweichung führten sie darauf zurück, wie sehr sich die Bitcoin-Nutzung seit 2013 verändert hat. Ihre eigene Methode, die das bisherige Wechselgeldverhalten und die Ausgabemuster des Clusters nutzt, erreichte in zwei Varianten 0,62 % und 0,02 %.
- Möser und Narayanan (2022, „Wiederbelebung der Adressclusterbildung bei Bitcoin“) erstellten eine Ground Truth auf Basis von Wechselgeld, das später durch die Wiederverwendung von Adressen offengelegt wurde. Einzelne Heuristiken hatten niedrige Falsch-Positiv-Raten, fanden aber nur eine Minderheit der Wechselgeld-Outputs: Optimales Wechselgeld identifizierte 30,6 % bei einer Falsch-Positiv-Rate von 2,6 %, der Adresstyp 23,7 % bei 3,1 %. Ein Random-Forest-Klassifikator, der Heuristiken und Fingerabdrücke kombinierte, fand etwa 82 % des Wechselgelds bei einer Falsch-Positiv-Rate von knapp 0,06 %.
Daraus ergeben sich zwei Lehren. Erstens sind Fehlerraten an den Datensatz und den Zeitraum gebunden; sie sollten stets mit ihrer Quelle angegeben und niemals als Konstanten behandelt werden. Zweitens ist selbst eine Falsch-Positiv-Rate von 0,06 % bei der Anwendung auf Hunderte Millionen Transaktionen hoch: Möser und Narayanan stellten fest, dass eine naive Zusammenführung anhand der Ausgaben ihres Klassifikators einen Supercluster mit 223,9 Millionen Adressen erzeugte. Sie mussten zusätzliche Einschränkungen hinzufügen, um dies zu verhindern (siehe die Lektion Bewertung der Clusterqualität).
Bewertung und Konfidenz
Ein transparenter Ansatz bewertet jeden infrage kommenden Output und kennzeichnet Wechselgeld nur dann, wenn ein Output deutlich vor den anderen liegt:
-- Jeden Output von Transaktionen mit zwei Outputs als Wechselgeldkandidaten bewerten
SELECT o.tx_id, o.output_index, o.address,
(CASE WHEN o.script_type = s.input_script_type THEN 1 ELSE 0 END)
+ (CASE WHEN MOD(o.value_sat, 100000) <> 0 THEN 1 ELSE 0 END)
+ (CASE WHEN f.first_seen_block = o.block_height THEN 1 ELSE 0 END)
AS change_score
FROM outputs o
JOIN tx_summary s ON s.tx_id = o.tx_id
JOIN address_first_seen f ON f.address = o.address
WHERE s.output_count = 2
AND s.single_input_type = TRUE; -- gemischte Input-Typen überspringen
Jeder Output erhält einen Punkt, wenn er dem Skripttyp des Inputs entspricht, einen Punkt für einen nicht runden Wert (kein Vielfaches von 100.000 Satoshis oder 0,001 BTC) und einen Punkt, wenn er zum ersten Mal in diesem Block auftaucht. Manche Datenbank-Engines schreiben MOD(a, b) als a % b. Die Abfrage bewertet beide Outputs; ein nachgelagerter Schritt akzeptiert Output 1 nur dann als Wechselgeld, wenn er beispielsweise 3 Punkte und Output 0 höchstens 1 Punkt erreicht. Bei Gleichstand gilt das Ergebnis als „unbekannt“ und nicht als Münzwurf. Die Lektion Abfragen von UTXO-Daten zeigt, wie die Hilfstabellen erstellt werden.
| Konfidenz | Typische Belege |
|---|---|
| Hoch | Mehrere unabhängige Indizien stimmen überein, darunter ein Fingerabdruck-Treffer bei der späteren Ausgabe, und es gibt keine CoinJoin- oder PayJoin-Merkmale |
| Mittel | Zwei allgemeingültige Indizien stimmen überein; noch keine Fingerabdruck-Belege |
| Niedrig | Nur ein Indiz oder widersprüchliche Indizien |
| Keine | Outputs mit gleichem Wert, viele Outputs oder eine mögliche Transaktion ohne Wechselgeld |
Zu beachtende Fehlerquellen
- Gar kein Wechselgeld. Coin-Selection-Verfahren wie Branch and Bound von Bitcoin Core suchen nach Input-Kombinationen, die genau dem Zahlungsbetrag entsprechen, und erzeugen so Transaktionen ohne Wechselgeld. Eine Heuristik, die gezwungen ist, einen Output auszuwählen, kennzeichnet dann die Zahlung als Wechselgeld.
- Selbsttransfers und Konsolidierungen, bei denen jeder Output dem Absender gehört.
- Gebündelte Auszahlungen mit vielen Outputs, von denen mehrere neu aussehen.
- PayJoin und CoinJoin, die darauf ausgelegt sind, diese Regeln auszuhebeln.
- Einheitliche Adresstypen, durch die das Signal des Skripttyps entfällt.
Wechselgeldverknüpfungen sollten ihre Konfidenz in die Belegtabelle übernehmen. Berichte sollten angeben, ob ein Befund von diesen Verknüpfungen abhängt.
Prüfungsschwerpunkt: warum es Wechselgeld-Outputs gibt; die Heuristiken für neue Adressen, Skripttyp, runde Beträge und optimales Wechselgeld sowie die jeweilige Fehlerquelle; die Bedingungen von Heuristik 2 von Meiklejohn et al. und der daraus entstandene naive Supercluster; Wallet-Fingerabdrücke (Version und BIP 68, Locktime und Schutz vor Fee Sniping, BIP-125-RBF-Signalisierung, BIP-69-Sortierung) und warum sie zeitgebundene Belege sind; der Gegensatz zwischen 0,17 % (Meiklejohn, 2013) und 51,64 % (Kappos et al., 2022) für dieselbe Heuristik; warum niedrige Falsch-Positiv-Raten im großen Maßstab dennoch zum Zusammenbruch führen; die Bewertung von Outputs und die Einstufung von Gleichständen als unbekannt; Transaktionen ohne Wechselgeld.