Quando una catena si riscrive: il bug di consenso di Ravencoin e quanto vale davvero una conferma

·7 min di lettura·Di SSP Editorial Team
Copertina SSP Academy: il bug di consenso di Ravencoin e il significato di una conferma

Quando una catena si riscrive: il bug di consenso di Ravencoin e quanto vale davvero una conferma

Quasi tutti gli incidenti cripto riguardano le chiavi. Qualcuno ruba una frase seed con il phishing, un contratto ha un bug di reentrancy, un exchange perde il suo hot wallet. Il registro resta onesto; è solo un insieme preciso di monete a cambiare di mano contro la volontà del proprietario.

L'incidente Ravencoin di agosto apparteneva a un'altra categoria, e più rara. Nessuna chiave è stata toccata. A sfaldarsi è stato il registro stesso.

Che cosa è successo

Il 7 agosto 2026 alle 15:44 UTC, all'altezza di blocco 4.487.776, la rete ha accettato un blocco che sarebbe dovuto essere impossibile. Poi ne sono arrivati altri. In un tratto esaminato di 2.089 blocchi, 96 erano non validi. La falla è stata dimostrata pubblicamente l'11 agosto, quattro giorni dopo il primo blocco sfruttato — il che significa che la catena aveva prodotto silenziosamente blocchi contraffatti per quasi una settimana prima che qualcuno lo annunciasse.

RVN è caduto di circa il 20%, intorno a 0,0027 dollari. Upbit e Bitget hanno sospeso depositi e prelievi. Il progetto Ravencoin ha chiesto a exchange, explorer e operatori di nodi di aggiornare subito, e ha segnalato come potenzialmente reversibile ogni transazione confermata dopo il blocco 4.487.775.

È su quest'ultima frase che vale la pena fermarsi. Non «alcune transazioni sono state annullate». Tutte le transazioni, per tre giorni, erano provvisorie.

Il bug: un numero che nessuno controllava

Ravencoin mina con KAWPOW, un algoritmo di proof of work a forte uso di memoria derivato da ProgPoW. L'uso intensivo di memoria è tutto il punto: il lavoro dipende da un grande insieme di dati che va tenuto in RAM, ed è ciò che rende gli ASIC antieconomici e mantiene il mining alla portata delle GPU. Quell'insieme di dati viene rigenerato periodicamente, e quale serva si ricava dall'altezza del blocco.

L'intestazione del blocco porta un campo, nHeight, che dichiara dove il blocco si colloca nella catena. I nodi validavano la proof of work rispetto all'altezza che il blocco dichiarava. Non hanno mai verificato quella dichiarazione rispetto alla posizione reale del blocco nella catena.

Si poteva quindi mentire. Dichiari un'altezza dei primi tempi della catena, ottieni un insieme di dati piccolo, fai una frazione del lavoro e produci un blocco che un nodo vulnerabile accetta di buon grado come valido. La durezza in memoria che rende costoso minare Ravencoin diventava facoltativa se semplicemente dicevi di star minando un blocco diverso da quello reale. I blocchi non validi sono diventati, per usare le parole del progetto stesso, enormemente più economici da produrre di quelli legittimi.

Più fondamentale di così un bug di consenso non può essere. La proof of work è il meccanismo con cui una blockchain converte elettricità in definitività. Se la prova si può falsificare a basso costo, non c'è definitività: c'è solo la sua apparenza.

La cura è stata la riorganizzazione

Ecco la parte che da fuori sembra allarmante e che in realtà è corretta.

2Miners e RavenMiner, che insieme detengono la maggioranza dell'hash rate della rete, hanno annunciato di minare una catena che esclude il ramo sfruttato a partire da 4.487.776. Il software di nodo corretto (2Miners ha rilasciato la 4.6.1.1-hf1) rifiuta i blocchi la cui altezza dichiarata non corrisponde a quella reale, e fissa il blocco 4.487.775 come checkpoint: una linea oltre la quale la vecchia storia avvelenata non può più essere riaccettata.

Il risultato è stata una riorganizzazione della catena profonda circa tre giorni. Tre giorni di blocchi scartati e sostituiti.

Una riorganizzazione profonda è di norma il sintomo di un attacco. Qui era il rimedio. Il ramo sfruttato non era una storia legittima che qualcuno ha riscritto; era già non valido, e la rete ha deciso di smettere di fingere il contrario.

La cucitura si vede ancora oggi nella catena. Il blocco 4.487.775 è stato minato alle 15:43:57 UTC del 7 agosto. Il blocco 4.487.776 — quello onesto, sulla catena recuperata — porta il timbro delle 14:09:42 UTC del 10 agosto. Due giorni, ventidue ore e ventisei minuti tra blocchi consecutivi su una catena che punta al minuto. Quel divario è il tessuto cicatriziale.

Che cosa ha significato se avevi RVN

Se le tue monete stavano in un wallet che controlli e non hai transatto in quei giorni, non ti è successo nulla. Le chiavi non sono mai state il problema. I saldi precedenti al 4.487.775 non sono mai stati in discussione.

Se hai transatto in quella finestra, la tua transazione doveva essere riminata nella catena recuperata per sopravvivere. I pagamenti ordinari in genere ce l'hanno fatta: erano transazioni valide che semplicemente vivevano in blocchi scartati, e sono tornate nel mempool per essere confermate di nuovo. Ciò che non sopravvive a una riorganizzazione è tutto quello che dipendeva dalla permanenza della storia scartata. Il caso classico è un deposito su un exchange: le monete arrivano, vengono accreditate, scambiate o prelevate, e poi il deposito non è più avvenuto. È esattamente per questo che sospendere depositi e prelievi era la scelta giusta, e perché gli exchange che l'hanno fatto in fretta stavano proteggendo sé stessi e i propri utenti invece di farsi prendere dal panico. Fermarsi è una modalità di guasto che gli exchange possono e devono assorbire quando l'alternativa è accreditare denaro che poi evapora.

Che cosa promette davvero una conferma

Quasi tutti i wallet, il nostro compreso, mostrano un numero di conferme e ti lasciano dedurne la sicurezza. Vale la pena essere precisi su che cosa significhi quel numero, perché è proprio in incidenti come questo che l'imprecisione morde.

Una conferma non è una garanzia. È un'affermazione economica: riscrivere la storia da questo punto richiederebbe di rifare questa quantità di proof of work, e costerebbe più di quanto vale il pagamento. Sei conferme su Bitcoin sono una regola empirica sui costi, non una dimostrazione crittografica di permanenza.

Quell'affermazione porta dentro un presupposto nascosto: che produrre blocchi sia costoso. Il bug di Ravencoin ha rimosso il presupposto. Quando i blocchi non validi non costano quasi nulla, «tot conferme» smette di misurare qualsiasi cosa. Il numero sullo schermo continuava a salire; ciò che contava era diventato, senza avvisi, privo di significato.

La conclusione onesta non è «le conferme sono inutili». È che un conteggio di conferme è un'affermazione sulla salute delle regole di consenso di una catena, ed eredita ogni debolezza di quelle regole. Calibra la pazienza sul valore in gioco, e tratta un incidente di consenso in corso come un motivo per smettere del tutto di transare, non per aspettare un numero più grande.

Dove stava SSP

Gestiamo la nostra infrastruttura Ravencoin invece di leggere i saldi dall'API di qualcun altro, e questo fa sì che la domanda «SSP è sulla catena giusta?» abbia una risposta verificabile anziché rassicurante.

Il nostro nodo gira su Ravencoin 4.8.0 — ben oltre l'hard fork — e al momento in cui scriviamo si trova all'altezza 4.522.205 sulla catena recuperata. Entrambi i lati della cucitura corrispondono esattamente alla catena di riferimento:

  • 4.487.775 → 000000000002d64509e06e76ddbbe418c725291687ec62b41ecfc40386a091fd
  • 4.487.776 → 0000000000042bb50281ebb2f68d3f9143980b041178849015d95b067d52a841

Gli stessi hash dell'explorer ufficiale Ravencoin, lo stesso divario di tre giorni. Agli utenti SSP non è stato chiesto nulla, e Ravencoin in SSP funziona esattamente come prima.

I limiti onesti

Scriviamo questi pezzi per spiegare da che cosa protegge la nostra architettura, quindi conta essere chiari su che cosa non protegge.

Il multisig due-di-due protegge il lato della firma. Significa che nessun singolo dispositivo compromesso può muovere le tue monete, che ogni pagamento viene approvato due volte su due hardware indipendenti, e che un ladro con il tuo portatile non ha nulla. Queste proprietà hanno retto per tutto l'incidente, e sono le proprietà che contano per la stragrande maggioranza dei modi in cui le persone perdono cripto.

Nessuna di esse aiuta contro una riorganizzazione della catena. Non aiutano nemmeno un hardware wallet, un firmatario isolato, una passphrase o un quorum multisig di qualunque dimensione. I guasti di consenso stanno sotto tutto questo: sono una proprietà della rete, non della tua custodia. Chi sostiene che il proprio wallet ti protegge da un blocco cattivo ti sta vendendo qualcosa.

Ciò che un wallet può offrire onestamente è questo: far girare vera infrastruttura di nodi, tenerla aggiornata, ed essere trasparente su quale catena segue. È un impegno di manutenzione, non una garanzia crittografica, ed è la dimensione giusta di promessa.

L'altra cosa da portarsi via da agosto è un promemoria su dove abita davvero il rischio. Il bug di Ravencoin era nel codice da anni prima che qualcuno lo sfruttasse, e stava nel posto meno glamour immaginabile: un campo di un'intestazione che tutti davano per controllato da qualcun altro. Il difetto di entropia di Coldcard aveva la stessa identica forma — una riga di codice piccola, noiosa e mai esaminata, invisibile da fuori, che reggeva tutto ciò che le stava sopra.

Sono questi i bug che fanno male. Non gli attacchi crittografici esotici, ma il presupposto per cui nessuno ha scritto un test.

Condividi questo articolo

Articoli correlati