Autor: 0xB10C; Kompilator: Songxue, Golden Finance

Mój projekt, miningpool-observer, ma na celu wykrycie, kiedy baseny wydobywcze Bitcoinów nie dokonują transakcji, które mogłyby mieć. W ciągu ostatnich kilku tygodni wykrył sześć brakujących wydatków transakcyjnych z adresów zatwierdzonych przez OFAC. W tym poście sprawdzamy, czy transakcje te zostały celowo odfiltrowane, ponieważ zostały wydane z adresów zatwierdzonych przez OFAC, czy też istnieją inne możliwe wyjaśnienia, dlaczego tych transakcji nie było w bloku. Mój wniosek jest taki, że cztery z transakcji mogły zostać odfiltrowane.

We wrześniu i październiku 2023 r. kanał RSS mojej instancji obserwatora puli wydobywczej zgłosił, że w 6 blokach brakuje transakcji zatwierdzonych przez OFAC. Jeden z bloków został wydobyty przez pulę wydobywczą ViaBTC, drugi przez pulę wydobywczą Foundry USA, a pozostałe cztery przez pulę wydobywczą F2Pool. Transakcja zatwierdzona przez OFAC to transakcja, w ramach której wypłata lub płatność jest dokonywana z adresu zatwierdzonego przez Biuro Kontroli Aktywów Zagranicznych Departamentu Skarbu USA. Prowadzę narzędzie, które wyodrębnia listę adresów uznawanych przez OFAC z listy specjalnie wyznaczonych obywateli (SDN) publikowanej przez OFAC.

Istnieje kilka powodów, dla których w bloku może brakować transakcji. Ogólnie rzecz biorąc, transakcje nie są równomiernie rozłożone w sieci i nie ma globalnej puli pamięci, z której można wybierać transakcje. Każdy węzeł ma swój własny zestaw ważnych transakcji. Pule wydobywcze mogą również nadawać priorytet transakcjom, które otrzymują płatności poza pasmem. Może jednak również obniżyć priorytet transakcji lub je odfiltrować.

Celem jest tutaj ustalenie, czy grupa wydobywcza odfiltrowała którąkolwiek z sześciu transakcji zatwierdzonych przez OFAC lub czy istnieją inne możliwe wyjaśnienia ich nie pojawienia się w bloku. Należy pamiętać, że pule wydobywcze mogą swobodnie wybierać, które transakcje uwzględnić, a które wykluczyć. Aby jednak przeanalizować właściwości Bitcoina odporne na cenzurę, ważne jest, aby zrozumieć, które i ile puli wydobywczych filtruje transakcje.

Dochodzę do wniosku, że raporty Miningpool-observer wskazujące, że usankcjonowane transakcje brakujące w blokach ViaBTC i Foundry są najprawdopodobniej fałszywie pozytywne, a nie wynikiem filtrowania. Jednakże transakcje brakujące w bloku F2Pool mogły zostać odfiltrowane.

Blok ViaBTC 808660

Blok 808660..866c79c52 został wydobyty przez ViaBTC 21 września 2023 roku i nie zawiera transakcji 262025e7.. Transakcja ta łączy 100 wejść w jedno wyjście. Dane wyjściowe jednego z tych wejść są przesyłane do 1ECeZBxCVJ8Wm2JSN3Cyc6rge2gnvD3W5K. Adres został dodany do listy SDN OFAC 21 września 2021 r.

Rozmiar transakcji wynosi 14,7 kvB, a pobierana opłata wynosi 25,18 sat/vbajt. Produkcja wydana przez usankcjonowany adres wynosi 0,0002 BTC (20 tys. sat) i została utworzona dzień wcześniej. Kiedy ViaBTC wydobyło blok 808660, transakcja znajdowała się w pamięci mojego węzła przez około 75 minut. Nie ma zależności od transakcji mempool.

Rozkład stawek w szablonach i blokach

Alokacja stawek dla bloków i szablon dla bloku 808660. Zrzut ekranu z Miningpool.observer.

Sprawdzając rozkład stawek dla bloku 808660 na Miningpool.observer, okazuje się, że ViaBTC zajmuje około 1 MWU przestrzeni blokowej (łącznie 4 MWU) i ma transakcje priorytetowe. Mogą one pochodzić z akceleratora handlu Bitcoinami ViaBTC. Nadanie priorytetu niektórym transakcjom oznacza, że ​​transakcje z niższymi opłatami (takie jak wydatki transakcyjne z adresów objętych sankcjami) nie są blokowane. W przypadku tego bloku ViaBTC moja instancja obserwatora puli wydobywczej wyświetla na końcu szablonu 24 duże połączone transakcje, które nie trafiły do ​​bloku.

Brakująca lista dużych połączonych transakcji w bloku 808660

Wniosek z tego jest taki, że ViaBTC nie odfiltrowała tej transakcji. Zastępuje się je innymi umowami priorytetowymi. Zostało to udowodnione przez fakt, że trzy dni później ViaBTC wydobyło transakcję, w wyniku której dane wyjściowe z tego samego usankcjonowanego adresu zostały wydane w bloku 809181.

Blok 813231 od Foundry USA

Blok 813231..0a8528b6 został wydobyty przez Foundry USA 21 października 2023 r. i nie zawiera transakcji c9b57191.. Transakcja ta łączy 150 wejść w jedno wyjście. Sygnał wyjściowy jednego z wejść przekazywany jest do układu 3PKiHs4GY4rFg8dpppNVPXGPqMX6K2cBML. Adres został dodany do listy SDN OFAC 14 kwietnia 2023 r.

Ponieważ większość ze 150 danych wejściowych to 2 z 3 wielopodpisowych skryptów P2SH, brakujące transakcje są duże i sięgają 43842 vbajtów. Płaci 5,09 sat/vByte i nie opiera się na transakcjach w pamięci. W szablonie zbudowanym przez mój węzeł Bitcoin Core kurs ten wystarczy, aby umieścić go na 161. miejscu z 2215 transakcji. Kiedy jednak dowiedziałem się o bloku 812331 Foundry USA, ta transakcja, podobnie jak 18 innych, znajdowała się w mojej pamięci tylko przez około 30 sekund. To sprawia, że ​​jest prawdopodobne, że Foundry nie ma szans na włączenie tej transakcji do swojego bloku, ponieważ jeszcze o tym nie wie.

Propagacja transakcji może zająć kilka sekund. Ponadto większość pul wydobywczych przekazuje górnikom nowe szablony bloków co 30 sekund, a następnie przejście do nowych zadań zajmuje trochę czasu. Dodatkowo narzędzie miningpool-observer co kilka sekund żąda nowych szablonów bloków i przeprowadza dopasowanie typu best-effort w oparciu o minimalne różnice w utraconych i dodatkowych transakcjach (zobacz metodę w FAQ). Dzięki temu nowe transakcje mogą wykazywać fałszywe alarmy przez około 60 sekund.

Eksplorator bloków mempool.space śledzi także różnice pomiędzy szablonem bloku a końcowym blokiem transmitowanym przez górników. Pokazują, że c9b57191.. jest zawarty w ich szablonie, ale brakuje go w rzeczywistym bloku. Transakcja została również oznaczona przez nich jako „ostatnio transmitowana”.

Brakująca transakcja w bloku Foundry 813231 jest uważana za „niedawno wyemitowaną” przez mempool.space.

Należy z tego wyciągnąć wniosek, że Foundry USA nie odfiltrowała transakcji. Transakcja została wyemitowana zbyt późno, aby można ją było uwzględnić w operacji wydobywczej, która ostatecznie znalazła blok 813231. Dodatkowo Foundry USA wydobyła kolejny blok na wysokości 813232 i tam zawarła zatwierdzone transakcje.

Bloki F2Pool 810727, 811791, 811920, 813357

F2Pool wydobywał bloki 810727..ccda1498 5 października 2023 r., bloki 811791..af4453d6 i 811920..00badf62 12 października oraz bloki 813357..63ac1669 22 października. W każdym bloku brakuje rozpoznanej transakcji. Każda z tych transakcji łączy 150 wejść multisig 2 z 3 w jedno wyjście. Dla każdej transakcji jeden z wejść jest płacony na wyjściu 3PKiHs4GY4rFg8dpppNVPXGPqMX6K2cBML. Jest to ten sam tryb integracji i adres omówione w poprzedniej sekcji. Żadna z utraconych transakcji nie zależy od transakcji w puli pamięci.

Blok 810727

W bloku 810727 F2Pool nie zawiera transakcji c6a66836.., która wydaje zatwierdzone dane wyjściowe. Przy 150 wejściach multisig 2 z 3 transakcja jest dość duża i wynosi 44017 vbajtów. Kiedy F2Pool wydobył blok 810727, zapłacił 446260 sat i pozostał w puli pamięci mojego węzła przez prawie 4 godziny. Wybór F2Pool zawiera transakcję 907e1f45.., a nie c6a66836... Transakcja jest również transakcją skonsolidowaną ze 150 wejściami i jednym wyjściem, ale nie powoduje wydatków z rozpoznanego wyjścia. Płaci tyle samo, co 446260 sat, ale zdarza się, że jest o 3 vbajty większy niż 44020 vbajtów. Oznacza to, że brakująca transakcja c6a66836.. ma nieco wyższy kurs niż 907e1f45... Przy sortowaniu ściśle według kursu, brakująca transakcja powinna zostać uwzględniona. Jednak w rzeczywistości jest mało prawdopodobne, aby 3 vbajty dodatkowego miejsca w bloku miały wpływ na całkowite opłaty w bloku.

Porównanie brakujących zatwierdzonych transakcji w bloku F2Pool 810727 z uwzględnionymi dodatkowymi transakcjami. Dodatkowe transakcje dodają 3 vBajty.

Blok 811791

W bloku F2Pools 811791 brakuje zatwierdzonej transakcji aa001ce6.... Podobnie jak w przypadku poprzedniej transakcji scalania, rozmiar tej transakcji wynosi 42459 vbajtów (169836 WU). Jeżeli opłata wynosi 446260 sat, uiszczana opłata wynosi 10,5 sat/vbajt. Kiedy blok 811791 dotrze do węzła obserwatora puli, transakcja będzie przechowywana w jego pamięci przez cztery minuty.

W tym bloku warto zauważyć, że brakuje 5 transakcji z zobowiązaniami bloku OP_RETURN Stacks. Jednakże F2Pool dodał własne zobowiązania blokowe Stacks. Zdarza się to często i było już zgłaszane. Dodatkowo F2Pool zawiera w swoim bloku dwie duże transakcje z zerową opłatą. Jednym z nich jest wyjście z bazy monet F2Pool przed integracją, a drugim jest transakcja płacąca górnikom. Jest to typowe zachowanie w przypadku bloków wydobywanych przez F2Pool.

Chociaż te dodatkowe transakcje zajmują ponad 400 kWU przestrzeni bloku, jest jeszcze wystarczająco dużo miejsca, aby uwzględnić transakcję aa001ce6... Blok zawiera 2,86 MWU transakcji, czyli mniej niż szybkość 10,5 sat/vbajtów aa001ce6.... Transakcja dotyczy mocy około 170 kWU, która mieści się w bloku. Na mempool.space transakcja jest oznaczona jako „usunięta”, co negatywnie wpływa na wskaźniki kondycji bloku.

Stawki przydzielane według pakietu transakcji w bloku 811791 obejmują stawki i znaczniki wagi dla brakujących transakcji.

Blok 811920

W bloku 811920 F2Pool nie zawiera transakcji 1cb3d6bc.., która wydaje zatwierdzone dane wyjściowe. Transakcja ta jest jednocześnie dużą transakcją fuzji. Ma rozmiar 43630 vbajtów (169836 WU), opłatę 44660 sat i opłatę płatną 10,23 sat/vbajt. Kiedy blok 811920 dotrze do węzła obserwatora puli, transakcja jest przechowywana w pamięci węzła przez prawie 2 minuty.

W bloku 811920 transakcja o mocy 1,44 MWU kosztowała mniej niż 10,23 sat/vbajt. Transakcja 170 kWU 1cb3d6bc.. zmieści się w tym bloku. Ponieważ transakcja znajduje się w pamięci mojego węzła dopiero od prawie dwóch minut, możliwe jest, że transakcja nie została przesłana do F2Pool do czasu zbudowania szablonu bloku. Transakcja pojawia się również jako „Ostatnia transmisja” na mempool.space. Zazwyczaj baseny wydobywcze próbują ustanowić dobre połączenie z siecią Bitcoin. Jeśli transakcja znajduje się w pamięci mempool.space iminingpool.observer, wówczas prawdopodobnie będzie znajdować się w pamięci F2Pool.

Stawki przydzielane według pakietu transakcji w bloku 811920 obejmują stawki i znaczniki wagi dla brakujących transakcji.

Blok 813357

W bloku 813357 F2Pool brakuje transakcji e49cdb60..9, która wydaje dane wyjściowe zatwierdzenia. Rozmiar tej transakcji scalania wynosi 43053 vbajtów (172209 WU). Jeżeli opłata wynosi 178504 sat, uiszczana opłata wynosi 4,15 sat/vbajt. Kiedy blok 813357 dotrze do węzła obserwatora puli, transakcja jest przechowywana w pamięci węzła przez ponad 25 minut.

W bloku 813357 odbyło się 684 transakcji kWU płacących mniej niż 4,15 sat/vbajt. Do tego bloku zmieści się transakcja 172 kWU e49cdb60.. Ponieważ transakcja znajdowała się w pamięci mojego węzła przez ponad 25 minut, jest mało prawdopodobne, że transakcja nie została jeszcze rozesłana do jednego z węzłów F2Pools. Ta transakcja jest również uwzględniona w szablonie bloku przestrzeni pamięci 813357.

Rozkład stawek według pakietu transakcji w bloku 813357, łącznie ze znacznikami stawek i wagi dla brakujących transakcji.

Zakończenie bloku F2Pools

Brakująca zatwierdzona transakcja w bloku 810727 ma nieco wyższą stawkę, ponieważ jest o 3 vbajty mniejsza niż uwzględniona transakcja. Chociaż w tym przypadku te 3 vbajty dodatkowego miejsca na blok nie będą miały wpływu na całkowitą opłatę, algorytm szablonu bloku Bitcoin Core wybierze transakcje z wyższymi opłatami. Duża liczba dodatkowych transakcji uwzględnionych w bloku 811791 nie będzie miała wpływu na brakujące zatwierdzone transakcje w bloku 811791. Być może został odfiltrowany z bloku. Audyt blokowy na mempool.space potwierdza to. Możliwe, że F2Pool nie jest jeszcze świadomy braku transakcji zatwierdzającej w bloku 811920. Jednak w przypadku dużych basenów wydobywczych na otrzymanie transakcji powinny wystarczyć 2 minuty. Zwłaszcza, że ​​mempool.space i Miningpool.observer wiedzą o tej transakcji. Ta zatwierdzona transakcja została najprawdopodobniej utracona z powodu filtrowania F2Pool. Podobnie jak w przypadku brakującej transakcji w bloku 811791, brakująca transakcja w bloku 813357 prawdopodobnie została odfiltrowana przez F2Pool.

Te cztery brakujące zatwierdzone transakcje prowadzą do wniosku, że F2Phi obecnie filtruje transakcje. Ponieważ widzimy tylko brakujące wydatki na transakcje z jednego adresu objętego sankcjami OFAC, 3PKiHs4GY4rFg8dpppNVPXGPqMX6K2cBML, nie możemy stwierdzić, czy F2Pool filtruje ten pojedynczy adres, czy wszystkie adresy objęte sankcjami OFAC.

podsumowując

W artykule omówiono sześć transakcji Bitcoin z adresów zatwierdzonych przez OFAC, których w blokach nie wykryło narzędzie Mining Pool Watcher. Dwie transakcje brakujące w blokach puli wydobywczej ViaBTC i Foundry USA były fałszywie pozytywne i nie zostały odfiltrowane. W bloku F2Pool mogły zostać odfiltrowane cztery transakcje zatwierdzone przez OFAC. Nasuwa się pytanie, dlaczego wywodząca się z Azji firma F2Pool była pierwszą pulą wydobywczą, która filtrowała transakcje w oparciu o amerykańskie sankcje OFAC.

Jednak sieć Bitcoin nadal działa normalnie. Filtrowanie transakcji według pojedynczej puli nie wpływa na odporność na cenzurę w całej sieci Bitcoin. Dalsze monitorowanie wyboru transakcji w ramach puli mogłoby pomóc w określeniu, kiedy więcej grup zacznie filtrować transakcje na podstawie takich czynników, jak sankcje OFAC. Pozwala także górnikom skierować swoją moc obliczeniową do tych pul, a jeśli nie zgadzają się z (niezapowiedzianą) polityką filtrowania puli, mogą podjąć świadomą decyzję o przejściu do innej puli.

  1. Ponieważ żaden z bloków z brakującymi transakcjami nie zbliża się do limitu sigop wynoszącego 80 000, nie będą one tutaj omawiane.​

  2. Blok ViaBTC 808660: 0000000000000000000017c18a76632d9e39e8c388ee1e4028ec75e50866c79c5

  3. Brakująca transakcja w bloku 808660: 262025e73812fc68b6514ea366abf463147176c7867e5853f117aded58c30e0e

  4. Transakcja cb9f2592.. wydobyta przez ViaBTC w bloku 809181 była transakcją Omnilayer, w ramach której zdeponowano 1528 USDT na ten adres we wrześniu 2020 r. Dane wyjściowe transakcji pod usankcjonowanym adresem 1ECeZBxCVJ8Wm2JSN3Cyc6rge2gnvD3W5K są podobne do transakcji 262025e7.. której brakuje w bloku 80866.

    Sprawdziłem niektóre z tych adresów i wszystkie zawierały salda USDT w OmniLayer, które zostały usunięte w wyniku tych transakcji. Chociaż to przypuszczenie, wygląda na to, że ktoś chciał wyczyścić pozostały USDT z kilku adresów, wysłać 20 tys. sat na każdy adres i zepsuć skanowanie, ponownie łącząc nowo utworzone dane wyjściowe w 262025e7... a następnie Wypróbowałem ponownie d11019a2... i pomyślnie przeskanowałem go za pomocą cb9f2592...

    W takim przypadku OFAC może utracić kilka adresów tego samego podmiotu na swojej liście.​

  5. Blok 813231 wydobyty przez Foundry ma skrót nagłówka: 00000000000000000001740d5fbb8bbc0b93d4bf46ca2011f642e92a0a8528b6

  6. Identyfikator zatwierdzonej transakcji, którego brakuje w bloku 813231, to: c9b5719131bfeac6378749243731c5e70f1ce56deabb7006a2b6539710866420

  7. Według danych OXT.me adres należy do portfela OKEX. Połączona transakcja c9b57191.. to połączony depozyt OKEX. Według OXT.me efektem fuzji są wypłaty z rynku Darknet Hydra. Więcej informacji można znaleźć tutaj.

  8. blok hash

  • 810727: 

    0000000000000000000350ae5ee08a4415146612af59a20021efeaf2ccda1498

  • 811791: 

    00000000000000000001631243b00b6c1019c0d833b6738e0c591dacaf4453d6

  • 811920: 

    00000000000000000002efd0fc8801b149f505b125308a35c584ed2600badf62

  • 813357: 

    00000000000000000000519c33dcdf5ca386524b2cbacb561f767e9663ac1669

9. Brakujące, zatwierdzone transakcje:

  • 810727: 

    c6a668364f19df0f2977f8ad7d0a3a73c5e32b55b6a7c650cafa37a5ab4b19f2

  • 811791: 

    aa001ce6e262b8b9042645ecdec9c84e9e2ad06f56dff6dd5ae42005fdea8da9

  • 811920: 

    1cb3d6bcc650c2891b68e7b205d601bcf5158e30e1926d0fd0c8385cb456b37b

  • 813357: 

    e49cdb6075c49b8fc37b3e922038e2a3205d75a9a1fb4b69f3568707594c2d3e

10. Rozmiar transakcji wybrany przez F2Pool dla bloku 810727 jest nieco większy, przez co opłata jest niższa:

  • 907e1f45334652dd344cf846639f3f9a2ee11b5489e2ffc2660ea543881b1bce

Prawdopodobnie dlatego, że w podpisie jest mniej wartości jednorazowych o niskim r, co powoduje, że podpis jest większy.​