Glossario / Mining e consenso
Selfish mining
- Che cos'è il selfish mining?
- Il selfish mining è una strategia in cui un miner nasconde un blocco risolto e lo rilascia solo per invalidare quello di un rivale, guadagnando più di quanto la sua quota di hashrate dovrebbe fruttare.
Trattenere un blocco risolto è di norma controproducente, poiché un rivale può pubblicare per primo e il tuo lavoro diventa privo di valore. Un articolo del 2013 di Ittay Eyal e Emin Gun Sirer ha dimostrato che oltre la soglia di circa un terzo dell'hashrate della rete l'aritmetica si inverte, e che con un vantaggio di propagazione la soglia scende verso il 25 per cento. Nulla di simile è stato documentato sulla main chain del bitcoin.
Come funziona
Il selfish mining converte un vantaggio privato in elettricità sprecata per tutti gli altri.
Un miner egoista trova un blocco e non dice nulla. Da lì la mossa si ramifica. Se il resto della rete pubblica un blocco mentre quello segreto è ancora nascosto, il miner egoista rilascia subito il proprio e forza una corsa tra due punte di pari altezza, che può vincere se una parte sufficiente dell'hashrate onesto riceve per caso prima il suo blocco. Se invece trova in privato un secondo blocco, ora ha un vantaggio di due blocchi e può lasciare che i miner onesti continuino a lavorare su un ramo già condannato. Quando finalmente pubblicano, la coppia nascosta viene rilasciata, il loro blocco viene scartato e il loro lavoro non ha fruttato nulla.
Il guadagno è relativo, non assoluto. Ogni blocco onesto scartato riduce il numero totale di blocchi che la rete accetta, quindi nel breve periodo il miner egoista guadagna meno bitcoin di quanto avrebbe guadagnato giocando pulito. Ciò che cambia è il rapporto: prende una fetta più grande di una torta più piccola. La torta viene poi ripristinata dall'aggiustamento della difficoltà, che ricalcola ogni 2.016 blocchi e abbassa l'obiettivo perché i blocchi sono arrivati lentamente. Solo dopo quel ricalcolo, fino a due settimane più tardi, la strategia ripaga. Chiunque tenti di attuarla deve quindi finanziare due settimane di ricavi ridotti mentre si comporta in un modo statisticamente visibile dall'esterno.
La soglia dipende dalla topologia della rete, che è la parte dell'articolo che quasi tutti i riassunti omettono. La variabile rilevante è quale frazione dei miner onesti costruisce sul blocco egoista durante una corsa. Se quella frazione è zero, il selfish mining richiede più di un terzo dell'hashrate totale per essere redditizio. Se è la metà, basta un quarto. Se un miner potesse raggiungere in modo affidabile ogni peer per primo, la quota redditizia scenderebbe molto di più, ed è per questo che la velocità di propagazione dei blocchi è una proprietà di sicurezza e non un dettaglio di prestazioni.
Dove lo vedi
Il selfish mining compare nella letteratura accademica e nella progettazione del software di relay, non nella storia osservata del bitcoin.
Tre fatti pratici lo tengono lì. La propagazione è quasi istantanea: il relay di blocchi compatti, aggiunto in Bitcoin Core 0.13 nel 2016, invia un breve profilo di un blocco che i peer ricostruiscono dalle proprie mempool, e le reti di relay dedicate riducono il resto, quindi la finestra in cui un blocco trattenuto vince una corsa è minima. I pool sono anche pubblici. Quasi ogni blocco porta un tag del pool nel suo script coinbase, e un pool che producesse uno schema anomalo di rilasci all'ultimo secondo verrebbe identificato rapidamente dall'hashrate che non possiede, poiché i suoi clienti possono puntare le proprie macchine altrove in pochi minuti.
Il termine viene anche confuso con due concetti vicini. Il block withholding è un sabotaggio mirato a un pool, in cui un partecipante invia share parziali ma scarta quella che risolve davvero un blocco, con un costo per il pool e non per la rete. Un attacco del 51% riscrive la storia confermata. Il selfish mining non fa né l'uno né l'altro: non infrange alcuna regola di consenso, non annulla alcun pagamento e ruba ricavi ad altri miner, non bitcoin agli utenti. Per chi compra o detiene bitcoin, l'unico sintomo sarebbe un tasso più alto di blocchi obsoleti, e le conferme continuerebbero a significare esattamente ciò che significano oggi.