Il bug di inflazione è ancora un pericolo per più della metà di tutti i nodi completi di Bitcoin

Le cifre pubblicate dallo sviluppatore di core bitcoin Luke Dashjr mostrano che più della metà dei nodi completi nella rete bitcoin sta ancora eseguendo un software client vulnerabile al bug di inflazione scoperto a settembre 2023.

Questa rivelazione rappresenta un pericolo per la rete, poiché le vulnerabilità del software sono un pericolo evidente e presente per la fedeltà di bitcoin (BTC). Ora che la criptovaluta al primo posto è nel bel mezzo di una corsa dei prezzi positiva, è forse importante che vengano prese misure per sradicare definitivamente il problema del bug dell’inflazione.

La maggior parte dei nodi completi di bitcoin è ancora vulnerabile al bug di inflazione

Come riportato da Cointelegraph l’8 maggio, ricerca di Dashjr mostra che oltre il 50% dei nodi completi sulla rete bitcoin sta ancora eseguendo versioni software del client bitcoin suscettibili al bug di inflazione.

Tuttavia, da quel momento, la cifra è scesa leggermente dal 60% circa al 54%. Ciò significa che, negli ultimi giorni, alcuni nodi completi sono stati aggiornati a un aggiornamento software client più recente.

Nel settembre 2023, gli sviluppatori hanno scoperto per la prima volta il bug dell’inflazione, che, in teoria, potrebbe consentire ai minatori di gonfiare l’offerta totale di bitcoin oltre i 21 milioni di BTC spendendo più output di transazione non spesi (UTXO) nella stessa transazione.

Data la natura del bug, gli sviluppatori lo hanno mantenuto segreto, rilasciando silenziosamente una nuova versione del client. Un estratto dal rapporto CVE (Common Vuldability and Exposures) di settembre 2023 pubblicato da Bitcoincore.org legge:

“Al fine di incoraggiare aggiornamenti rapidi, è stata presa la decisione di correggere immediatamente e rivelare la vulnerabilità Denial of Service meno grave, in concomitanza con il contatto con minatori, aziende e altri sistemi interessati, ritardando la pubblicazione dell’intero numero per dare tempi ai sistemi aggiornare. Il 20 settembre un post in un forum pubblico ha riportato il pieno impatto e sebbene sia stato rapidamente ritirato, il reclamo è stato ulteriormente diffuso “.

Un aspetto fondamentale dell’analisi di Dashjr è il numero totale di nodi completi sulla rete bitcoin. La maggior parte delle fonti della letteratura bitcoin indica che il numero di numeri di nodi completi si avvicina a 10.000.

Tuttavia, Dashjr ritiene che questo numero sia più vicino a 100.000 e che la ragione di ciò incongruenza sta nel fatto che molte fonti tengono conto solo dei nodi in ascolto attivo sulla rete.

Chiamati nodi di ascolto, questi nodi completi hanno connessioni a porte aperte che possono essere esaminate. Tuttavia, non tutti i full-nodes sono nodi in ascolto; alcuni, nascosti dietro firewall o configurati per non ascoltare attivamente nuove connessioni, non hanno connessioni a porte aperte facilmente individuabili.

La gravità del bug di inflazione

Per comprendere la gravità del bug di inflazione, è importante conoscere il meccanismo attraverso il quale il problema potrebbe essere sfruttato. Questo processo comporterebbe un riepilogo che spieghi l’attacco a doppia spesa, il bug di inflazione stesso e i problemi che potrebbero sorgere se non selezionati.

Il successo iniziale di Bitcoin si presta molto alla brillante soluzione di Satoshi Nakamoto – il creatore di bitcoin – al problema della doppia spesa che aveva impedito il successo della distribuzione e dell’implementazione dei precedenti sistemi di valuta virtuale.

Creando un libro mastro immutabile con nodi che convalidano le transazioni, è diventato quasi teoricamente impossibile spendere lo stesso UTXO in due transazioni diverse.

La gravità del bug di inflazione

Tuttavia, cosa succede quando, invece di spendere l’UTXO in due transazioni diverse, un malintenzionato tenta di utilizzare una transazione per spendere UTXO più volte? A causa del modo in cui bitcoin è progettato per funzionare, questa azione significherebbe creare nuove monete virtualmente dal nulla, gonfiando così l’offerta totale – ergo, il bug dell’inflazione.

Diversi aggiornamenti successivi al software bitcoin hanno cercato di migliorare l’immunità della blockchain al primo tipo di attacco a doppia spesa. Tuttavia, dalla versione Core 0.14.x del client software bitcoin, gli sviluppatori hanno iniziato a notare che esisteva la possibilità di una vulnerabilità DDoS (Distributed Denial of Service) nel client software.

Il bug ha consentito a un malintenzionato di bloccare i nodi che eseguivano la versione del software 0.14.x tentando di spendere lo stesso UTXO due volte. In questa iterazione del bug, l’obiettivo sarebbe stato quello di mandare in crash quanti più nodi possibile e non necessariamente gonfiare l’offerta totale di bitcoin.

Nel tentativo di risolvere il problema, il successivo aggiornamento rilasciato, 0.15.0, includeva funzionalità che inavvertitamente consentivano a un malintenzionato di spendere due volte lo stesso UTXO in una transazione. Invece di causare un arresto anomalo del sistema, questo nuovo bug ha indotto i client software meno recenti a riconoscere tali transazioni a doppia spesa come valide.

Dopo la scoperta, gli sviluppatori hanno nuovamente rilasciato una nuova versione del software prima di annunciarlo alla più ampia comunità di criptovalute. Tuttavia, diversi mesi dopo che il problema avrebbe dovuto essere risolto, sembra che più della metà dei nodi completi sulla rete stia ancora eseguendo implementazioni client vulnerabili al bug.

Cointelegraph ha parlato con Dashjr delle implicazioni del bug di inflazione, a cui lo sviluppatore di bitcoin ha risposto:

“Il bug dell’inflazione è in pratica un rischio a livello di rete. Consentirebbe a un attacco minatore del 51% di causare inflazione (cosa che normalmente questi attacchi non possono fare). La catena inflazionistica sarebbe accettata solo da nodi vulnerabili e portafogli leggeri “.

Espandendo ulteriormente i pericoli posti dal bug, Dashjr ha continuato dicendo:

“Rende quello che si pensava fosse un nodo completo, in realtà solo un portafoglio leggero sotto questo aspetto. Se più di una piccola minoranza utilizza portafogli leggeri, i minatori devono inventare le regole “.

Tutto quello che i nodi devono fare è aggiornare

Ogni volta che gli sviluppatori scoprono un bug di questa natura, la soluzione è sempre quella di far aggiornare i nodi a una versione più recente del software che si spera abbia funzionalità che eliminano il problema. A volte, questo processo può portare all’emergere di un altro problema, come visto nel 2023, quando la risoluzione del bug DDoS ha causato la manifestazione del bug di inflazione.

Quando è stato chiesto da Cointelegraph cosa si dovrebbe fare per la situazione, la risposta di Dashjr è stata semplice e diretta al punto:

“Tutti che eseguono l’aggiornamento a un nodo completo fisso.”

Mentre questo processo è in corso, la rete bitcoin deve affrontare rischi credibili derivanti dal fatto che metà dei nodi completi sono vulnerabili al bug dell’inflazione? La risposta alla domanda potrebbe risiedere in chi detiene veramente il vero potere nella rete: minatori o sviluppatori?

Nel 2023, lo sviluppatore di bitcoin, Jimmy Song espresso il punto di vista che i minatori canaglia che cercano di trarre vantaggio dal bug dell’inflazione troverebbero quasi impossibile avere successo. Innanzitutto, Song ha affermato che non tutti i nodi completi eseguono il core bitcoin, molti preferiscono distribuire iterazioni personalizzate del client bitcoin.

Il fatto che alcuni nodi non eseguano il client principale diminuisce già l’attacco perché tali nodi rifiuteranno il blocco contenente gli UTXO gonfiati. Se un numero significativo di minatori rifiuta il blocco contaminato, è probabile che si verifichi una divisione della catena.

Nel 2010, durante il “incidente di overflow del valore“Scoperto nel blocco 74.638, gli sviluppatori hanno pubblicato un nuovo aggiornamento per il client in meno di cinque ore, risolvendo il problema. Il blocco in questione conteneva una transazione che creava circa 184 miliardi di BTC per tre indirizzi, con due indirizzi che ricevevano 92,2 miliardi di BTC e il minatore responsabile della risoluzione del blocco che riceveva 0,01 BTC.

La discrepanza è durata solo per i successivi 53 blocchi e, per altezza blocco 74.691, tutte le tracce del valore di overflow non esistevano più sulla rete. I nodi che inizialmente hanno accettato la divisione della catena con il blocco contaminato hanno presto iniziato a tornare alla divisione della catena che non conteneva il blocco gonfiato.

Lo stesso vale per il bug dell’inflazione: una volta che si verifica la divisione, gli sviluppatori e gli altri sulla rete inizierebbero a notare, come ha spiegato Song in questo estratto del suo post sul blog, che recita:

“A causa di queste irregolarità, le persone sulla rete avrebbero presto individuato il problema, probabilmente avrebbero avvisato alcuni sviluppatori e gli sviluppatori principali avrebbero risolto il problema. Se ci fosse un bivio, il consenso sociale a quel punto su quale sia la catena giusta inizierebbe a essere discusso e la catena che crea un’inflazione inaspettata sarebbe probabilmente persa. Se ci fosse stato uno stallo, probabilmente ci sarebbe stato un rollback volontario per punire l’aggressore. “

Per Song, data l’economia dell’attacco, è improbabile che minatori disonesti vogliano utilizzare una tattica del genere. Tuttavia, l’educatore di bitcoin ha affermato che gli hacker che lavorano per paesi con sentimenti anti-bitcoin potrebbero sfruttare il bug per distruggere la rete.