Lo scorso mese il developer 0xB10C ha scoperto che la mining pool statunitense stava filtrando transazioni legate a indirizzi sanzionati OFAC. Scoperto anche un bug in Bitcoin Core nel codice che crea i “block template”.
Nel mese di gennaio in Bitcoin sono emersi la potenziale pratica di censura da parte di una mining pool e un bug nel codice di Bitcoin Core che influisce sull’efficienza dei miner.
Censura delle transazioni da parte di una mining pool
Utilizzando il progetto miningpool-observer, 0xB10C ha monitorato la mempool e i blocchi di Bitcoin per identificare segnali di censura. Lo strumento confronta i template di blocco generati dal nodo Bitcoin Core con quelli effettivamente minati dalle pool. Durante l’analisi, 0xB10C ha rilevato 15 transazioni che non sono state incluse da alcune pool e che erano legate a indirizzi sanzionati dall’ OFAC (Office of Foreign Assets Control), suggerendo che alcune pool stessero filtrando transazioni legate a traffico considerato illecito. Una delle protagoniste è stata F2Pool.
Tutte le transazioni inizialmente escluse dai blocchi sono state confermate successivamente da altre pool. In più, l’esclusione di una transazione da un blocco non sempre indica censura. Diverse variabili potrebbero influenzare la mancata inclusione, come il fatto che i miner non abbiano ancora visto la transazione al momento della creazione del blocco, o che abbiano scelto di dare priorità a transazioni con commissioni più alte. Ci potrebbero poi essere pagamenti fuori band che modificano le priorità senza che vengano rilevati da miningpool-observer.
Un bug nel codice di Bitcoin Core e le implicazioni sul mining
Il secondo aggiornamento riguarda un bug trovato nel codice di Bitcoin Core, il quale gestisce la creazione dei template di blocco. In particolare, il bug riservava erroneamente 8.000 Weight Units (WU) per la transazione coinbase, mentre ne sarebbero bastati solo 4.000. Questo errore ha portato ad avere minor spazio per le restanti transazioni e blocchi più piccoli, riducendo così l’efficienza complessiva per i miner.
Quando si analizzano i blocchi minati nelle ultime settimane, si nota che la maggior parte delle mining pool continua a utilizzare il template di Bitcoin Core e quindi è impattata da questo bug. I dati mostrano che la maggior parte delle pool utilizza meno di 2.000 WU per la transazione coinbase, quindi il valore di default di Bitcoin Core di 4.000 WU è già ampiamente sufficiente. Bitcoin Core sceglie di usare un valore così grande per non rischiare che un miner accidentalmente crei un blocco troppo grande.
La questione diventa più complessa quando si considera la possibilità di correggere il bug. Se il problema venisse risolto, alcune mining pool che si affidano al valore errato di Bitcoin Core potrebbero incorrere nella produzione di blocchi invalidi, con il rischio di perdite economiche. Attualmente, solo la pool Ocean e un miner sconosciuto sembrano creare transazioni coinbase superiori ai 4.000 WU.
Inoltre, l’unica pool a creare blocchi più grandi di 3.920.000 WU (il limite imposto dal bug) è F2Pool, che sembra eseguire patch personalizzate su Bitcoin Core per ottimizzare la generazione di blocchi, permettendo loro di rimanere competitivi e più efficienti rispetto ad altre pool che si basano sul codice originale di Bitcoin Core.
Sia la censura delle transazioni da parte di alcune pool, che il bug nel codice di Bitcoin Core sono problemi che, pur avendo un impatto sulle singole operazioni di mining, non compromettono la sicurezza e la decentralizzazione di Bitcoin nel suo complesso.