Clustering und Attribution · Lektion 2 von 8
Heuristiken zur Wechselgelderkennung
9 Min. Lesezeit
Bei den meisten Bitcoin-Zahlungen fließt ein Teil des ausgegebenen Werts als Wechselgeld an den Sender zurück. Die Identifizierung des Wechselgeld-Outputs ermöglicht es Analysten, die verbleibenden Mittel des Senders zu verfolgen, Peel Chains zu rekonstruieren und die Wechselgeldadresse dem Cluster des Senders hinzuzufügen. Anders als die Common-Input-Regel ist die Wechselgelderkennung jedoch immer eine probabilistische Vermutung. Die Forschung zeigt, dass schlecht gewählte Wechselgeldheuristiken die Hauptursache für unkontrolliert wachsende Cluster sind.
Warum Wechselgeld entsteht
Ein UTXO muss vollständig ausgegeben werden. Eine Wallet, die einen Coin im Wert von 0,09 BTC hält und 0,05 BTC bezahlen möchte, gibt den gesamten Coin 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). Die Daten geben nicht an, welcher Output die Zahlung ist. Analysten müssen dies erschließen; hier deuten mehrere unabhängige Hinweise in dieselbe Richtung.
Die klassischen Heuristiken
| Heuristik | Logik | Hauptfehlerquelle |
|---|---|---|
| Neue Adresse (einmaliges Wechselgeld) | Wallets erzeugen für Wechselgeld eine neue Adresse; eine Output-Adresse, die noch nie aufgetreten ist, während die andere bereits aufgetreten ist, gehört wahrscheinlich zum Wechselgeld | Auch Empfänger verwenden neue Adressen; manche Wallets verwenden Wechselgeldadressen mehrfach |
| Übereinstimmender Skripttyp | Wechselgeld verwendet denselben Adresstyp wie die Inputs, da es aus derselben Wallet stammt | Nicht aussagekräftig, wenn Sender und Empfänger denselben Typ verwenden, was mit der Verbreitung von nativem SegWit und Taproot immer häufiger wird |
| Runder Betrag | Zahlungen sind häufig runde Beträge; Wechselgeld, von dem die Gebühr abgezogen wird, ist dies selten | In Fiatwährung bepreiste Zahlungen ergeben keine runden BTC-Beträge; manche Wallets variieren die Beträge zufällig |
| Optimales Wechselgeld (unnötiger Input) | Ist ein Output kleiner als jeder einzelne Input, handelt es sich wahrscheinlich um Wechselgeld, da die Wallet andernfalls nicht alle diese Inputs benötigt hätte | Algorithmen zur Coin-Auswahl minimieren die Zahl der Inputs nicht immer; nur auf Ausgaben mit mehreren Inputs anwendbar |
| Fingerabdrücke | Das Wechselgeld wird später von derselben Wallet-Software ausgegeben, sodass die ausgebende Transaktion Merkmale der ursprünglichen Transaktion aufweist | Viele Wallets haben dieselben verbreiteten Standardeinstellungen; Fingerabdrücke ändern sich mit den Softwareversionen |
Die Idee der neuen Adresse stammt von Androulaki et al. (2013, „Evaluating User Privacy in Bitcoin“), die Wechselgeld-Outputs als „Schattenadressen“ bezeichneten, sowie von Meiklejohn et al. (2013, „A Fistful of Bitcoins“). Deren Heuristik 2 kennzeichnet einen Output als Wechselgeld, wenn er die einzige erstmals auftretende Output-Adresse ist, die Transaktion keine Coinbase-Transaktion ist und kein Output an eine Input-Adresse zurücksendet (kein Wechselgeld an eine eigene Input-Adresse). Spätere Arbeiten ergänzten Bedingungen: Goldfeder et al. (2018, eine Studie zu Datenschutzrisiken bei Webzahlungen) schlossen CoinJoins aus, und Ermilov et al. (2017, „Automatic Bitcoin Address Clustering“) verlangten genau zwei Outputs und einen Wert, der bis mindestens zur vierten Nachkommastelle signifikant ist.
Im Beispiel ist Output 1 eine neue Adresse, stimmt mit dem P2WPKH-Typ des Inputs überein und weist keinen runden Betrag auf. Output 0 hingegen sendet einen runden Betrag von 0,05 BTC an eine Legacy-Adresse, die zuvor bereits Mittel empfangen hat. Alle Signale stimmen darin überein, dass Output 1 das Wechselgeld ist.
Spätere Transaktionen können die Vermutung bestätigen oder widerlegen. Wird bc1q…7k3f schließlich zusammen mit anderen Coins ausgegeben, die bereits zum Cluster des Senders gehören, verknüpft die Common-Input-Regel die Adresse nun unabhängig davon, und die Wechselgeldkennzeichnung wird von einer Schlussfolgerung zu einem starken Beleg. Wird sie stattdessen zusammen mit Coins aus dem Cluster einer bekannten Börse ausgegeben, war Output 1 wahrscheinlich doch die Zahlung. Dann muss die Kennzeichnung zusammen mit jeder darauf aufgebauten Verknüpfung rückgängig gemacht werden. Genau diese verzögerte Bestätigung nutzten Möser und Narayanan (2022) zum Aufbau ihrer unten beschriebenen Referenzdaten. Deshalb sollten Wechselgeldkennzeichnungen mit dem Wachstum der Blockchain neu bewertet und nicht zum Zeitpunkt ihrer Vergabe dauerhaft festgeschrieben werden.
Wallet-Fingerabdrücke
Wallet-Software hinterlässt konsistente Spuren in Feldern, die nicht durch die Konsensregeln festgelegt sind:
- Version. Transaktionen mit relativen Zeitsperren (BIP 68) müssen Version 2 verwenden; viele Wallets verwenden weiterhin Version 1. In den von Möser und Narayanan (2022) analysierten Daten verwendeten etwa 80 % der Transaktionen Version 1, sodass Version 2 allein den Kreis nur teilweise eingrenzt.
- Locktime. Einige Clients, insbesondere Bitcoin Core, setzen
nLockTimestandardmäßig auf die aktuelle Blockhöhe, um Fee Sniping zu erschweren. Eine Locktime nahe der Bestätigungshöhe ist ein Fingerabdruck. - Replace-by-Fee-Signalisierung. Eine Transaktion signalisiert Ersetzbarkeit gemäß BIP 125, wenn ein Input einen
nSequence-Wert unter0xfffffffeaufweist, wie im Beispiel (0xfffffffd). - Sortierung. BIP 69 definiert eine optionale lexikografische Sortierung von Inputs und Outputs; Wallets, die diese verwenden, erzeugen ein erkennbares Muster.
- Skript- und Gebührenverhalten. Adresstypen, die Rundung der Gebührensätze und Multisig-Strukturen unterscheiden sich ebenfalls zwischen Wallets.
Die Fingerabdruckheuristik vergleicht die Transaktion, die den jeweiligen Output-Kandidaten ausgibt, 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 Softwareversionen. Dokumentieren Sie daher den Zeitraum, den Ihre Fingerabdruckregeln beschreiben.
Was die Forschung über die Genauigkeit sagt
Dieselbe Heuristik kann hervorragend oder schlecht abschneiden, je nachdem, wann und wie sie gemessen wird.
- Meiklejohn et al. (2013) werteten die spätere Wiederverwendung einer Adresse als Hinweis auf ein falsch positives Ergebnis. Ihre naive Heuristik 2 lieferte 13 % falsch positive Ergebnisse und einen Supercluster mit 1,6 Millionen Schlüsseln; nach Verfeinerungen (eine Woche Wartezeit vor der Kennzeichnung, Ausnahmen für Würfelspieltransaktionen, Ausschluss bestimmter Adressmuster, manuelle Prüfung) schätzten sie den Wert auf 0,17 %.
- Kappos et al. (2022, „How to Peel a Million“) testeten dieselbe Familie von Heuristiken anhand manuell verifizierter Cluster. Sie ermittelten einen Anteil falscher Entdeckungen von 51,64 % für die Meiklejohn-Heuristik, 64,19 % für die Androulaki-Heuristik und 12,7 % für die strengere Ermilov-Heuristik. Die Unterschiede führten sie darauf zurück, wie stark 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, „Resurrecting Address Clustering in Bitcoin“) erstellten Referenzdaten aus Wechselgeld, das später durch die Wiederverwendung von Adressen erkennbar wurde. Einzelne Heuristiken wiesen niedrige Falsch-Positiv-Raten auf, 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 ungefähr 0,06 %.
Daraus ergeben sich zwei Erkenntnisse. Erstens sind Fehlerraten an ihren Datensatz und Zeitraum gebunden; nennen Sie sie zusammen mit ihrer Quelle, niemals als Konstanten. Zweitens ist selbst eine Falsch-Positiv-Rate von 0,06 % bei der Anwendung auf Hunderte Millionen Transaktionen erheblich: Möser und Narayanan stellten fest, dass ein naives Zusammenführen anhand der Ergebnisse ihres Klassifikators einen Supercluster mit 223,9 Millionen Adressen erzeugte. Sie mussten zusätzliche Einschränkungen einführen, um dies zu verhindern (siehe die Lektion Bewertung der Clusterqualität).
Punktevergabe und Beweiskraft
Ein transparenter Ansatz bewertet jeden Output-Kandidaten mit Punkten und akzeptiert eine Wechselgeldkennzeichnung nur, wenn ein Output deutlich vorn liegt:
-- Jeden Output von Transaktionen mit zwei Outputs als Wechselgeldkandidaten bewerten
SELECT o.transaction_hash, o.output_index, o.address,
(CASE WHEN o.script_type = s.input_script_type THEN 1 ELSE 0 END)
+ (CASE WHEN MOD(o.value, 100000) <> 0 THEN 1 ELSE 0 END)
+ (CASE WHEN f.first_seen_block = o.block_number THEN 1 ELSE 0 END)
AS change_score
FROM outputs o
JOIN tx_summary s ON s.transaction_hash = o.transaction_hash
JOIN address_first_seen f ON f.address = o.address
WHERE s.output_count = 2
AND s.single_input_type = TRUE; -- Inputs mit gemischten Typen überspringen
Jeder Output erhält einen Punkt für die Übereinstimmung mit dem Skripttyp des Inputs, einen für einen nicht runden Wert (kein Vielfaches von 100.000 Satoshis bzw. 0,001 BTC) und einen dafür, dass er in diesem Block erstmals auftritt. Manche 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 nur 0 oder 1 Punkt erhält. Gleichstand bedeutet „unbekannt“, nicht Münzwurf. Die Lektion Abfragen von UTXO-Daten sowie EVM-Logs und -Traces leitet die Prüfung auf einen einheitlichen Input-Typ aus den Tabellen inputs und outputs ab; die Hilfstabellen hier werden auf dieselbe Weise daraus erstellt.
| Beweiskraft | Typische Belege |
|---|---|
| Hoch | Mehrere unabhängige Signale stimmen überein, einschließlich eines übereinstimmenden Fingerabdrucks bei der späteren Ausgabe, und es liegen keine CoinJoin- oder PayJoin-Merkmale vor |
| Mittel | Zwei allgemein anwendbare Signale stimmen überein; noch keine Fingerabdruckbelege |
| Gering | Nur ein Signal, oder widersprüchliche Signale |
| Keine | Wertgleiche Outputs, viele Outputs oder eine möglicherweise wechselgeldlose Ausgabe |
Fehlerquellen, die Sie sich merken sollten
- Überhaupt kein Wechselgeld. Verfahren zur Coin-Auswahl wie Branch and Bound von Bitcoin Core suchen nach Input-Mengen, die genau zur Zahlung passen, und erzeugen dadurch wechselgeldlose Transaktionen. Eine Heuristik, die zwingend einen Output auswählen muss, kennzeichnet dann die Zahlung als Wechselgeld.
- Selbstübertragungen und Konsolidierungen, bei denen jeder Output dem Sender gehört.
- Sammelauszahlungen mit vielen Outputs, von denen mehrere neu erscheinen.
- PayJoin und CoinJoin, die gezielt darauf ausgelegt sind, diese Regeln zu unterlaufen.
- Einheitliche Adresstypen, durch die das Skripttyp-Signal entfällt.
Wechselgeldverknüpfungen sollten mit ihrer Beweiskraft und der dadurch gestützten Einstufung A–D auf der Kursskala (Lektion 3.2) in die Beweistabelle aufgenommen werden. Berichte sollten angeben, ob eine Feststellung von ihnen abhängt.
Prüfungsschwerpunkt: Warum Wechselgeld-Outputs entstehen; die Heuristiken für neue Adressen, Skripttypen, runde Beträge und optimales Wechselgeld sowie die jeweilige Fehlerquelle; die Bedingungen der Heuristik 2 von Meiklejohn et al. und ihr naiver 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 bei großem Umfang dennoch zum Zusammenbruch des Clusterings führen; Punktevergabe für Outputs und Behandlung von Gleichständen als unbekannt; wechselgeldlose Transaktionen.