Autor: 0xB10C; Compiler: Songxue, Golden Finance

Mein Projekt „miningpool-observer“ zielt darauf ab, zu erkennen, wann Bitcoin-Mining-Pools keine Transaktionen durchführen, die sie durchführen könnten. In den letzten Wochen wurden sechs fehlende Transaktionsausgaben von OFAC-zugelassenen Adressen festgestellt. In diesem Artikel wird untersucht, ob diese Transaktionen absichtlich gefiltert wurden, weil sie von OFAC-genehmigten Adressen getätigt wurden, oder ob es andere mögliche Erklärungen dafür gibt, warum diese Transaktionen im Block fehlten. Meine Schlussfolgerung ist, dass vier der Transaktionen möglicherweise gefiltert wurden.

Im September und Oktober 2023 meldete der RSS-Feed für meine Mining-Pool-Beobachter-Instanz 6 Blöcke, in denen OFAC-genehmigte Transaktionen fehlten. Einer der Blöcke wurde vom Mining-Pool ViaBTC abgebaut, ein anderer vom Mining-Pool Foundry USA und die anderen vier vom Mining-Pool F2Pool. Eine von der OFAC genehmigte Transaktion ist eine Transaktion, bei der eine Auszahlung oder Zahlung von einer Adresse erfolgt, die vom Office of Foreign Assets Control des US-Finanzministeriums genehmigt wurde. Ich pflege ein Tool, das eine Liste von OFAC-anerkannten Adressen aus der von OFAC veröffentlichten Specially Designated Nationals (SDN)-Liste extrahiert.

Es gibt mehrere Gründe, warum Transaktionen in einem Block fehlen könnten. Im Allgemeinen sind Transaktionen nicht gleichmäßig über das Netzwerk verteilt und es gibt keinen globalen Mempool, aus dem Transaktionen ausgewählt werden können. Jeder Knoten verfügt über seinen eigenen Satz gültiger Transaktionen. Mining-Pools können auch Transaktionen priorisieren, die Out-of-Band-Zahlungen erhalten. Allerdings kann es auch zu einer Depriorisierung oder Filterung von Transaktionen kommen.

Das Ziel besteht hier darin, festzustellen, ob der Mining-Pool eine dieser sechs von der OFAC genehmigten Transaktionen gefiltert hat oder ob es andere mögliche Erklärungen dafür gibt, dass sie nicht im Block erscheinen. Beachten Sie, dass Mining-Pools frei wählen können, welche Transaktionen eingeschlossen und welche ausgeschlossen werden sollen. Um jedoch die zensurresistenten Eigenschaften von Bitcoin zu analysieren, ist es wichtig zu verstehen, welche und wie viele Mining-Pools Transaktionen filtern.

Ich komme zu dem Schluss, dass die Berichte von MiningPool-Observer, die darauf hinweisen, dass die sanktionierten Transaktionen, die in den Blöcken von ViaBTC und Foundry fehlen, höchstwahrscheinlich falsch positive Ergebnisse sind und nicht das Ergebnis einer Filterung sind. Möglicherweise wurden jedoch im F2Pool-Block fehlende Transaktionen gefiltert.

ViaBTC-Block 808660

Block 808660..866c79c52 wurde am 21. September 2023 von ViaBTC abgebaut und enthält keine Transaktion 262025e7. Diese Transaktion kombiniert 100 Eingaben zu einer Ausgabe. Die Ausgabe einer dieser Eingaben wird an 1ECeZBxCVJ8Wm2JSN3Cyc6rge2gnvD3W5K gezahlt. Die Adresse wurde am 21. September 2021 zur SDN-Liste des OFAC hinzugefügt.

Die Größe der Transaktion beträgt 14,7 kvB und die gezahlte Gebühr beträgt 25,18 sat/vByte. Der von der sanktionierten Adresse ausgegebene Output beträgt 0,0002 BTC (20k sat) und wurde am Vortag erstellt. Als ViaBTC den Block 808660 abbaute, befand sich die Transaktion etwa 75 Minuten lang im Mempool meines Knotens. Es besteht keine Abhängigkeit von Mempool-Transaktionen.

Ratenverteilung in Vorlagen und Blöcken

Tarifzuteilung für Blöcke und Vorlage für Block 808660. Screenshot von Miningpool.observer.

Bei der Überprüfung der Ratenverteilung für Block 808660 auf Miningpool.observer wurde festgestellt, dass ViaBTC etwa 1 MWU Blockplatz (insgesamt 4 MWU) einnimmt und vorrangige Transaktionen hat. Diese könnten vom Bitcoin-Handelsbeschleuniger ViaBTC stammen. Die Priorisierung bestimmter Transaktionen bedeutet, dass Transaktionen mit niedrigeren Gebühren (wie hier Transaktionsausgaben von sanktionierten Adressen) nicht in den Block gelangen. Für diesen ViaBTC-Block listet meine Mining-Pool-Beobachterinstanz am Ende der Vorlage 24 große zusammengeführte Transaktionen auf, die es nicht in den Block geschafft haben.

Fehlende Liste großer zusammengeführter Transaktionen in Block 808660

Daraus lässt sich schließen, dass ViaBTC diese Transaktion nicht gefiltert hat. Es wird durch andere Priority Deals ersetzt. Dies wurde durch die Tatsache bewiesen, dass ViaBTC drei Tage später eine Transaktion schürfte, bei der Ausgaben von derselben sanktionierten Adresse im Block 809181 ausgegeben wurden.

Block 813231 von Foundry USA

Block 813231..0a8528b6 wurde am 21. Oktober 2023 von Foundry USA abgebaut und enthält keine Transaktion c9b57191. Diese Transaktion kombiniert 150 Eingaben zu einer Ausgabe. Die Ausgabe einer der Eingaben wird an 3PKiHs4GY4rFg8dpppNVPXGPqMX6K2cBML gezahlt. Die Adresse wurde am 14. April 2023 zur SDN-Liste des OFAC hinzugefügt.

Da es sich bei den meisten der 150 Eingaben um 2-aus-3-P2SH-Skripte mit mehreren Signaturen handelt, sind die fehlenden Transaktionen groß und erreichen 43842 vByte. Es zahlt 5,09 sat/vByte und ist nicht auf In-Mempool-Transaktionen angewiesen. In der von meinem Bitcoin Core-Knoten erstellten Vorlage reicht diese Rate aus, um ihn auf Platz 161 von 2215 Transaktionen zu platzieren. Als ich jedoch vom Block 812331 von Foundry USA erfuhr, befand sich diese Transaktion zusammen mit 18 anderen erst seit etwa 30 Sekunden in meinem Mempool. Dies macht es wahrscheinlich, dass Foundry keine Chance hat, diese Transaktion in ihren Block aufzunehmen, da sie noch nichts davon wissen.

Die Weitergabe der Transaktion kann mehrere Sekunden dauern. Darüber hinaus senden die meisten Mining-Pools nur alle 30 Sekunden neue Blockvorlagen an die Miner und brauchen dann eine Weile, um zu neuen Jobs zu wechseln. Darüber hinaus fordert das Tool „Miningpool-Observer“ alle paar Sekunden neue Blockvorlagen an und führt einen Best-Effort-Match durch, der auf minimalen Unterschieden bei verlorenen und zusätzlichen Transaktionen basiert (siehe Methode in den FAQ). Dadurch kann es bei neuen Transaktionen bis zu etwa 60 Sekunden lang zu Fehlalarmen kommen.

Der mempool.space-Block-Explorer verfolgt auch die Unterschiede zwischen der Blockvorlage und dem endgültigen Block, der von Minern gesendet wird. Sie zeigen, dass c9b57191.. in ihrer Vorlage enthalten ist, aber im eigentlichen Block fehlt. Die Transaktion wurde von ihnen auch als „kürzlich ausgestrahlt“ gekennzeichnet.

Die fehlende Transaktion im Foundry-Block 813231 wird von mempool.space als „zuletzt gesendet“ eingestuft.

Daraus lässt sich die Schlussfolgerung ziehen, dass Foundry USA die Transaktion nicht gefiltert hat. Die Transaktion wurde zu spät übertragen, um in den Mining-Vorgang einbezogen zu werden, der schließlich Block 813231 fand. Darüber hinaus hat Foundry USA den nächsten Block auf Höhe 813232 abgebaut und dort die genehmigten Transaktionen einbezogen.

F2Pool-Blöcke 810727, 811791, 811920, 813357

F2Pool hat am 5. Oktober 2023 die Blöcke 810727..ccda1498, am 12. Oktober die Blöcke 811791..af4453d6 und 811920..00badf62 und am 22. Oktober die Blöcke 813357..63ac1669 abgebaut. In jedem Block fehlt eine erkannte Transaktion. Jede dieser Transaktionen kombiniert 150 2-von-3-Multisig-Eingaben in einer einzigen Ausgabe. Für jede Transaktion wird einer der Eingänge an den Ausgang von 3PKiHs4GY4rFg8dpppNVPXGPqMX6K2cBML gezahlt. Dies ist derselbe Integrationsmodus und die gleiche Adresse wie im vorherigen Abschnitt. Keine der verlorenen Transaktionen hängt von Transaktionen im Mempool ab.

Block 810727

In Block 810727 enthält F2Pool keine Transaktion c6a66836.., die genehmigte Ausgaben ausgibt. Bei 150 2-von-3-Multisig-Eingaben ist die Transaktion mit 44017 vByte recht groß. Als F2Pool den Block 810727 abbaute, zahlte er 446260 Sats und blieb fast 4 Stunden in meinem Knotenspeicherpool. Die F2Pool-Auswahl enthält die Transaktion 907e1f45.., nicht c6a66836... Bei der Transaktion handelt es sich ebenfalls um eine konsolidierte Transaktion mit 150 Eingaben und einer Ausgabe, es werden jedoch keine Ausgaben aus der erfassten Ausgabe getätigt. Es zahlt sich genauso aus wie 446260 sat, ist aber zufällig 3 vByte größer als 44020 vByte. Das bedeutet, dass die fehlende Transaktion c6a66836.. einen etwas höheren Kurs hat als 907e1f45... Bei einer reinen Sortierung nach Kurs hätte die fehlende Transaktion berücksichtigt werden müssen. Tatsächlich ist es jedoch unwahrscheinlich, dass die 3 VByte zusätzlicher Blockspeicherkapazität einen Einfluss auf die Gesamtgebühren in einem Block haben.

Vergleich fehlender genehmigter Transaktionen im F2Pool-Block 810727 mit enthaltenen zusätzlichen Transaktionen. Zusätzliche Transaktionen fügen 3 vBytes hinzu.

Block 811791

Die genehmigte Transaktion aa001ce6... fehlt im F2Pools-Block 811791. Ähnlich wie bei der vorherigen Zusammenführungstransaktion beträgt die Größe dieser Transaktion 42459 vBytes (169836 WU). Wenn die Gebühr 446260 SAT beträgt, beträgt die gezahlte Gebühr 10,5 SAT/VByte. Wenn Block 811791 den Pool-Beobachterknoten erreicht, wurde die Transaktion vier Minuten lang in seinem Mempool gehalten.

In diesem Block ist zu beachten, dass 5 Transaktionen mit OP_RETURN Stacks-Blockverpflichtungen fehlen. Allerdings hat F2Pool seine eigenen Stacks-Blockverpflichtungen eingefügt. Dies kommt häufig vor und wurde bereits früher gemeldet. Darüber hinaus umfasst F2Pool zwei große gebührenfreie Transaktionen in seinem Block. Das eine ist die F2Pool-Coinbase-Ausgabe vor der Integration und das andere ist die Transaktion, mit der die Miner bezahlt werden. Dies ist ein häufiges Verhalten für von F2Pool geschürfte Blöcke.

Obwohl diese zusätzlichen Transaktionen mehr als 400 kWU Blockplatz beanspruchen, ist immer noch genügend Platz vorhanden, um die Transaktion aa001ce6... einzuschließen. Der Block enthält 2,86 MWU an Transaktionen, was niedriger ist als die Rate von 10,5 sat/vByte von aa001ce6.... Die Transaktion beträgt ca. 170 kWU, was in den Block passt. Auf mempool.space ist die Transaktion als „gelöscht“ markiert, was sich negativ auf die Kennzahlen zum Blockzustand auswirkt.

Die vom Transaktionspaket in Block 811791 zugewiesenen Tarife umfassen die Tarife und Gewichtsmarkierungen für fehlende Transaktionen.

Block 811920

In Block 811920 enthält F2Pool keine Transaktion 1cb3d6bc.., die genehmigte Ausgaben ausgibt. Auch bei dieser Transaktion handelt es sich um eine große Fusionstransaktion. Es hat eine Größe von 43630 vByte (169836 WU), eine Gebühr von 44660 sat und eine kostenpflichtige Gebühr von 10,23 sat/vByte. Wenn Block 811920 den Pool-Beobachterknoten erreicht, wurde die Transaktion fast zwei Minuten lang im Mempool des Knotens gehalten.

Im Block 811920 zahlte eine 1,44 MWU-Transaktion weniger als 10,23 sat/vByte. Die 170-kWU-Transaktion 1cb3d6bc.. passt in diesen Block. Da die Transaktion nur fast zwei Minuten im Mempool meines Knotens existierte, war es möglich, dass die Transaktion zum Zeitpunkt der Erstellung der Blockvorlage noch nicht an F2Pool weitergegeben wurde. Die Transaktion erscheint auch als „Recent Broadcast“ auf mempool.space. Typischerweise versuchen Mining-Pools, eine gute Verbindung zum Bitcoin-Netzwerk herzustellen. Wenn sich die Transaktion im Mempool von mempool.space und miningpool.observer befindet, befindet sich die Transaktion wahrscheinlich im Mempool von F2Pool.

Die vom Transaktionspaket in Block 811920 zugewiesenen Tarife umfassen Tarife und Gewichtsmarkierungen für fehlende Transaktionen.

Block 813357

Im Block 813357 von F2Pool fehlt die Transaktion e49cdb60..9, die die Genehmigungsausgabe ausgibt. Die Größe dieser Zusammenführungstransaktion beträgt 43053 vBytes (172209 WU). Wenn die Gebühr 178504 sat beträgt, beträgt die gezahlte Gebühr 4,15 sat/vByte. Wenn Block 813357 den Pool-Beobachterknoten erreicht, wurde die Transaktion mehr als 25 Minuten im Mempool des Knotens gehalten.

Im Block 813357 gab es 684 kWU-Transaktionen, die weniger als 4,15 sat/vByte zahlten. Die 172-kWU-Transaktion e49cdb60.. passt in diesen Block. Da die Transaktion seit mehr als 25 Minuten im Mempool meines Knotens liegt, ist es unwahrscheinlich, dass die Transaktion noch nicht an einen der F2Pools-Knoten weitergeleitet wurde. Diese Transaktion ist auch in der Vorlage für den Mempool-Space-Block 813357 enthalten.

Tarifverteilung nach Transaktionspaket in Block 813357, einschließlich Tarif- und Gewichtsmarkierungen für fehlende Transaktionen.

Abschluss des F2Pools-Blocks

Die fehlende genehmigte Transaktion im Block 810727 hat eine etwas höhere Rate, da sie 3 vByte kleiner ist als die enthaltene Transaktion. Während in diesem Fall diese 3 VByte zusätzlicher Blockspeicher keinen Einfluss auf die Gesamtgebühr haben, wählt der Blockvorlagenalgorithmus von Bitcoin Core Transaktionen mit höheren Gebühren aus. Die große Anzahl zusätzlicher Transaktionen im Block 811791 wird keine Auswirkungen auf die fehlenden genehmigten Transaktionen im Block 811791 haben. Möglicherweise wurde es aus dem Block herausgefiltert. Die Blockprüfung auf mempool.space stimmt dem zu. Möglicherweise ist F2Pool die fehlende Endorsement-Transaktion im Block 811920 noch nicht bekannt. Bei großen Mining-Pools sollten jedoch 2 Minuten ausreichen, um Transaktionen zu empfangen. Zumal mempool.space und Miningpool.observer von diesem Deal wissen. Diese genehmigte Transaktion ging höchstwahrscheinlich aufgrund der F2Pool-Filterung verloren. Ähnlich wie bei der fehlenden Transaktion in Block 811791 wurde die fehlende Transaktion in Block 813357 wahrscheinlich von F2Pool gefiltert.

Diese vier fehlenden sanktionierten Transaktionen lassen den Schluss zu, dass F2Phi derzeit Transaktionen filtert. Da wir fehlende Transaktionsausgaben nur von einer einzelnen OFAC-sanktionierten Adresse, 3PKiHs4GY4rFg8dpppNVPXGPqMX6K2cBML, sehen, können wir nicht sagen, ob F2Pool diese einzelne Adresse oder alle OFAC-sanktionierten Adressen filtert.

abschließend

In dem Artikel werden sechs Bitcoin-Transaktionsausgaben von OFAC-zugelassenen Adressen besprochen, bei denen das Mining Pool Watcher-Tool festgestellt hat, dass sie in Blöcken fehlen. Die beiden in den Mining-Pool-Blöcken von ViaBTC und Foundry USA fehlenden Transaktionen waren falsch positive Ergebnisse und wurden nicht gefiltert. Vier von der OFAC genehmigte Transaktionen, die im F2Pool-Block fehlen, wurden möglicherweise gefiltert. Dies wirft die Frage auf, warum F2Pool, das seinen Ursprung in Asien hat, der erste Mining-Pool war, der Transaktionen auf der Grundlage von US-OFAC-Sanktionen filterte.

Das Bitcoin-Netzwerk funktioniert jedoch weiterhin normal. Das Filtern von Transaktionen nach einem einzelnen Pool hat keinen Einfluss auf die Zensurresistenz im gesamten Bitcoin-Netzwerk. Durch eine weitere Überwachung der Transaktionsauswahl eines Pools könnte festgestellt werden, wann weitere Pools beginnen, Transaktionen basierend auf Faktoren wie OFAC-Sanktionen zu filtern. Außerdem können Miner ihre Rechenleistung auf diese Pools verweisen, und wenn sie mit der (unangekündigten) Filterrichtlinie des Pools nicht einverstanden sind, können sie eine fundierte Entscheidung treffen, zu einem anderen Pool zu wechseln.

  1. Da keiner der Blöcke mit fehlenden Transaktionen in der Nähe des Sigop-Limits von 80.000 liegt, werden diese hier nicht besprochen.​

  2. ViaBTC-Block 808660: 000000000000000000017c18a76632d9e39e8c388ee1e4028ec75e50866c79c5

  3. Fehlende Transaktion im Block 808660: 262025e73812fc68b6514ea366abf463147176c7867e5853f117aded58c30e0e

  4. Die von ViaBTC im Block 809181 geschürfte Transaktion cb9f2592.. war eine Omnilayer-Transaktion, bei der im September 2020 1528 USDT an diese Adresse eingezahlt wurden. Die genehmigte Adresse der Transaktion 1ECeZBxCVJ8Wm2JSN3Cyc6rge2gnvD3W5K hat eine ähnliche Ausgabe wie Transaktion 262025e7. Sie fehlt in Block 80866.

    Ich habe einige dieser Adressen überprüft und festgestellt, dass sie alle USDT-Guthaben auf OmniLayer enthielten, die bei diesen Transaktionen gelöscht wurden. Dies ist zwar eine Vermutung, aber es sieht so aus, als wollte jemand die verbleibenden USDT auf einer Reihe von Adressen löschen, 20.000 SAT an jede Adresse senden und den Scan vermasseln, indem er die neu erstellte Ausgabe erneut in 262025e7 zusammenführte ... und dann Habe es noch einmal mit d11019a2 versucht und es erfolgreich mit cb9f2592 gescannt ...

    Wenn dies der Fall ist, verliert OFAC möglicherweise eine Reihe von Adressen für dieselbe Entität auf seiner Liste.​

  5. Der von Foundry geschürfte Block 813231 hat den Header-Hash: 00000000000000000001740d5fbb8bbc0b93d4bf46ca2011f642e92a0a8528b6

  6. Die txid der genehmigten Transaktion, die im Block 813231 fehlt, lautet: c9b5719131bfeac6378749243731c5e70f1ce56deabb7006a2b6539710866420

  7. Nach Angaben von OXT.me gehört die Adresse zum OKEX-Wallet. Die zusammengeführte Transaktion c9b57191.. ist eine mit OKEX zusammengeführte Einzahlung. Laut OXT.me handelt es sich bei dem Ergebnis der Fusion um Auszahlungen aus dem Hydra-Darknet-Markt. Weitere Informationen finden Sie hier.

  8. Block-Hash

  • 810727:

    0000000000000000000350ae5ee08a4415146612af59a20021efeaf2ccda1498

  • 811791:

    00000000000000000001631243b00b6c1019c0d833b6738e0c591dacaf4453d6

  • 811920:

    00000000000000000002efd0fc8801b149f505b125308a35c584ed2600badf62

  • 813357:

    00000000000000000000519c33dcdf5ca386524b2cbacb561f767e9663ac1669

9. Fehlende, genehmigte Transaktionen:

  • 810727:

    c6a668364f19df0f2977f8ad7d0a3a73c5e32b55b6a7c650cafa37a5ab4b19f2

  • 811791:

    aa001ce6e262b8b9042645ecdec9c84e9e2ad06f56dff6dd5ae42005fdea8da9

  • 811920:

    1cb3d6bcc650c2891b68e7b205d601bcf5158e30e1926d0fd0c8385cb456b37b

  • 813357:

    e49cdb6075c49b8fc37b3e922038e2a3205d75a9a1fb4b69f3568707594c2d3e

10. Die von F2Pool für Block 810727 ausgewählte Transaktionsgröße ist etwas größer, daher ist die Gebühr niedriger:

  • 907e1f45334652dd344cf846639f3f9a2ee11b5489e2ffc2660ea543881b1bce

Wahrscheinlich, weil die Signatur weniger Low-R-Nonces enthält, wodurch die Signatur größer wird.​