Autor: 0xB10C Compiler: Songxue, Golden Finance

Proiectul meu, miningpool-observer, își propune să detecteze când pool-urile de minerit Bitcoin nu fac tranzacții pe care le-ar putea avea. În ultimele săptămâni, a detectat șase cheltuieli de tranzacție lipsă de la adresele aprobate de OFAC. Această postare explorează dacă aceste tranzacții au fost filtrate în mod intenționat deoarece au fost cheltuite de la adrese aprobate de OFAC sau dacă există alte explicații posibile pentru motivul pentru care aceste tranzacții au lipsit din bloc. Concluzia mea este că este posibil ca patru dintre tranzacții să fi fost filtrate.

În septembrie și octombrie 2023, fluxul RSS pentru instanța mea de observator al pool-ului de minerit a raportat 6 blocuri fără tranzacții aprobate de OFAC. Unul dintre blocuri a fost extras de bazinul minier ViaBTC, altul de fondul minier Foundry USA, iar celelalte patru de bazinul minier F2Pool. O tranzacție aprobată de OFAC este o tranzacție în care se efectuează o plată sau o plată de la o adresă aprobată de Biroul de Control al Activelor Străine al Departamentului Trezoreriei din SUA. Am un instrument care extrage o listă de adrese recunoscute de OFAC din lista Specially Designated Nationals (SDN) publicată de OFAC.

Există mai multe motive pentru care tranzacțiile ar putea lipsi dintr-un bloc. În general, tranzacțiile nu sunt distribuite uniform în rețea și nu există un mempool global din care să poată fi selectate tranzacțiile. Fiecare nod are propriul său set de tranzacții valide. Pool-urile miniere pot, de asemenea, să prioritizeze tranzacțiile care primesc plăți în afara benzii. Cu toate acestea, poate, de asemenea, să anuleze prioritizarea sau să filtreze tranzacțiile.

Scopul aici este de a determina dacă grupul minier a filtrat oricare dintre aceste șase tranzacții aprobate de OFAC sau dacă există alte explicații posibile pentru neapărarea lor în bloc. Rețineți că grupurile de minerit sunt libere să aleagă ce tranzacții să includă și pe care să le excludă. Cu toate acestea, pentru a analiza proprietățile rezistente la cenzură ale Bitcoin, este esențial să înțelegem care și câte pool-uri de minerit filtrează tranzacțiile.

Concluzionez că rapoartele de la miningpool-observer care indică faptul că tranzacțiile sancționate lipsă din blocurile ViaBTC și Foundry sunt cel mai probabil fals pozitive și nu rezultatul filtrării. Cu toate acestea, este posibil ca tranzacțiile care lipsesc din blocul F2Pool să fi fost filtrate.

ViaBTC bloc 808660

Blocul 808660..866c79c52 a fost extras de ViaBTC pe 21 septembrie 2023 și nu conține tranzacția 262025e7.. Această tranzacție combină 100 de intrări într-o singură ieșire. Ieșirea uneia dintre aceste intrări este plătită către 1ECeZBxCVJ8Wm2JSN3Cyc6rge2gnvD3W5K. Adresa a fost adăugată în lista SDN a OFAC pe 21 septembrie 2021.

Dimensiunea tranzacției este de 14,7 kvB, iar taxa plătită este de 25,18 sat/vByte. Ieșirea cheltuită de adresa sancționată este de 0,0002 BTC (20k sat) și a fost creată cu o zi înainte. Când ViaBTC a extras blocul 808660, tranzacția a stat în mempool-ul nodului meu timp de aproximativ 75 de minute. Nu are dependențe de tranzacțiile mempool.

Distribuția ratelor în șabloane și blocuri

Alocarea ratelor pentru blocuri și șablon pentru blocul 808660. Captură de ecran de la Miningpool.observer.

Verificând distribuția ratelor pentru blocul 808660 pe Miningpool.observer, se constată că ViaBTC ocupă aproximativ 1 MWU de spațiu bloc (4 MWU în total) și are tranzacții prioritare. Acestea pot proveni din acceleratorul de tranzacționare ViaBTC Bitcoin. Prioritizarea anumitor tranzacții înseamnă că tranzacțiile cu comisioane mai mici (cum ar fi cheltuielile cu tranzacțiile de la adresele sancționate aici) nu intră în bloc. Pentru acest bloc ViaBTC, instanța mea de observator al pool-ului de minerit listează 24 de tranzacții mari îmbinate la sfârșitul șablonului care nu au ajuns în bloc.

Lipsește lista tranzacțiilor mari comasate în blocul 808660

Concluzia trasă din aceasta este că ViaBTC nu a filtrat această tranzacție. Este înlocuit cu alte oferte prioritare. Acest lucru a fost dovedit de faptul că trei zile mai târziu, ViaBTC a extras o tranzacție care a cheltuit ieșiri de la aceeași adresă sancționată în blocul 809181.

Bloc 813231 de la Foundry USA

Blocul 813231..0a8528b6 a fost exploatat de Foundry USA pe 21 octombrie 2023 și nu conține tranzacția c9b57191.. Această tranzacție combină 150 de intrări într-o singură ieșire. Ieșirea uneia dintre intrări este plătită către 3PKiHs4GY4rFg8dpppNVPXGPqMX6K2cBML. Adresa a fost adăugată în lista SDN a OFAC pe 14 aprilie 2023.

Deoarece cele mai multe dintre cele 150 de intrări sunt scripturi P2SH cu 2 din 3 semnături multiple, tranzacțiile lipsă sunt mari, ajungând la 43842 vByte. Plătește 5,09 sat/vByte și nu se bazează pe tranzacții în mempool. În șablonul construit de nodul meu Bitcoin Core, această rată este suficientă pentru a-l clasa pe locul 161 din 2215 tranzacții. Cu toate acestea, când am aflat despre blocul 812331 al Foundry USA, acea tranzacție, împreună cu alte 18, fuseseră în mempool-ul meu doar pentru aproximativ 30 de secunde. Acest lucru face probabil ca Foundry să nu aibă șanse să includă această tranzacție în blocul lor, deoarece nu știe încă despre aceasta.

Propagarea tranzacției poate dura câteva secunde. În plus, majoritatea pool-urilor de minerit trimit mineri doar noi șabloane de bloc la fiecare 30 de secunde, apoi durează ceva timp pentru a trece la noi locuri de muncă. În plus, instrumentul miningpool-observer solicită noi șabloane de bloc la fiecare câteva secunde și efectuează o potrivire cel mai bun efort pe baza diferențelor minime în tranzacțiile pierdute și suplimentare (vezi metoda în Întrebări frecvente). Acest lucru face posibil ca noile tranzacții să aibă rezultate false pozitive timp de până la 60 de secunde sau cam asa ceva.

Exploratorul de blocuri mempool.space urmărește și diferențele dintre șablonul de bloc și blocul final difuzat de mineri. Ei arată că c9b57191.. este inclus în șablonul lor, dar lipsește din blocul real. Tranzacția a fost, de asemenea, marcată ca „difuzată recent” de către aceștia.

Tranzacția lipsă din blocul Foundry 813231 este considerată „difuzată recent” de mempool.space.

Concluzia care se poate trage din aceasta este că Foundry USA nu a filtrat tranzacția. Tranzacția a fost difuzată prea târziu pentru a fi inclusă în operațiunea minieră care a găsit până la urmă blocul 813231. În plus, Foundry USA a extras următorul bloc la altitudinea 813232 și a inclus tranzacțiile aprobate acolo.

Blocuri F2 Pool 810727, 811791, 811920, 813357

F2Pool minat bloc 810727..ccda1498 pe 5 octombrie 2023, blocurile 811791..af4453d6 si 811920..00badf62 pe 12 octombrie, iar blocul 813357..63ac1669 pe 22 octombrie. În fiecare bloc lipsește o tranzacție recunoscută. Fiecare dintre aceste tranzacții combină 150 de intrări 2 din 3 multisig într-o singură ieșire. Pentru fiecare tranzacție, una dintre intrări este plătită la ieșirea lui 3PKiHs4GY4rFg8dpppNVPXGPqMX6K2cBML. Acesta este același mod de integrare și aceeași adresă discutate în secțiunea anterioară. Niciuna dintre tranzacțiile pierdute nu depinde de tranzacțiile din mempool.

Bloc 810727

În blocul 810727, F2Pool nu conține tranzacția c6a66836.., care cheltuiește ieșirile aprobate. Cu 150 de intrări multisig 2 din 3, tranzacția este destul de mare la 44017 vBytes. Când F2Pool a extras blocul 810727, a plătit 446260 de sat și a rămas în pool-ul meu de memorie pentru nod aproape 4 ore. Selecția F2Pool conține tranzacția 907e1f45.., nu c6a66836... Tranzacția este, de asemenea, o tranzacție consolidată cu 150 de intrări și o ieșire, dar nu cheltuiește din ieșirea recunoscută. Plătește la fel ca 446260 sat, dar se întâmplă să fie cu 3 vBytes mai mare decât 44020 vByte. Aceasta înseamnă că tranzacția lipsă c6a66836.. are o rată puțin mai mare decât 907e1f45... Când sortați strict după rată, tranzacția lipsă ar fi trebuit inclusă. Cu toate acestea, în realitate, este puțin probabil ca cei 3 vByte de spațiu suplimentar pentru bloc să aibă un impact asupra taxelor totale dintr-un bloc.

Comparație între tranzacțiile aprobate lipsă din blocul F2Pool 810727 cu tranzacțiile suplimentare incluse. Tranzacțiile suplimentare adaugă 3 vBytes.

Bloc 811791

Tranzacția aprobată aa001ce6... lipsește din blocul F2Pools 811791. Similar cu tranzacția anterioară de îmbinare, dimensiunea acestei tranzacții este de 42459 vBytes (169836 WU). Dacă taxa este de 446260 sat, taxa plătită este de 10,5 sat/vByte. Când blocul 811791 ajunge la nodul de observator al pool-ului, tranzacția a fost reținută în mempool-ul său timp de patru minute.

În acest bloc, este de remarcat faptul că lipsesc 5 tranzacții cu angajamente de bloc OP_RETURN Stacks. Cu toate acestea, F2Pool și-a inserat propriile angajamente de bloc Stacks. Acest lucru se întâmplă frecvent și a fost raportat înainte. În plus, F2Pool include două tranzacții mari fără comisioane în blocul său. Una este ieșirea F2Pool coinbase înainte de integrare, iar cealaltă este tranzacția care plătește minerilor. Acesta este un comportament comun pentru blocurile minate de F2Pool.

Deși aceste tranzacții suplimentare ocupă mai mult de 400 kWU de spațiu în bloc, există încă suficient spațiu pentru a include tranzacția aa001ce6... Blocul conține 2,86 MWU de tranzacții, ceea ce este mai mic decât rata de 10,5 sat/vByte a aa001ce6.... Tranzacția este de aproximativ 170 kWU, care se încadrează în bloc. Pe mempool.space, tranzacția este marcată ca „ștersă”, ceea ce afectează negativ valorile de sănătate ale blocului.

Tarifele alocate pe pachetul de tranzacții în blocul 811791 includ ratele și marcatorii de pondere pentru tranzacțiile lipsă.

Bloc 811920

În blocul 811920, F2Pool nu conține tranzacția 1cb3d6bc.., care cheltuiește ieșirile aprobate. Această tranzacție este, de asemenea, o tranzacție de fuziune mare. Are o dimensiune de 43630 vBytes (169836 WU), o taxă de 44660 sat și o taxă plătită de 10,23 sat/vByte. Când blocul 811920 ajunge la nodul de observator al pool-ului, tranzacția a fost reținută în mempool-ul nodului timp de aproape 2 minute.

În blocul 811920, o tranzacție de 1,44 MWU a plătit mai puțin de 10,23 sat/vByte. Tranzacția de 170 kWU 1cb3d6bc.. se va încadra în acest bloc. Deoarece tranzacția a fost în mempool-ul nodului meu doar timp de aproape două minute, este posibil ca tranzacția să nu fi fost propagată la F2Pool până când au creat șablonul bloc. Tranzacția apare și ca „Difuzare recentă” pe mempool.space. De obicei, pool-urile miniere încearcă să stabilească o conexiune bună la rețeaua Bitcoin. Dacă tranzacția este în mempool.space și miningpool.observer, atunci tranzacția este probabil să fie în mempool-ul F2Pool.

Tarifele alocate pe pachetul de tranzacții din blocul 811920 includ rate și indicatori de greutate pentru tranzacțiile lipsă.

Bloc 813357

În blocul 813357 din F2Pool, lipsește tranzacția e49cdb60..9 care cheltuiește rezultatul de aprobare. Dimensiunea acestei tranzacții de îmbinare este de 43053 vBytes (172209 WU). Dacă taxa este 178504 sat, taxa plătită este de 4,15 sat/vByte. Când blocul 813357 ajunge la nodul de observator al pool-ului, tranzacția a fost reținută în mempool-ul nodului mai mult de 25 de minute.

În blocul 813357, au existat 684 kWU tranzacții plătind mai puțin de 4,15 sat/vByte. Tranzacția de 172 kWU e49cdb60.. se va încadra în acest bloc. Deoarece tranzacția se află în mempool-ul nodului meu de peste 25 de minute, este puțin probabil ca tranzacția să nu fi propagat încă la unul dintre nodurile F2Pools. Această tranzacție este inclusă și în șablonul pentru blocul mempool-space 813357.

Distribuția ratelor în funcție de pachetul de tranzacții în blocul 813357, inclusiv marcatorii ratei și ponderii pentru tranzacțiile lipsă.

F2Pools blochează concluzia

Tranzacția aprobată lipsă din blocul 810727 are o rată puțin mai mare, deoarece este cu 3 vBytes mai mică decât tranzacția inclusă. În timp ce în acest caz, acești 3 vBytes de spațiu suplimentar în bloc nu vor avea niciun impact asupra taxei totale, algoritmul șablonului de bloc Bitcoin Core va selecta tranzacțiile cu taxe mai mari. Numărul mare de tranzacții suplimentare incluse în blocul 811791 nu va avea niciun impact asupra tranzacțiilor aprobate lipsă din blocul 811791. Este posibil să fi fost filtrat din bloc. Auditul blocului de pe mempool.space este de acord cu acest lucru. Este posibil ca F2Pool să nu cunoască încă tranzacția de avizare lipsă din blocul 811920. Cu toate acestea, pentru bazinele miniere mari, 2 minute ar trebui să fie suficiente pentru a primi tranzacții. Mai ales că mempool.space și Miningpool.observer știu despre această afacere. Această tranzacție aprobată a fost probabil pierdută din cauza filtrării F2Pool. Similar cu tranzacția lipsă din blocul 811791, tranzacția lipsă din blocul 813357 este probabil să fi fost filtrată de F2Pool.

Aceste patru tranzacții sancționate lipsă duc la concluzia că F2Phi filtrează tranzacțiile în prezent. Întrucât vedem cheltuieli de tranzacție lipsă doar de la o singură adresă aprobată de OFAC, 3PKiHs4GY4rFg8dpppNVPXGPqMX6K2cBML, nu putem spune dacă F2Pool filtrează acea singură adresă sau toate adresele aprobate de OFAC.

în concluzie

Articolul discută șase cheltuieli de tranzacții Bitcoin de la adrese aprobate de OFAC despre care instrumentul Mining Pool Watcher a detectat că lipsesc din blocuri. Cele două tranzacții care lipsesc din blocurile de fonduri miniere ViaBTC și Foundry USA au fost fals pozitive și nu au fost filtrate. Este posibil ca patru tranzacții aprobate de OFAC care lipsesc din blocul F2Pool să fi fost filtrate. Acest lucru ridică întrebarea de ce F2Pool, originar din Asia, a fost primul pool minier care a filtrat tranzacțiile pe baza sancțiunilor OFAC din SUA.

Cu toate acestea, rețeaua Bitcoin continuă să funcționeze normal. Filtrarea tranzacțiilor după un singur pool nu afectează rezistența la cenzură în întreaga rețea Bitcoin. O monitorizare suplimentară a selecției tranzacțiilor unui pool ar putea identifica când mai multe pool-uri încep să filtreze tranzacțiile pe baza unor factori precum sancțiunile OFAC. De asemenea, permite minerilor să își orienteze puterea de calcul către aceste pool-uri și, dacă nu sunt de acord cu politica de filtrare (neanunțată) a pool-ului, pot lua o decizie informată de a trece la un alt pool.

  1. Deoarece niciunul dintre blocurile cu tranzacții lipsă nu se apropie de limita sigop de 80.000, acestea nu vor fi discutate aici.​

  2. ViaBTC bloc 808660: 000000000000000000017c18a76632d9e39e8c388ee1e4028ec75e50866c79c5

  3. Lipsește tranzacție în blocul 808660: 262025e73812fc68b6514ea366abf463147176c7867e5853f117aded58c30e0e

  4. Tranzacția cb9f2592.. extrasă de ViaBTC în blocul 809181 a fost o tranzacție Omnilayer care a depus 1528 USDT la această adresă în septembrie 2020. Ieșirea tranzacției către adresa sancționată 1ECeZBxCVJ8Wm2JSN3Cyc6rge2gnvD3W5K este similară cu tranzacția 262025e7.. lipsește în blocul 80866.

    Am verificat unele dintre aceste adrese și toate conțineau solduri USDT pe OmniLayer care au fost șterse în aceste tranzacții. Deși aceasta este o presupunere, se pare că cineva a vrut să șteargă USDT-ul rămas de pe o grămadă de adrese, să trimită 20.000 de sat la fiecare adresă și să strice scanarea prin îmbinarea ieșirii nou create din nou în 262025e7... și apoi ei Am încercat din nou d11019a2... și l-am scanat cu succes cu cb9f2592...

    Dacă acesta este cazul, atunci OFAC poate pierde o grămadă de adrese pentru aceeași entitate de pe lista sa.​

  5. Blocul 813231 extras de Foundry are hash antet: 00000000000000000001740d5fbb8bbc0b93d4bf46ca2011f642e92a0a8528b6

  6. Codul tranzacției aprobate care lipsește în blocul 813231 este: c9b5719131bfeac6378749243731c5e70f1ce56deabb7006a2b6539710866420

  7. Conform datelor OXT.me, adresa aparține portofelului OKEX. Tranzacția fuzionată c9b57191.. este depozitul fuzionat OKEX. Potrivit OXT.me, rezultatul fuziunii este plățile de pe piața Hydra darknet. Mai multe informații pot fi găsite aici.

  8. blocați hash

  • 810727: 

    0000000000000000000350ae5ee08a4415146612af59a20021efeaf2ccda1498

  • 811791: 

    00000000000000000001631243b00b6c1019c0d833b6738e0c591dacaf4453d6

  • 811920: 

    00000000000000000002efd0fc8801b149f505b125308a35c584ed2600badf62

  • 813357: 

    0000000000000000000519c33dcdf5ca386524b2cbacb561f767e9663ac1669

9. Tranzacții lipsă, aprobate:

  • 810727: 

    c6a668364f19df0f2977f8ad7d0a3a73c5e32b55b6a7c650cafa37a5ab4b19f2

  • 811791: 

    aa001ce6e262b8b9042645ecdec9c84e9e2ad06f56dff6dd5ae42005fdea8da9

  • 811920: 

    1cb3d6bcc650c2891b68e7b205d601bcf5158e30e1926d0fd0c8385cb456b37b

  • 813357: 

    e49cdb6075c49b8fc37b3e922038e2a3205d75a9a1fb4b69f3568707594c2d3e

10. Mărimea tranzacției selectată de F2Pool pentru blocul 810727 este puțin mai mare, deci taxa este mai mică:

  • 907e1f45334652dd344cf846639f3f9a2ee11b5489e2ffc2660ea543881b1bce

Probabil pentru că există mai puține non-uri joase în semnătură, ceea ce face semnătura mai mare.​