Cos’e’ una FORK?

Iniziamo questo articolo con una premessa: una fork (forchetta/bivio) è un evento comune nello sviluppo di Software in generale ed in parole povere sta ad indicare una divisione di un software in due specifici software. Ma per capirne di più cosa significa nel contesto delle crittovalute, occorre andare ad analizzare la tecnologia delle blockchain.

Le Basi

Bitcoin è una rete informatica che e’ stata inizialmente sviluppata per permettere pagamenti peer-to-peer (da individuo a individuo senza bisogno di intermediari) su una tecnologia decentralizzata (non esiste un organizzazione centrale che gestisce la rete, ma la reste stessa si auto governa).

Il meccanismo sottostante alla rete Bitcoin è il suo protocollo software che è costituito da una serie di codici informatici che permettono di avere transazione sicure ed allo stesso tempo “veritiere” (essendo decentralizzate).

Ciò che è importante capire è che il software di Bitcoin è open source, il che significa che è gratuito e disponibile a tutti.

Se non hai chiare le idee su cosa sono i Bitcoin, ti consiglio di leggere il seguente articolo:

LA GENESI: Cosa sono i Bitcoin?

Cosa sono le fork?

Come ben sai, la blockchain (la tecnologia alla base di Bitcoin) è una sorta di libro masto (un libro dove categorizzare fatture e spese) distribuito, dove ogni transazione registrata è definita “blocco”. La tecnologia, in oltre, ha permesso di costruire tale “libro masto” in modo da assicurare esattezza e veridicità di tutte le transazioni, linkando ogni “blocco” al successivo (da qui il temine blockchain – catena di blocchi).

Poiché Bitcoin è una rete decentralizzata, i partecipanti alla rete devono concordare un insieme comune di regole per convalidare le transazioni, al fine di raggiungere un consenso. Ciò, pertanto, si traduce in una singola catena di dati verificati che tutti concordano essere corretti e veritieri.

Nell’ambito delle cryptocurrency, un Fork si verifica quando una Blockchain si divide in due. Le cause e le tipologie sono descritte nell’immagine sottostante:

Split in consensus (divisione nel consenso)

Poichè Bitcoin è una rete distribuita e decentralizzata, una fork si verifica quando i minatori scoprono un blocco (un pezzo di informazione) che allo stesso tempo appartiene a due catene differenti. Questo può accadere sia per motivi tecnici, sia per motivi legati alla possibile manipolazione umana (contraffazione della blockchain). La tecnologia base delle blockchain, permette di risolvere tali fork in modo automatico: la blockchain che ha identificato prima il “blocco sdoppiato” avrà maggiori dati, mentre la seconda blockchain, avendo tendenzialmente meno dati, sarà automaticamente abbandonata.

In uno “Split in Consensus”, tipicamente nessuno trae benefici, ma la tecnologia si autoregola.

Change in Protocol Rules (Una modifica delle regole fondamentali del protocollo)

Quando il software base della blockchain viene cambiato, ci troviamo di frante a ciò che viene comunemente chiamato “Change in Protocol Rules”. Ma quali sono i motivi che spingono gli sviluppatori software a cambiare il codice?

I tipici cambiamenti di software richiedono:

  • Aggiunta di nuove funzionalità per migliorare servizi ed efficienza della rete
  • Modifica di una regola di base (come l’aumento della dimensione del “blocco”)

A differenza degli “Split in Consenso”, le fork per “Change in Protocol Rules” apportano cambiamenti permanenti alla blockchain, richiedendo ai partecipanti della blockchain di aggiornare il loro software al fine di mantenere la blockchain efficiente.

Una modifica delle regole di base del protocollo viene generalmente classificata in 2 grandi categorie:

  • Soft Fork
  • Hard Fork

Soft Fork

Una Soft Fork è un aggiornamento software retrocompatibile con le versioni precedenti . Ciò significa che i partecipanti che non hanno eseguito l’upgrade al nuovo software saranno comunque in grado di partecipare alla convalida e alla verifica delle transazioni.

Tale scenario è quello preferibile, poiché solo la maggioranza dei partecipanti alla blockchain ha bisogno di aggiornare il software. Tutti i partecipanti, che siano stati aggiornati o meno, continueranno a riconoscere nuovi blocchi e manterranno la compatibilità con la rete. Occorre ricordarsi comunque che i partecipanti “non-aggiornati”, sono affetti da funzionalità limitate (non avendo aggiornato il loro Software con le ultime funzionalità).

Giusto per fare un esempio di soft fork, immaginiamoci che una nuova regola di base vada a cambiare la dimensione del blocco (da 1000KB a 800KB). I partecipanti alla blockchain non aggiornati continueranno a vedere che le nuove transazioni in rete, ma non potranno partecipare all’operazione di mining, in quanto il loro software non permette di manipolare blocchi da 800KB. In tale esempio si denota come la soft fork incentiva i partecipanti all’aggiornamento del software, in quanto, altrimenti, sarebbero esclusi dall’operatività della blockchain stessa (mi preme sottolineare operatività, in quanto un soft fork non esclude la partecipazione).

Esempi passati di soft fork sono:

  • BIP 66: una soft fork sulla convalida della firma di Bitcoin
  • P2SH: una soft fork che abilita gli indirizzi multi-firma nella rete di Bitcoin

Hard Fork

Le hard fork si riferiscono ad aggiornamenti software senza compatibilità verso le versioni precedenti. Tutti i partecipanti alla blockchain devono quindi aggiornare il software al fine di continuare a partecipare e convalidare nuove transazioni. Coloro che non eseguono l’aggiornamento sono automaticamente separati dalla blockchain e quindi non potranno né partecipare, né convalidare nuove transazioni. Il risultato è quello di avere due blockchain separate, ciascuna indipendente dall’altra!

Le hard fork si classificano in tre tipologie:

  • Planned Hard fork (Pianificate)
  • Contentious Hard Forks (Contenziose)
  • Spin-Off Coin (Monete Derivate)

Planned Hard fork

Una hard fork pianificata è un aggiornamento del protocollo/software che era gia’ programmato/pianificato ed indicato nella roadmap del progetto sin dall’inizio.

Poiché si tratta di un aggiornamento per migliorare le funzionalità della blockchain, l’intera community, guidata dagli sviluppatori principali, aggiornerà la blockchain, il tutto senza “contenziosi” tra i vari sviluppatori e minatori della rete.

Come risultato, la vecchia blockchain (in termine di Software) andrà completamente “a morire”, in quanto dopo l’hard fork, si avranno tutte le funzionalità vecchie più le nuove aggiunte.

Le hard fork pianificate non generano di fatto nuova monete digitali, semplicemente evolvono con nuove funzionalità.

Esempi di hard fork pianificate sono:

  • Bisanzio di Ethereum: Bisanzio è avvenuta nell’ottobre 2017 e rappresenta un potenziamento di Ethereum per una migliore scalabilità e l’integrazione delle transazioni private
  • Ring Confidential Transactions (RCT) di Monero: a gennaio 2017, Monero introdusse un aggiornamento alla sua rete implementando RCT con lo scopo di migliorare la privacy e la sicurezza.

Contentious Hard Forks

In una hard fork contenziosa, si generano delle frizioni e disaccordi all’interno della comunità di sviluppatori e minatori, con il risultato di ottenere non solo due blockchain separate, ma anche due monete digitali indipendenti! In tale situazioni, chi possiede moneta nella blockchain “originale” verrà accreditato la stessa quantità’ nella nuova blockchain, con il risultato di avere “creato monete digitali”.

Esempi per Hard Fork con contenzioso:

  • Bitcoin Cash: Bitcoin Cash è stata una hard fork orchestrata da una parte della comunità di sviluppatori e minatori che voleva migliorare le prestazioni di Bitcoin attraverso l’aumento della dimensione dei blocchi da 1MB a 8MB. Ciò consente di elaborare più transazioni, riducendo quindi le commissioni pagate per ogni transazione ed incrementando la velocità delle transazioni stesse.
  • Ethereum Classic: Ethereum fu attaccato da pirati informatici che riuscirono a “penetrare” la rete ed il codice. Una parte della comunità di sviluppatori non era d’accordo nel cambiare il codice base della blockchain, per cui si separarono dall’aggiornamento necessario per evitare attacchi futuri e continuarono con la vecchia blockchain nominandosi Ethereum Classic.

Spin-Off Coin

Dal momento che il software ed i protocolli di Bitcoin e della maggior parte delle blockchain è open source (disponibile e gratis), chiunque può visualizzare il codice di base e apportare modifiche con l’obiettivo di creare una nuova moneta con nuove funzionalità.

Un esempio tra tutti e Litecoin: una fork di Bitcoin, creato dalla modifica del codice di base di Bitcoin stesso le cui caratteristiche modificarono:

  • Velocità di “mining”: 10 minuti (Bitcoin) – 2,5 minuti (Litecoin)
  • Algoritmo di consenso: SHA 256 (Bitcoin) – Scrypt (Litecoin)
  • Monete in circolazione: 21 milioni (Bitcoin) – 84 milioni (Litecoin)

Mi raccomando, tenete un occhio sulle news per ciò che concerne le fork perchè molto spesso fork significa “monete a gratis”!

A Presto!

Market Quotes by TradingView