Nella tecnologia blockchain, gli hard fork e i soft fork sono due modi diversi di aggiornare i protocolli di rete. Differiscono in modo significativo nel modo in cui vengono implementati e queste differenze possono influenzare direttamente la struttura e il funzionamento di una rete blockchain.
Forchetta dura
Un hard fork è una modifica delle regole in cui la nuova versione della rete non è più compatibile con la vecchia versione. Di conseguenza, la blockchain si divide in due rami separati che corrono in parallelo e non si influenzano a vicenda.
Forchetta morbida
Un soft fork è una modifica delle regole in cui i nodi che adottano le nuove regole possono ancora interagire con i nodi che non sono stati aggiornati. In questo caso la nuova versione della rete rimane compatibile con la vecchia versione.
Confronto
Forcella rigida
Esempio: DAO 2016
La vecchia versione non è compatibile con la nuova rete
Funziona con protocolli diversi
Forcella morbida
Esempio: SegWit 2017
La nuova rete rimane compatibile con la vecchia versione
Funziona nell'ambito della stessa struttura generale del protocollo
Analisi della situazione
Forchetta dura
Ad esempio, supponiamo che metà dei nodi della rete desideri aumentare la dimensione del blocco da 2 MB a 3 MB. Se un blocco da 3 MB viene inviato ai nodi della versione precedente, tali nodi lo rifiuteranno perché le loro regole definiscono ancora 2 MB come dimensione massima del blocco. In questo caso, la rete si divide in due protocolli separati e ciascuna filiale può utilizzare una valuta diversa. Tutti i saldi dei conti vengono copiati dalla catena originale alla nuova catena. Ad esempio, se un utente deteneva 20 BTC prima del fork, quell'utente deterrebbe 20 BTC sulla catena originale e 20 nuovi BTC sulla nuova catena.
Forchetta morbida
Ad esempio, se la dimensione del blocco originale è 2 MB e metà dei nodi della rete introduce una regola più rigida che limita la dimensione del blocco a 1 MB, i blocchi più grandi di 1 MB verranno considerati non validi dai nodi aggiornati. Tuttavia, i nodi della vecchia versione possono ancora ricevere e trasmettere blocchi. In questa situazione, la nuova rete può ancora coprire tutti i nodi senza essere limitata da diverse versioni di regole. Il Segregated Witness (SegWit) di Bitcoin è un tipico esempio di soft fork. Questo aggiornamento ha introdotto un nuovo formato di blocco e transazione in modo intelligente. I nodi che non sono stati aggiornati possono ancora ricevere informazioni sui blocchi, ma non prendono parte alla convalida del nuovo formato di transazione.
