introduzione

Quando ti viene chiesto di aggiornare la tua app di digital banking sul tuo smartphone, probabilmente non ci pensi nemmeno due volte. Forse il tuo telefono si aggiorna automaticamente senza che tu te ne accorga. Dopotutto è un processo necessario: se non installi la versione più recente del software, corri il rischio che ti venga negato l'accesso ai suoi servizi.

Nelle criptovalute open source le cose sono molto diverse. Non è necessario leggere ogni riga di codice su cui si basa Bitcoin per usarlo, ma avere la possibilità di farlo è importante. Vedi, qui non esiste una gerarchia e nessuna banca può semplicemente inviare aggiornamenti e cambiare le cose a suo piacimento. Di conseguenza, l’implementazione di nuove funzionalità nelle reti blockchain può rappresentare una sfida.

In questo articolo esploreremo come aggiornare le reti di criptovalute, nonostante la mancanza di un’autorità centrale. Per fare ciò, utilizzano due diversi meccanismi: hard fork e soft fork. 


Chi prende le decisioni in una rete blockchain?

Per capire come funzionano i fork, è importante prima comprendere i partecipanti coinvolti nel processo decisionale (o governance) della rete.

In Bitcoin, potresti fare una distinzione generale tra tre sottoinsiemi di partecipanti: sviluppatori, minatori e utenti del nodo completo. Questi sono i soggetti che effettivamente contribuiscono alla rete. I nodi leggeri (ovvero i portafogli sui telefoni, sui laptop, ecc.) sono ampiamente utilizzati, ma non sono realmente “partecipanti” per quanto riguarda la rete.


Sviluppatori

Gli sviluppatori sono responsabili della creazione e dell'aggiornamento del codice. Per la tua moneta tipica, chiunque può contribuire a questo processo. Il codice è disponibile pubblicamente, quindi possono inviare modifiche affinché altri sviluppatori possano esaminarle. 


Minatori

I minatori sono quelli che proteggono la rete. Eseguono il codice della criptovaluta e dedicano risorse all'aggiunta di nuovi blocchi alla blockchain. Nella rete Bitcoin, ad esempio, lo fanno tramite Proof of Work. Vengono ricompensati per i loro sforzi sotto forma di ricompensa in blocco.


Utenti del nodo completo

I nodi completi sono la spina dorsale della rete di criptovaluta. Convalidano, inviano e ricevono blocchi e transazioni e mantengono una copia della blockchain.


Troverai spesso sovrapposizioni in queste categorie. Potresti, ad esempio, essere uno sviluppatore e un utente del nodo completo, oppure un minatore e un utente del nodo completo. Potresti essere tutti e tre o nessuno. In effetti, molti di quelli che consideriamo utenti di criptovaluta non assumono nessuno di questi ruoli. Scelgono invece di utilizzare nodi leggeri o servizi centralizzati.

Osservando le descrizioni di cui sopra, potresti fornire valide ragioni per gli sviluppatori e i minatori che prendono le decisioni per la rete. Gli sviluppatori creano il codice: senza di loro non avresti alcun software da eseguire e nessuno che corregga bug o aggiunga nuove funzionalità. I minatori proteggono la rete: senza una sana concorrenza mineraria, la catena potrebbe essere dirottata o potrebbe bloccarsi.

Se queste due categorie tentassero di costringere il resto della rete a seguire la loro volontà, tuttavia, la cosa non finirebbe molto bene. Per molti, il vero potere è concentrato nei nodi interi. Ciò è in gran parte dovuto al fatto che la rete è attiva, il che significa che gli utenti possono scegliere quale software eseguire. 

Gli sviluppatori non irromperanno in casa tua costringendoti a scaricare i file binari di Bitcoin Core sotto la minaccia delle armi. Se i minatori adottano un atteggiamento “a modo mio o in autostrada” per imporre un cambiamento indesiderato agli utenti, beh, gli utenti prenderanno semplicemente l’autostrada. 

Questi partiti non sono signori onnipotenti: sono fornitori di servizi. Se le persone decidono di non utilizzare la rete, la moneta perderà valore. La perdita di valore ha un impatto diretto sui minatori (i loro premi valgono meno se denominati in dollari). Per quanto riguarda gli sviluppatori, possono semplicemente essere ignorati dagli utenti.

Vedi, non è che il software sia proprietario. Puoi apportare tutte le modifiche che desideri e, se altri eseguono il tuo software modificato, potete comunicare tutti. In tal caso, esegui il fork del software e crei una nuova rete nel processo.


Cos'è una forchetta?

Un fork del software si verifica nel punto in cui il software viene copiato e modificato. Il progetto originale sopravvive, ma ora è separato da quello nuovo, che prende una direzione diversa. Supponiamo che il team del tuo sito web di contenuti di criptovaluta preferito abbia avuto un grave disaccordo su come procedere. Una parte del team potrebbe replicare il sito su un dominio diverso. Ma andando avanti, pubblicheranno tipi di contenuti diversi rispetto all’originale.

I progetti si fondano su un terreno comune e condividono una storia. Proprio come un’unica strada che poi si divide in due, ora c’è una divergenza permanente nei loro percorsi.

Tieni presente che questo genere di cose accade spesso nei progetti open source e accade da molto tempo prima della comparsa di Bitcoin o Ethereum. Tuttavia, la distinzione tra hard fork e soft fork è quasi esclusiva dello spazio blockchain. Discutiamone un po’ di più.


➠ Vuoi iniziare con la criptovaluta? Acquista Bitcoin su Binance!


Forcelle rigide e forchette morbide

Nonostante abbiano nomi simili e, in definitiva, servano allo stesso scopo, gli hard fork e i soft fork differiscono in modo significativo. Diamo un'occhiata a ciascuno.


Cos'è un hard fork?

Gli hard fork sono aggiornamenti software incompatibili con le versioni precedenti. In genere, ciò si verifica quando i nodi aggiungono nuove regole in un modo che è in conflitto con le regole dei vecchi nodi. I nuovi nodi possono comunicare solo con altri che utilizzano la nuova versione. Di conseguenza, la blockchain si divide, creando due reti separate: una con le vecchie regole e una con le nuove regole.

Nodes turn blue when they update. The older yellow nodes reject them, while blue ones connect to each other.

I nodi diventano blu quando si aggiornano. I nodi gialli più vecchi li respingono, mentre quelli blu si connettono tra loro.


Quindi ora ci sono due reti che funzionano in parallelo. Entrambi continueranno a propagare blocchi e transazioni, ma non lavoreranno più sulla stessa blockchain. Tutti i nodi avevano una blockchain identica fino al punto del fork (e quella storia rimane), ma in seguito avranno blocchi e transazioni diversi.

blockchain forking at block 600,000.


Poiché c'è quella storia condivisa, ti ritroverai con monete su entrambe le reti se le tenessi prima del fork. Supponiamo che tu avessi 5 BTC quando si è verificato un fork al Blocco 600.000. Potresti spendere quei 5 BTC sulla vecchia catena nel Blocco 600.001, ma non sono stati spesi nel Blocco 600.001 della nuova blockchain. Supponendo che la crittografia non sia cambiata, le tue chiavi private contengono ancora cinque monete sulla rete biforcuta. 

Un esempio di hard fork è stato il fork del 2017 che ha visto Bitcoin frammentato in due catene separate: quella originale, Bitcoin (BTC), e una nuova, Bitcoin Cash (BCH). Il fork si è verificato dopo molte discussioni sull'approccio migliore alla scalabilità. I sostenitori di Bitcoin Cash volevano aumentare la dimensione dei blocchi, mentre i sostenitori di Bitcoin si opponevano al cambiamento.

Un aumento della dimensione del blocco richiede la modifica delle regole. Questo accadeva prima del soft fork SegWit (ne parleremo a breve), quindi i nodi accettavano solo blocchi inferiori a 1 MB. Se creassi un blocco da 2 MB altrimenti valido, gli altri nodi lo rifiuterebbero comunque.

Solo i nodi che hanno modificato il proprio software per consentire blocchi di dimensioni superiori a 1 MB potrebbero accettare tali blocchi. Naturalmente, ciò li renderebbe incompatibili con la versione precedente, quindi solo i nodi con le stesse modifiche al protocollo potrebbero comunicare.


Cos'è una forchetta morbida?

Un soft fork è un aggiornamento compatibile con le versioni precedenti, il che significa che i nodi aggiornati possono ancora comunicare con quelli non aggiornati. Ciò che di solito vedi in un soft fork è l'aggiunta di una nuova regola che non è in conflitto con le regole precedenti.

Ad esempio, una riduzione della dimensione del blocco può essere implementata mediante soft-forking. Utilizziamo ancora una volta Bitcoin per illustrare questo punto: sebbene esista un limite su quanto può essere grande un blocco, non esiste un limite su quanto può essere piccolo. Se vuoi accettare solo blocchi al di sotto di una certa dimensione, devi solo rifiutare quelli più grandi.

Tuttavia, ciò non ti disconnette automaticamente dalla rete. Comunichi ancora con i nodi che non implementano tali regole, ma filtri alcune delle informazioni che ti trasmettono.

Un buon esempio reale di soft fork è stato il già citato fork Segregated Witness (SegWit), avvenuto poco dopo la divisione Bitcoin/Bitcoin Cash. SegWit è stato un aggiornamento che ha cambiato il formato dei blocchi e delle transazioni, ma è stato realizzato in modo intelligente. I vecchi nodi potevano ancora convalidare blocchi e transazioni (la formattazione non infrangeva le regole), ma semplicemente non li capivano. Alcuni campi sono leggibili solo quando i nodi passano al software più recente, che consente loro di analizzare dati aggiuntivi.

Even two years after SegWit activation, not all nodes have upgraded. There are advantages to doing so, but there’s no real urgency since there’s no network-breaking change.


Anche due anni dopo l'attivazione di SegWit, non tutti i nodi sono stati aggiornati. Ci sono vantaggi nel farlo, ma non c’è una vera urgenza poiché non c’è alcun cambiamento rivoluzionario.


Hard fork e soft fork: qual è il migliore?

Fondamentalmente, entrambi i tipi di forcelle sopra indicati hanno scopi diversi. Gli hard fork controversi possono dividere una comunità, ma quelli pianificati consentono la libertà di modificare il software con tutti d'accordo.

Le forcelle morbide sono un'opzione più delicata. In generale, sei più limitato in ciò che puoi fare poiché le tue nuove modifiche non possono entrare in conflitto con le vecchie regole. Detto questo, se il tuo aggiornamento può essere realizzato in modo tale da rimanere compatibile, non devi preoccuparti di frammentare la rete.


Pensieri conclusivi

Gli hard fork e i soft fork sono cruciali per il successo a lungo termine delle reti blockchain. Ci consentono di apportare modifiche e aggiornamenti ai sistemi decentralizzati, nonostante la mancanza di un’autorità centrale.

I fork consentono a blockchain e criptovalute di integrare nuove funzionalità man mano che vengono sviluppate. Senza questi meccanismi, avremmo bisogno di un sistema centralizzato con controllo dall’alto verso il basso. Altrimenti, saremmo bloccati con le stesse identiche regole per tutta la durata del protocollo.