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.
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.
Blok ViaBTC 808660: 0000000000000000000017c18a76632d9e39e8c388ee1e4028ec75e50866c79c5
Brakująca transakcja w bloku 808660: 262025e73812fc68b6514ea366abf463147176c7867e5853f117aded58c30e0e
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.
Blok 813231 wydobyty przez Foundry ma skrót nagłówka: 00000000000000000001740d5fbb8bbc0b93d4bf46ca2011f642e92a0a8528b6
Identyfikator zatwierdzonej transakcji, którego brakuje w bloku 813231, to: c9b5719131bfeac6378749243731c5e70f1ce56deabb7006a2b6539710866420
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.
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.
