HARD FORK VS SOFT FORK: SPIEGATE LE DIFFERENZE PRATICHE
Scopri come hard e soft fork modificano i protocolli blockchain, influiscono sugli utenti e influenzano gli ecosistemi delle criptovalute.
Nella tecnologia blockchain, un fork si riferisce a una divisione nel protocollo o nella base di codice di una rete blockchain. Questa divisione si traduce in percorsi divergenti, in cui uno mantiene le regole esistenti e l'altro introduce modifiche. I fork sono una parte fondamentale del mantenimento, dell'aggiornamento o della governance delle reti decentralizzate. In genere si verificano a causa di:
- Aggiornamenti o upgrade del protocollo blockchain
- Differenze nel consenso della comunità sulla governance
- Correzioni di bug o risoluzione di vulnerabilità di sicurezza
- Disaccordi su principi fondamentali, come scalabilità o commissioni di transazione
I fork sono classificati in due tipi principali: hard fork e soft fork. Ognuno ha implicazioni diverse per la retrocompatibilità, il consenso e la continuità della catena. Per sviluppatori, investitori e utenti che navigano nell'ecosistema blockchain è essenziale comprendere i meccanismi tecnici e gli esempi concreti di ciascuno di essi.
Un hard fork è una modifica radicale al protocollo di una blockchain che non è retrocompatibile. I nodi o gli utenti che non hanno effettuato l'aggiornamento alla nuova versione del software non possono convalidare o interagire con i blocchi o le transazioni prodotti sulla nuova catena. Di conseguenza, un hard fork crea una divergenza permanente dalla versione precedente della blockchain, portando a due registri separati in assenza di adozione unanime.
Le caratteristiche principali di un hard fork includono:
- Non compatibilità con le versioni precedenti: i nodi più vecchi rifiutano i blocchi della nuova catena.
- Suddivisione della catena: la blockchain si divide in due se non tutti i nodi vengono aggiornati.
- Creazione di nuovi token (spesso): il fork può dare origine a una nuova criptovaluta.
- Richiede consenso: la partecipazione della comunità è necessaria per la fattibilità a lungo termine del fork.
Esempio pratico: Bitcoin Cash (BCH)
Nell'agosto 2017, si è verificato un hard fork sulla rete Bitcoin, che ha portato alla creazione di Bitcoin Contanti. La principale controversia all'interno della comunità Bitcoin all'epoca riguardava come scalare la rete per gestire più transazioni. Bitcoin Cash aumentò la dimensione dei blocchi da 1 MB a 8 MB (e in seguito la aumentò ulteriormente), consentendo più transazioni per blocco e riducendo le commissioni. Questo aggiornamento non era retrocompatibile e Bitcoin Cash divenne una blockchain separata con le proprie regole e token (BCH), distinta da Bitcoin (BTC). Gli utenti che detenevano Bitcoin al momento del fork hanno ricevuto un importo equivalente in BCH dopo la divisione.
Altri hard fork degni di nota:
- Ethereum Classic (ETC): forkato da Ethereum nel 2016 dopo l'hacking di DAO, a causa di disaccordi sull'inversione di un furto.
- Hard fork di Monero: si verificano periodicamente per aggiornare i protocolli di privacy o resistere al mining ASIC.
- Hard fork di Cardano Alonzo: ha introdotto contratti intelligenti in Cardano nel 2021, richiedendo un aggiornamento del protocollo incompatibile con le versioni precedenti.
Gli hard fork sono in genere più destabilizzanti dei soft fork, ma offrono una soluzione pulita quando la comunità è nettamente divisa o quando è necessario un cambiamento fondamentale.
A differenza degli hard fork, un soft fork è una modifica al protocollo blockchain che è retrocompatibile. Ciò significa che anche i nodi non aggiornati (più vecchi) possono comunque riconoscere e convalidare i blocchi creati dai nodi aggiornati, purché tali blocchi siano conformi alle vecchie regole. I soft fork non comportano necessariamente una divisione della catena, a condizione che la maggior parte della rete concordi e applichi le nuove regole.
Attributi essenziali di un soft fork:
- Compatibilità con le versioni precedenti: i nodi più vecchi continuano a funzionare sulla rete modificata.
- Nessuna creazione di nuove monete: la criptovaluta esistente rimane intatta.
- Richiede la maggioranza della potenza di hash: le nuove regole sono applicate dalla maggior parte della potenza di mining.
- Sicurezza tramite consenso: incoraggia l'allineamento uniforme del protocollo all'interno della rete.
Esempio pratico: aggiornamento Bitcoin SegWit
Uno dei soft fork più noti si è verificato nell'agosto 2017, quando è stato attivato l'aggiornamento del protocollo Segregated Witness (SegWit) Sulla rete Bitcoin. SegWit ha modificato il modo in cui vengono archiviati i dati delle transazioni, rimuovendo di fatto i dati della firma (testimone) dal blocco di transazione e inserendoli in una struttura separata. Questa modifica ha consentito di archiviare più transazioni in un unico blocco senza aumentarne il limite di dimensione.
Poiché le transazioni SegWit erano ancora valide secondo le regole del vecchio protocollo Bitcoin (sebbene non pienamente utilizzate dai client più vecchi), la modifica era retrocompatibile. Di conseguenza, i nodi più vecchi potevano ancora convalidare i blocchi e non veniva creata alcuna nuova moneta.
Altri importanti soft fork includono:
- Aggiornamento Byzantium di Ethereum: implementati miglioramenti della privacy e dell'efficienza mantenendo l'integrità della rete e garantendo la compatibilità con le versioni precedenti.
- Integrazione Litecoin MimbleWimble: implementata come soft fork per transazioni riservate facoltative e non obbligatorie.
- BIP66 (proposta di miglioramento di Bitcoin): imposte firme DER rigorose tramite un soft fork per migliorare le regole di consenso in modo sicuro.
I soft fork sono generalmente preferiti quando è necessario apportare modifiche incrementali o ottimizzazioni mantenendo la coerenza della rete ed evitando il rischio (e il costo) di una divisione.
Tuttavia, i soft fork possono essere controversi se non tutti gli utenti sono d'accordo e un tentativo di soft fork fork può comunque dare origine a un hard fork se il consenso fallisce, come si è visto in alcuni aggiornamenti storici.
In definitiva, la scelta tra hard fork e soft fork dipende dagli obiettivi dell'aggiornamento, dal livello di accordo della comunità e dalla natura della modifica al protocollo.