Cos’è un crypto fork?

1. Cos’è un fork?

Una blockchain, come quella di bitcoin, può essere paragonata ad  una rete decentralizzata di nodi che collaborano tra loro per convalidare le transazioni e memorizzare le informazioni. Il protocollo Bitcoin è open source, quindi chiunque potrebbe  duplicarlo, modificarlo e usarlo a propria discrezione. Una modifica effettiva del codice sorgente, o una divergenza dalla versione precedente della blockchain, prende il nome di fork (dall’inglese “forchetta”, “bivio”). In altre parole, qualsiasi fork corrisponde ad una modifica delle regole in base alla quale il blocco nella blockchain viene riconosciuto come valido: ad esempio, quando un blocco alternativo viene generato da un minatore disonesto, il sistema raggiunge il consenso sul fatto che questo blocco non sia valido, e quindi rimarrà “orfano”, ovvero non si collegherà mai alla catena principale e verrà presto abbandonato dagli altri minatori.

2. Quante tipologie di fork esistono?

Nel mondo della blockchain esistono due tipi principali di fork: soft-fork e hard-fork. Il primo corrisponde ad una piccola – “soft”- modifica del codice sorgente, mentre il secondo – “hard” – è una variazione radicale di alcune caratteristiche fondamentali del codice. Il termine fork è ripreso da “codebase fork”,  espressione usata dagli sviluppatori di software:

quando uno sviluppatore lavora sul codice sorgente di un’applicazione (basata su blockchain o altro prodotto software) per sviluppare, o creare, una versione distinta e separata del software, la nuova versione verrà appunto chiamata fork, codebase fork. In definitiva però sarà libera scelta degli utenti della rete se aggiornare o meno l’applicazione, gli sviluppatori non potranno mai forzare le modifiche su una rete: potranno solamente suggerire delle variazioni che gli utenti decideranno se adottare. Allo stesso modo anche sulla blockchain il destino dei fork è nelle mani degli utenti, grazie a questo tipo di governance “open source”, di natura potenzialmente democratica, che non permetterà mai a nessuno di avere il controllo assoluto sul destino di una criptovaluta: i fork infatti si svolgono spesso e sono una sana componente di tutto l’ecosistema, permettendo alla comunità di decidere direttamente quali sono le idee più promettenti.

3. Cos’è un soft-fork?

Nel caso di un soft-fork si tratta di aggiornamenti opzionali, pianificati e guidati dal team di sviluppo principale di un progetto o avviati da un altro gruppo di sviluppatori, insoddisfatti di un elemento di un progetto esistente. Le modifiche sul codice sorgente non richiedono l’aggiornamento del client (software) per l’esecuzione delle nuove regole: se alcuni nodi della rete non accettassero le nuove modifiche, tali nodi potrebbero comunque continuare a far parte della stessa rete degli utenti che hanno eseguito l’aggiornamento alla nuova versione. Per una migliore comprensione, si può tracciare un’analogia con le lingue: se prima del fork tutti i nodi parlavano “inglese britannico”, e le nuove regole richiedono il passaggio a una versione di “inglese americano”, gli utenti che continueranno a utilizzare la versione di “inglese britannico”, saranno ancora in grado di capire le nuove regole dell’inglese americano”. Pertanto, il soft-fork è un cambiamento di codice “retro-compatibile” che non viola il consenso del protocollo stesso, nel senso che le transazioni dei nodi non aggiornati potranno ancora essere riconosciute da quelli nuovi. Tuttavia, tornando al nostro esempio, se i nodi che parlano “inglese britannico” (ovvero gli utenti con il client non aggiornato) continuassero a estrarre blocchi, i blocchi estratti verrebbero respinti dai nodi aggiornati alla versione di “inglese americano”: quindi, per avere successo, un soft-fork necessita della maggior parte della potenza di hash della rete. Quando un soft-fork è supportato solo da una minoranza di hash power della rete, diventerà sicuramente la catena più breve e rimarrà orfana.

4. Cos’è un hard-fork?

Nel caso di un hard-fork, continuando con la metafora delle lingue, è come se i nodi originali parlassero “inglese britannico”, mentre quelli aggiornati , ad esempio, “cinese”: le nuove regole introdotte nel codice sorgente sono in netta contraddizione con quelle precedenti e i nodi che parlano ancora “inglese britannico” non saranno più in grado di interagire con quelli aggiornati al “cinese”. Gli hard-fork generalmente si verificano quando ci troviamo in presenza di una grande differenza di opinioni all’interno della comunità che ha costruito e sostenuto una particolare blockchain, e uno – o entrambi – i gruppi decidono di seguire la propria strada. I membri che non si trovano in accordo con le regole del protocollo originale abbandoneranno quella blockchain e coloro che crederanno in questo fork aggiorneranno i propri software per lavorare in base alle nuove regole: la divergenza creerà essenzialmente due blockchain concorrenti che non saranno mai più in grado di interagire.

5. Cosa succede dopo un hard-fork?

In presenza di un hard-fork della rete, uno dei rami formati del sistema potrebbe, come abbiamo già detto, rimanere orfano dalla rete; ma esistono alcuni scenari che gli permetterebbero di rimanere in vita: tutto dipenderà da quanta potenza di hash verrà fornita a ciascuno dei rami: un ramo di una blockchain con una potenza maggiore ha una maggiore possibilità di sopravvivenza. L’esempio più evidente di un tale scenario è accaduto nell’estate del 2016, con l’hard-fork della rete di Ethereum: la nuova catena ha continuato ad esistere sotto lo stesso nome (ETH), ma allo stesso tempo è stato conservato e mantenuto anche il circuito originale, chiamato Ethereum Classic (ETC).

6. C’è un’opinione secondo la quale, la maggior parte delle criptovalute sono degli hard-fork di bitcoin?

Un fork potrebbe lecitamente essere definito come un clone del codice sorgente di una criptovaluta già esistente. Per fare un esempio estremo, ora, ciascuno di voi, potrebbe copiare il codice sorgente di bitcoin sul proprio computer, cambiarci alcuni parametri e compilare il programma; dopodiché, vi basterà minare (emettere) una certa quantità di monete ed invitare amici e conoscenti a giocare in questo eccitante gioco economico. A volte alcuni progetti molto seri nascono da tale clonazione, grazie agli “amici miner” che sono disposti a “giocare” con loro. Ecco alcuni esempi famosi di fork dalla rete Bitcoin: Bitcoin XT, agosto 2015; Bitcoin Classic, febbraio 2016; Bitcoin Unlimited, maggio 2017; Bitcoin Cash: agosto 2017; Bitcoin Gold, ottobre 2017. Tutte altre criptovalute invece, che non derivano da un codice già esistente, vengono chiamate “altcoins”.

7. Che differenza c’è tra fork e altcoin?

I termini “altcoin” e “fork” sono concetti utilizzati spesso in modo molto vago in relazione allo stesso progetto. Altcoin, nella pratica, è utilizzato per riferirsi a tutte le criptovalute, ad eccezione di bitcoin. In realtà, con il termine “altcoins” ci si riferisce precisamente a quelle criptovalute il cui codice sorgente è significativamente diverso dagli altri progetti, ad esempio: Dash, Ethereum, Cardano, Eos ecc. Con il termine “fork” invece, vengono chiamati quei progetti che hanno clonato parte del codice sorgente di un’altra qualsiasi criptovaluta. Alcuni esempi sono: Litecoin (fork di Bitcoin), Dogecoin (fork di Litecoin), Ethereum Classic (fork di Ethereum), Stellar (fork di Ripple).