Vai al contenuto
buybitcoinsmart

Glossario / Mining e consenso

Riorganizzazione della catena

Noto anche come Reorg, Riorganizzazione della blockchain.

Che cos'è una riorganizzazione della catena?
Una riorganizzazione della catena è ciò che accade quando il tuo nodo scopre un ramo con più lavoro accumulato, scollega i blocchi che aveva accettato e ricostruisce la punta della catena lungo il nuovo ramo.

I nodi non seguono la catena che hanno visto per prima. Seguono quella che porta la maggior quantità di proof of work e, quando compare un ramo migliore, tornano indietro fino al punto di biforcazione e ricostruiscono la catena da lì in avanti. Quasi ogni riorganizzazione della catena principale di bitcoin ha una profondità di un blocco e si conclude in pochi secondi; la più profonda mai registrata, 24 blocchi a marzo 2013, è stata causata da un bug software e non da un attaccante.

Come funziona

Una riorganizzazione della catena si articola in tre passaggi, e un nodo li esegue tutti da solo, senza consultare nessuno.

Per prima cosa risale dalla sua punta attuale fino all'ultimo blocco che i due rami hanno in comune, annullando ogni blocco lungo il percorso: gli output creati da quel blocco vengono rimossi dall'insieme degli output non spesi, gli output che ha consumato vengono ripristinati e le sue transazioni tornano nella mempool. Poi collega in ordine i blocchi del ramo concorrente, validando ciascuno esattamente come se fosse appena arrivato. Infine ricalcola la mempool, scartando tutto ciò che ora è stato confermato e conservando tutto ciò che non lo è.

È nel secondo passaggio che risiede la sicurezza. Avere più lavoro è necessario ma non sufficiente. Se un solo blocco del ramo sfidante non supera un singolo controllo di consenso, il nodo si ferma, segna quel ramo come non valido e mantiene la catena che aveva già. Un miner con una potenza di hash illimitata non può comunque fare in modo che un nodo accetti un blocco che paga a se stesso troppo o che spende due volte un output.

La regola è il maggior lavoro accumulato, non la catena più lunga. Il lavoro si somma a partire dalla difficoltà con cui è stato minato ogni blocco, quindi un ramo con meno blocchi minati a una difficoltà maggiore può superarne uno più lungo. Su bitcoin le due misure coincidono quasi sempre, perché la difficoltà cambia solo ogni 2.016 blocchi.

La profondità è ciò che distingue la routine dall'allarme. Una profondità di un blocco è manutenzione ordinaria. Bitcoin Core considera rilevante qualunque evento sostanziale e invia all'operatore un avviso di fork con molto lavoro quando vede un ramo concorrente divergere di più di sei blocchi dalla catena attiva.

Perché questo conta quando compri bitcoin

I conteggi delle conferme sono una scommessa sulla profondità delle riorganizzazioni, e ogni piattaforma che usi ne ha fatta una in silenzio per tuo conto.

Un exchange che accredita un deposito dopo tre blocchi ha deciso che non vale la pena di assicurarsi contro un annullamento a tre blocchi di profondità. Uno che ne aspetta sei ha attribuito al rischio un prezzo più alto. Nessuno dei due numeri viene dal protocollo; entrambi sono scelte di policy, ed è per questo che lo stesso deposito si accredita in venti minuti su una piattaforma e in più di un'ora su un'altra. Quando sposti bitcoin tra gli exchange recensiti da questo sito, vale la pena verificare quella differenza prima di supporre che qualcosa sia andato storto.

Le tue chiavi non sono toccate da nulla di tutto questo. Una riorganizzazione può cambiare quali transazioni sono nella catena e in quale ordine, ma non può produrre una firma, quindi i bitcoin che si trovano in un wallet che gestisci tu non fanno parte dell'esposizione. Ciò che si trova nel raggio d'impatto è il valore in movimento: un deposito accreditato ma non ancora sepolto, un pagamento che hai accettato per della merce, uno scambio peer-to-peer in cui hai rilasciato i contanti contro una sola conferma.

La storia offre un avvertimento istruttivo. Il 4 luglio 2015, diversi grandi pool stavano costruendo su blocchi che non avevano validato, una pratica nota come SPV mining, e produssero una catena di sei blocchi che si rivelò non valida. Bitcoin.org pubblicò un avviso che consigliava agli utenti di attendere 30 conferme finché la situazione non fosse stata risolta. La lezione non era che bitcoin è fragile; era che la profondità necessaria dipende da cosa sta andando storto, e che una conferma non è mai molto.

Se detieni anche criptovalute più piccole basate sulla proof of work, tratta la loro storia di riorganizzazioni come una questione del tutto separata. Gli exchange richiedono molte più conferme per le catene che sono state effettivamente riorganizzate, e questo requisito è un segnale pubblico utile su quanto sia davvero sicura una catena.

La riorganizzazione di 24 blocchi di marzo 2013

La riorganizzazione più profonda mai subita dalla catena principale di bitcoin è stata causata da due versioni del software in disaccordo su un blocco che entrambe avrebbero dovuto accettare.

Bitcoin 0.8, rilasciato a febbraio 2013, sostituì il motore di archiviazione Berkeley DB con LevelDB. L'11 marzo arrivò il blocco 225.430 con un numero insolitamente elevato di input. I nodi che eseguivano la 0.8 lo accettarono. I nodi che eseguivano la 0.7 incapparono in un limite di lock di Berkeley DB che la loro configurazione non aveva mai superato e lo rifiutarono. La rete si divise in due, con ciascuna parte assolutamente certa che l'altra avesse torto.

Gli sviluppatori si coordinarono su IRC nel giro di un'ora e presero una decisione scomoda: chiedere ai pool di tornare alla 0.7, abbandonando deliberatamente il ramo con più lavoro, perché era quello che la maggioranza dei nodi in funzione non riusciva a seguire. La divisione durò circa sei ore. Quando la catena della 0.7 prese il sopravvento, il ramo scartato arrivò a 24 blocchi. Un processore di pagamenti, OKPay, segnalò di aver subito una doppia spesa durante quella finestra.

La correzione arrivò giorni dopo con la 0.8.1, che fece imitare ai nuovi nodi il vecchio limite fino a una data di passaggio coordinata. Il BIP50 documenta l'intero episodio in dettaglio ed è la cosa migliore da leggere su come bitcoin gestisce un'emergenza reale. È anche il motivo per cui la riorganizzazione più profonda nella storia di bitcoin è una storia di configurazione di un database e non di potenza di mining.

Riorganizzazione della catena vs hard fork

Una riorganizzazione della catena avviene all'interno di un unico insieme di regole e si conclude con tutti di nuovo sulla stessa catena. Un hard fork cambia le regole in modo che i due rami non possano mai riconciliarsi, ed entrambi continuano a crescere come asset separati, come è accaduto a Bitcoin Cash il 1º agosto 2017. L'una è un disaccordo temporaneo su quale catena valida sia la migliore. L'altro è un disaccordo permanente su che cosa significhi valido.

Riorganizzazione della catena vs doppia spesa

Una riorganizzazione è un meccanismo; una doppia spesa è una delle cose che si potrebbero fare con essa, e raramente è quella che accade davvero. La stragrande maggioranza delle riorganizzazioni si limita a rimettere le stesse transazioni in un blocco diverso, quindi il pagamento di nessuno cambia. Un annullamento richiede che il ramo vincente contenga una transazione in conflitto che l'attaccante vi ha inserito di proposito, il che significa o una potenza di hash enorme o una fortuna straordinaria. I tentativi di doppia spesa più economici non comportano mai una riorganizzazione, perché colpiscono pagamenti che non erano mai stati confermati in primo luogo.

Da non confondere con

Domande frequenti

Quanto può essere profonda una riorganizzazione della catena di bitcoin?

In pratica un blocco. La riorganizzazione più profonda della catena principale di bitcoin è stata di 24 blocchi a marzo 2013, causata da un'incompatibilità del database tra due versioni del software e non dalla potenza di mining, e da allora non è accaduto nulla di simile.

Una riorganizzazione può togliere bitcoin dal mio wallet?

No. Una riorganizzazione cambia quali transazioni sono nella catena e in quale ordine, e non può spostare bitcoin senza la tua firma. L'esposizione riguarda i pagamenti che hai ricevuto ma che non hai ancora visto sepolti sotto diversi blocchi.

Perché gli exchange attendono diverse conferme prima di accreditare un deposito?

Perché ogni blocco aggiuntivo rende molto meno probabile un ribaltamento della catena che cancelli il tuo deposito. L'attesa è il margine che la piattaforma si concede, ed è per questo che il numero è una scelta di policy interna che varia tra exchange e non una regola del protocollo.

Leggi anche

Termini correlati

Altro in Mining e consenso

Leggi questa pagina in inglese