Transaktionsgraphen erstellen · Lektion 6 von 6
Nachverfolgung über mehrere Chains
8 Min. Lesezeit
Gelder bleiben selten auf einer einzigen Chain. Diebe tauschen gestohlene Token auf einer DEX, überbrücken sie zu einem anderen Netzwerk, wandeln sie mithilfe eines kettenübergreifenden Swap-Protokolls in Bitcoin um und nutzen anschließend einen Soforttauschdienst – oft alles innerhalb weniger Stunden. Jeder Schritt hinterlässt Aufzeichnungen auf zwei oder mehr Ledgern, die keinen gemeinsamen Transaktionsgraphen haben. Bei der kettenübergreifenden Nachverfolgung werden diese Aufzeichnungen wieder miteinander verknüpft – und es wird ehrlich angegeben, wie belastbar jede Verknüpfung ist.
Drei Arten von Verknüpfungen
Innerhalb einer Chain ist eine ausgegebene Ausgabe oder ein Transferereignis eine gesicherte Tatsache. Zwischen Chains gibt es keine gemeinsame Kante, daher muss die Analystin oder der Analyst eine solche herstellen. Jede kettenübergreifende Verknüpfung gehört zu einer von drei Stufen:
| Stufe | Grundlage | Beispiel |
|---|---|---|
| Deterministisch | Das Protokoll selbst dokumentiert die Verknüpfung mit einer gemeinsamen Kennung | Eine Bridge-Einzahlungs-ID oder Nachrichten-Sequenz, die sowohl im Quell- als auch im Zielereignis erscheint |
| Im Protokoll dokumentiert | Die öffentlichen Aufzeichnungen des Dienstes ordnen eingehende und ausgehende Transaktionen einander zu | Die API eines kettenübergreifenden Swap-Protokolls führt jeden eingehenden Hash zusammen mit seinem ausgehenden Hash auf |
| Probabilistisch | Abgeleitet aus übereinstimmendem Betrag, Zeitpunkt und Verhalten | Eine Einzahlung bei einem Soforttauschdienst und wenige Minuten später eine Auszahlung ähnlichen Werts auf einer anderen Chain |
Geben Sie immer an, welcher Stufe jede Verknüpfung in Ihrem Pfad entspricht. Ein Pfad ist nur so belastbar wie seine schwächste Verknüpfung.
Auch die Zeit verhält sich auf verschiedenen Chains unterschiedlich. Blockintervalle reichen von deutlich unter einer Sekunde bis zu etwa zehn Minuten, und die Verzögerung zwischen den beiden Seiten einer Übertragung hängt vom Mechanismus ab: Sekunden bei einem Liquiditätsnetzwerk, Minuten bei einer Bridge, die auf die Finalität der Quell-Chain wartet, und etwa sieben Tage bei einer standardmäßigen Auszahlung aus einem Optimistic Rollup. Wandeln Sie jeden Zeitstempel in UTC um, notieren Sie die Blockhöhe jeder Chain und legen Sie Abgleichsfenster anhand der tatsächlichen Verzögerung des Mechanismus fest, nicht anhand einer pauschalen Schätzung.
Swaps und Wrapped Assets auf derselben Chain
Bevor Gelder eine Chain verlassen, ändern sie oft ihre Form. Ein DEX-Swap ist der einfachste Fall: In einer Transaktion sendet die Adresse des Nutzers Token A an einen Pool und erhält Token B. Beides ist als Transferereignis mit demselben Transaktions-Hash sichtbar (siehe die Lektion DEX-Swaps und Liquiditätsströme). Die Verknüpfung ist deterministisch, aber der Betrag ändert sich mit dem Preis. Daher muss Ihre Nachverfolgung zum anderen Asset wechseln und den Kurs festhalten.
Wrapped Assets stellen ein Asset in einer anderen Form dar. WETH wrappt ETH direkt auf Ethereum: Der WETH-Contract gibt ein Deposit-Ereignis aus, wenn ETH eingezahlt wird, und ein Withdrawal-Ereignis, wenn es abgehoben wird – im Verhältnis eins zu eins. Wrapped-Bitcoin-Token auf Ethereum werden von einer Verwahrstelle oder einer Bridge geprägt und verbrannt. Die Verbindung zurück zu echten Bitcoin läuft daher über die Aufzeichnungen des Emittenten, nicht über eine der beiden Chains. Überbrückte Versionen desselben Tokens können auf einem Netzwerk unter verschiedenen Contract-Adressen nebeneinander existieren. Identifizieren Sie einen Token daher immer anhand seiner Contract-Adresse, niemals anhand seines Tickers.
Bridges
Eine Bridge überträgt Werte zwischen Chains. Drei Modelle sind vorherrschend:
- Lock-and-mint: Das Asset wird in einem Contract auf der Quell-Chain gesperrt und auf der Ziel-Chain eine Wrapped-Version geprägt. Die Umkehrung heißt burn-and-release.
- Liquiditätsnetzwerk: Der Nutzer zahlt auf der Quell-Chain ein, und ein Relayer oder Liquiditätsanbieter zahlt auf der Ziel-Chain native Assets aus eigenen Mitteln aus und erhält später eine Erstattung. Das geht schnell, aber die Auszahlung stammt von der Adresse einer anderen Person.
- Nachrichtenübertragungsprotokolle: Eine allgemeine Nachrichtenschicht überträgt eine Nachricht von einer Chain zu einer anderen. Anwendungen wie Token-Bridges bauen darauf auf.
Die meisten Bridges weisen jeder Übertragung eine Kennung zu, die auf beiden Seiten erscheint. Der Core-Contract von Wormhole gibt beispielsweise auf der Quell-Chain LogMessagePublished(address indexed sender, uint64 sequence, uint32 nonce, bytes payload, uint8 consistencyLevel) aus. Die signierte Nachricht, die die Ziel-Chain akzeptiert, wird eindeutig nach Emitting-Chain, Emitting-Adresse und Sequenznummer indiziert. Ein Abgleich dieser drei Werte verbindet daher beide Seiten deterministisch. Andere Bridges verwenden dieselbe Art von Kennung, etwa eine Einzahlungs-ID, einen Nonce oder einen Nachrichten-Hash. Canonical Rollup-Bridges werden in der Lektion Layer 2, Sidechains und Bridges als Datenquellen behandelt.
Die praktische Regel: Lesen Sie vor dem Abgleich anhand des Betrags das Ereignis der Bridge auf der Quell-Chain, ermitteln Sie die Kennung und die Zielfelder (Ziel-Chain-ID, Empfänger, Token, Betrag) und suchen Sie auf der Ziel-Chain nach derselben Kennung. Verwenden Sie den Abgleich anhand von Betrag und Zeitpunkt nur dann als Ersatz, wenn keine Kennung vorhanden ist.
Kettenübergreifende Swap-Protokolle
Einige Protokolle tauschen native Assets zwischen Chains, ohne sie zu wrappen. THORChain ist das bekannteste Beispiel. Um Bitcoin gegen Ether zu tauschen, sendet der Nutzer BTC an die Vault-Adresse des Protokolls und fügt in einer OP_RETURN-Ausgabe eine Memo hinzu (begrenzt auf 80 Byte, die seit Langem übliche Standardgrenze des Relays für solche Daten), in der das Ziel-Asset und die Zieladresse angegeben sind. Eine fiktive decodierte Transaktion:
Transaktions-ID 2c9d…71be (Bitcoin, fiktiv)
vout 0 0.75000000 BTC bc1q…vlt8 eingehende Vault-Adresse des Swap-Protokolls
vout 1 OP_RETURN "=:ETH.ETH:0xA1b2…9F" Memo: Tausch zum Marktpreis in ETH, Empfänger 0xA1b2…9F
vout 2 0.21843000 BTC bc1q…k2ze Wechselgeld
Die Memo =:ETH.ETH:0xA1b2…9F bedeutet: „Zum Marktpreis in native ETH auf Ethereum tauschen und an 0xA1b2…9F auszahlen.“ Die Zieladresse ist in der Transaktion auf der Quell-Chain eingetragen, und die öffentlichen Aufzeichnungen des Protokolls ordnen den eingehenden Hash der ausgehenden ETH-Zahlung zu. Deshalb gehören solche Swaps trotz ihrer Geschwindigkeit zu den besser nachvollziehbaren Möglichkeiten, zwischen Chains zu wechseln. Nach dem Diebstahl von etwa 1,5 Milliarden US-Dollar bei Bybit im Februar 2025 wandelten die Angreifer einen großen Teil der gestohlenen ETH hauptsächlich über THORChain in Bitcoin um. Eine am 27. Februar 2025 von der Sicherheitsforscherin Taylor Monahan veröffentlichte Schätzung bezifferte die über THORChain bewegte Menge auf mindestens 161.490 ETH in 3.934 Transaktionen innerhalb von etwa fünf Tagen.
Soforttauschdienste und Abgleich anhand von Betrag und Zeitpunkt
Soforttauschdienste nehmen eine Einzahlung in einem Asset entgegen und zahlen ein anderes aus, üblicherweise ohne ein Konto zu verlangen. Sie verwahren die Assets selbst. Die Verknüpfung ist daher in ihren Aufzeichnungen enthalten, und Analysten können sie auf der Blockchain nur anhand von Betrag und Zeitpunkt abgleichen.
Ein durchgerechnetes Beispiel. Eine untersuchte Wallet sendet um 14:02 UTC 2,00000000 BTC an eine Einzahlungsadresse eines Soforttauschdienstes. Zu diesem Zeitpunkt gilt: 1 BTC = 60.000 USD und 1 ETH = 2.400 USD. 2 BTC sind also 50 ETH wert. Bei einer Dienstgebühr von 0,5 % bis 1 % zuzüglich Netzwerkkosten beträgt die erwartete Auszahlung ungefähr 49,4 bis 49,75 ETH. Die folgende Abfrage listet die ETH-Auszahlungen des Dienstes innerhalb der folgenden Stunde auf, deren Wert innerhalb einer Spanne von 5 % liegt:
SELECT o.txid, o.to_address, o.block_timestamp, o.amount_eth,
ABS(o.amount_eth - 49.6) / 49.6 AS rel_gap -- Abstand zum erwarteten Wert
FROM service_outflows_eth o
WHERE o.block_timestamp >= TIMESTAMP '2026-05-11 14:02:00'
AND o.block_timestamp < TIMESTAMP '2026-05-11 15:02:00'
AND o.amount_eth BETWEEN 47.5 AND 50.0 -- 5%-Spanne unterhalb von 50 ETH
ORDER BY rel_gap;
Die Abfrage ergibt vier Auszahlungen: 49,61 ETH um 14:19, 49,58 ETH um 14:51, 49,20 ETH um 14:33 und 48,95 ETH um 14:48. Die ersten beiden liegen im erwarteten Bereich, die letzten beiden nicht. Der Abgleich hat die Zahl der Kandidaten von vier auf zwei verringert, aber noch keine Verknüpfung hergestellt. Weitere Belege können sie voneinander unterscheiden: Sendet einer der Empfänger später Gelder an eine Einzahlungsadresse einer Börse, die die Zielperson zuvor verwendet hat? Gibt es gemeinsame Quellen zur Finanzierung der Gasgebühren oder zeitliche Verhaltensmuster mit den bekannten Wallets der Zielperson? Jede unabhängige Tatsache stärkt oder schwächt einen Kandidaten.
Unsicherheit quantifizieren
Probabilistische Verknüpfungen erfordern Zahlen, nicht nur beschreibende Begriffe:
- Größe der Kandidatenmenge: Wie viele Auszahlungen liegen innerhalb des Zeitfensters und des Wertbereichs? Ein Kandidat unter vier ist etwas ganz anderes als ein Kandidat unter vierzig.
- Rate zufälliger Treffer: Wenden Sie dieselbe Abgleichsregel auf eine Stichprobe nicht zusammenhängender Einzahlungen desselben Dienstes zu zufälligen Zeitpunkten an. Wenn 60 % der zufälligen Einzahlungen ebenfalls einen „Treffer“ ergeben, ist ein Treffer ein schwacher Beleg; bei 2 % ist er stark.
- Sensitivität: Verbreitern und verengen Sie das Zeitfenster und den Wertbereich. Eine Verknüpfung, die nur bei einer einzigen engen Einstellung auftritt, ist fragil.
- Zusätzliche Bestätigung: Zählen Sie unabhängige Signale (Betrag, Zeitpunkt, Verhalten der Zieladresse, spätere Zusammenführung mit bekannten Wallets) und vermerken Sie alle Signale, die der Verknüpfung widersprechen.
Formulieren Sie das Ergebnis anschließend mit abgestufter Sprache und einem Konfidenzniveau für jeden Befund (siehe die Lektion Konfidenz, Unsicherheit und Sprache), stellen Sie deterministische und probabilistische Verknüpfungen in Diagrammen visuell unterschiedlich dar (zum Beispiel durch durchgezogene und gestrichelte Kanten) und führen Sie die Kennungen und Abfragen in einem Anhang auf, damit sich der Pfad auf beiden Chains rekonstruieren lässt.
Prüfungsschwerpunkt: die drei Stufen kettenübergreifender Verknüpfungen (deterministisch, im Protokoll dokumentiert, probabilistisch) und warum ein Pfad nur so belastbar ist wie seine schwächste Verknüpfung; DEX-Swaps und Wrapped Assets als Formänderungen auf derselben Chain, einschließlich der WETH-Deposit- und Withdrawal-Ereignisse sowie der Identifikation von Token anhand ihrer Contract-Adresse; Bridges nach den Modellen lock-and-mint und burn-and-release, Liquiditätsnetzwerke und Nachrichtenübertragung; Abgleich von Bridge-Übertragungen anhand gemeinsamer Kennungen wie Emitting-Chain, Emitting-Adresse und Sequenznummer bei Wormhole; Auswertung einer Memo für einen kettenübergreifenden Swap in einer OP_RETURN-Ausgabe; Abgleich anhand von Betrag und Zeitpunkt mit gebührenbereinigten Erwartungen; Größe der Kandidatenmenge, Rate zufälliger Treffer, Sensitivität und zusätzliche Bestätigung.