Soft forks e hard forks per niubbi!

in #ita7 years ago

BLOCKCHAIN-1.png

Bella ragazzi, in questi giorni vi ho parlato di com’è nato Ethereum Classic in questo post: https://steemit.com/ita/@emacosc/com-e-nato-ethereum-classic, spiegandovi poi le differenze (base) tra Ethereum ed Ethereum Classic qui https://steemit.com/ita/@emacosc/le-differenze-tra-eth-e-etc-la-storia-continua-20171218t13341941z.

Anche se avrei voluto finire la “trilogia”, raccontandovi perché credo che Ethereum Classic sia la moneta tra le due piu promettente ed importante, vorrei raccontarvi un pochino di soft e hard forks, un argomento molto interessante se vi state appassionando alla tecnologia Bitcoin, e blockchain in generale. È un argomento che ho impiegato diverso tempo a capire “bene”, dunque oggi non vorrei fare un post troppo complicato e cercare di analizzare le forks da un punto di vista di tecnologia ed ecosistema SEMPLICE.

Molte persone infatti, non capiscono completamente la differenza tra i due tipi di forks, e soprattutto le implicazioni che queste hanno sul network e sull’ecosistema. Innanzitutto, diamo un paio di definizioni.

Una hard fork è una divergenza nella blockchain permanente. Una hard fork capita quando i nodi del network che non si sono aggiornati non riescono a validare i blocchi creati dai nodi che si sono aggiornati e che seguono delle nuove regole di consenso.

Una soft fork invece, è una divergenza nella blockchain temporanea, che capita quando i nodi non aggiornati non seguono le nuove regole di consenso.

Ci avete capito qualcosa?

Andiamo un po a vedere. Fork nel letterale significa “biforcazione”. Biforcazione, in questo caso, della blockchain.
Sappiamo che quando parliamo di “possedere” bitcoin (o qualsiasi altra cryptovaluta), nella realtà dei fatti questi bitcoin non li abbiamo mai in mano, nemmeno quando questi sono in un wallet. I bitcoin non stanno in nessun wallet, portafoglio o simili: i bitcoin sono esistenti solamente all’interno della propria blockchain. Sulla blockchain di Bitcoin, sono segnate tutte le transazioni che sono avvenute dal 2009. Un fork divide la blockchain in due catene, dove una sarà la “originale”, e l’altra sarà quella nuova, ma dove comunque saranno segnate tutto lo storico delle transazioni dal 2009 fino al momento della fork. Dopo la fork, le due blockchain e le rispettive transazioni non saranno più compatibili. L’idea è che anche se c’è una fork, niente verrà azzerato a livello di blockchain, fino a prima del momento della biforcazione.

Ma come si forma una fork?

Una fork si può formare in seguito a degli aggiornamenti, o a dei bug. Come nel caso della DAO, dove la blockchain di Ethereum è stata forkata, l’hard fork aveva lo scopo di risolvere il bug che ha causato l’hack della DAO, dunque “azzerando” l’hack. Una hard fork può anche avvenire per una mancanza di consenso tra i partecipanti ad un network. Una hard fork inoltre, ha un certo bisogno di consenso. L’idea è che una cryptovaluta può “hardforkare” quando ci sono abbastanza wallets che detengono questa cryptovaluta, mettendosi d’accordo sul creare una nuova cryptovaluta con la sua propria blockchain “on top” del sistema esistente, partendo da un certo blocco. Una fork però, si potrebbe anche formare per il meccanismo di “convalida dei nodi”, oppure quando due o più blocchi hanno la stessa lunghezza di catena. Possiamo comunque però dire che il motivo maggiore per il quale un fork può avvenire è un aggiornamento del network e una parte della rete utilizza un software o un meccanismo non aggiornato.

Esempio di hard fork: Bitcoin Cash

Una fork nata recentemente, e super famosa, è quella di Bitcoin Cash, dove è nato “un nuovo Bitcoin” (o così, perlomeno, piace chiamarlo a Roger Ver…). Cos’è successo? A dirla in parole molto semplici, degli sviluppatori hanno creato un software alternativo a Bitcoin (con dei cambiamenti mirati a cambiarne il funzionamento e il blocco), e a un certo blocco della blockchain, quest’ultima è stata biforcata in due parti permanentemente, creando due diverse monete: Bitcoin e Bitcoin Cash.

Andiamo a concludere…

Farò un post molto più dettagliato sulle forks, ma oggi voglio tenere la questione semplice. Riprendiamo le due definizioni date all’inizio e cerchiamo di chiarificarle un po’, anche alla luce di quello già detto.

Una hard fork si verifica quando la nuova versione del software viene rilasciata, e questa nuova versione non è compatibile con la vecchia. Se la nuova versione del software non trova consenso tra i partecipanti del network, gli utenti possono decidere di non aggiornare il software, creando la biforcazione che creerà a sua volta due nuove blockchain con regole e protocollo diversi. La biforcazione si crea perché per far “rimanere” una sola blockchain, c’è necessità del consenso all’interno dei nodi sul protocollo adottato e di conseguenza le regole da seguire.

Una soft fork si verifica quando c’è un cambiamento di protocollo, o di regole, e le nuove regole sono “compatibili” con le vecchie. Solo i blocchi precedenti alla soft fork sono resi “invalidi”. Questo vuol dire che la nuova versione del software è compatibile con le vecchie, e i vecchi nodi (non aggiornati) saranno in grado di validare i nuovi blocchi. Questa è una fork più “consensuale”, nel senso che una soft fork richiede solamente che la maggioranza dei miners si aggiorni alle nuove regole. Upgrades al protocollo possono essere eseguiti tramite soft fork, infatti c’è solamente bisogno che i miner rifiutino i blocchi che contengono transazioni che non seguono le nuove regole. Una soft fork è un modo di implementare miglioramenti al software, rendendoli allo stesso tempo compatibili con le vecchie versioni del software, in modo tale che i nodi non si debbano aggiornare al fine di mantenere il consenso.

Questo è tutto per oggi (ed è già tanta roba!). Il prossimo post che vorrei scrivere è più complicato, e riguarda il consenso e la coercizione all’interno di un sistema decentralizzato, e perché le fork importano così tanto in questi casi.

Ciao a tutti!

[l'immagine è di mia produzione]

Sort:  

Congratulations @emacosc! You have completed some achievement on Steemit and have been rewarded with new badge(s) :

Award for the number of upvotes received

Click on any badge to view your own Board of Honor on SteemitBoard.
For more information about SteemitBoard, click here

If you no longer want to receive notifications, reply to this comment with the word STOP

By upvoting this notification, you can help all Steemit users. Learn how here!

Grazie per le informazioni. Ti seguo.

Congratulations @emacosc! You have completed some achievement on Steemit and have been rewarded with new badge(s) :

You got your First payout

Click on any badge to view your own Board of Honor on SteemitBoard.
For more information about SteemitBoard, click here

If you no longer want to receive notifications, reply to this comment with the word STOP

By upvoting this notification, you can help all Steemit users. Learn how here!

Coin Marketplace

STEEM 0.19
TRX 0.14
JST 0.030
BTC 62487.83
ETH 3340.96
USDT 1.00
SBD 2.46