- Torna al menu
- Torna al menuPrezzi
- Torna al menuRicerca
- Torna al menuConsenso
- Torna al menu
- Torna al menu
- Torna al menu
- Torna al menuWebinar ed Eventi
Forcella dura contro forcella morbida
Gli Eventi hard fork e soft fork si riferiscono al processo di implementazione di nuove modifiche al codice di un progetto blockchain.
I fork, o la minaccia di essi, sembrano essere una caratteristica consolidata del panorama Criptovaluta . Ma cosa sono? Perché sono così importanti? E qual è la differenza tra un hard fork e un soft fork?
Una "forchetta", in termini di programmazione, è una modifica del codice open source. Di solito, il codice biforcato è simile all'originale, ma con modifiche importanti, e i due "prong" coesistono comodamente. A volte una forchetta viene utilizzata per testare un processo, ma concriptovalute, viene più spesso utilizzato per implementare un cambiamento fondamentale o per creare una nuova risorsa con caratteristiche simili (ma non uguali) all'originale.
Non tutti i fork sono intenzionali. Con una base di codice open source ampiamente distribuita, un fork può verificarsi accidentalmente quando non tutti i nodi replicano le stesse informazioni. Di solito, questi tipi di fork accidentali vengono identificati e risolti. La maggior parte dei fork Criptovaluta si verificano a causa di disaccordi sulle caratteristiche incorporate, come esploreremo di seguito.
ONE cosa da tenere a mente con le fork è che hanno una "cronologia condivisa". Il record delle transazioni su ciascuna delle catene (vecchia e nuova) è identico prima della divisione.
Forchette dure
Esistono due tipi principali di fork di programmazione:
- Forchetta dura.
- Forcella morbida.
Un hard fork è una modifica a uncatena di blocchiprotocollo che rende non valide le versioni precedenti. Se le versioni precedenti continuano a funzionare, finiranno con un protocollo diverso e con dati diversi rispetto alla versione più recente. Ciò può portare a notevole confusione e possibili errori.
Con Bitcoin, un hard fork sarebbe necessario per modificare parametri di definizione quali la dimensione del blocco, l'algoritmo di difficoltà di mining, i limiti alle informazioni aggiuntive che possono essere aggiunte, ETC. Una modifica a una qualsiasi di queste regole farebbe sì che i blocchi vengano accettati dal nuovo protocollo ma rifiutati dalle versioni precedenti e potrebbe portare a seri problemi, forse anche a una perdita di fondi.
Ad esempio, se illimite dimensione bloccodovesse essere aumentato da 1 MB a 4 MB, un blocco da 2 MB verrebbe accettato dai nodi che eseguono la nuova versione, ma rifiutato dai nodi che eseguono la versione precedente.
Diciamo che questo blocco da 2 MB viene convalidato da un nodo aggiornato e aggiunto alla blockchain. Cosa succede se il blocco successivo viene convalidato da un nodo che esegue una versione precedente del protocollo? Proverà ad aggiungere il suo blocco alla blockchain, ma rileverà che l'ultimo blocco non è valido. Quindi ignorerà quel blocco e collegherà la sua nuova convalida a ONE precedente.
All'improvviso hai due blockchain, ONE con blocchi sia della versione più vecchia che di quella più nuova, e un'altra con solo blocchi della versione più vecchia. Quale catena cresce più velocemente dipenderà da quali nodi ottengono la convalida dei blocchi successivi, e potrebbero finire per esserci ulteriori divisioni. È fattibile che le due (o più) catene possano crescere parallelamente all'infinito.
Questo è un hard fork, ed è potenzialmente caotico. È anche rischioso, poiché è possibile che i bitcoin spesi in un nuovo blocco possano poi essere spesi di nuovo in un vecchio blocco (dal momento che i commercianti, i portafogli e gli utenti che eseguono il codice precedente non rileverebbero la spesa nel nuovo codice, che ritengono non valido).
L'unica soluzione è che ONE ramo venga abbandonato a favore dell'altro, il che comporta che alcuni minatori ci rimettano (le transazioni in sé non andrebbero perse, verrebbero solo riassegnate). Oppure, tutti i nodi dovrebbero passare alla versione più recente contemporaneamente, il che è difficile da ottenere in un sistema decentralizzato e ampiamente diffuso.
Oppure, il Bitcoin si divide, cosa che è accaduta (ciao, Bitcoin Cash).
Forcella morbida
Un soft fork è sostanzialmente l'opposto di un hard fork, in quanto le modifiche appena implementate rimangono retrocompatibili con le versioni precedenti.
Ad esempio, se un protocollo viene modificato in modo tale da rendere più rigide le regole, implementare una modifica cosmetica o aggiungere una funzione che non influisce in alcun modo sulla struttura della blockchain, i nuovi blocchi di versione saranno accettati dai nodi di vecchia versione. Non viceversa, però: la versione più recente e "più rigida" rifiuterebbe i blocchi di vecchia versione.
In Bitcoin, vecchia versione minatori si renderebbero conto che i loro blocchi venivano rifiutati e sarebbero costretti ad aggiornare. Man mano che più minatori aggiornano alla versione più recente, la catena con blocchi prevalentemente nuovi diventa la più lunga, il che, a sua volta, aumenta la quantità di blocchi orfani della vecchia versione che vengono creati e fa sì che più minatori aggiornino. Questo processo assicura che il sistema si autocorregga. Poiché i blocchi della nuova versione vengono accettati sia dai nodi vecchi che da quelli aggiornati, i blocchi della nuova versione alla fine WIN.
Ad esempio, supponiamo che la comunità decida di ridurre la dimensione del blocco a 0,5 MB dal suo attuale limite teorico di 4 MB (conBlocchi SegWit.) I nodi della nuova versione rifiuterebbero i blocchi con il vecchio limite e si baserebbero sul blocco precedente (se fosse stato estratto con una versione aggiornata del codice), il che causerebbe un fork temporaneo.
Questo è un soft fork, ed è già successo diverse volte. Inizialmente, Bitcoin T aveva un limite di dimensione del blocco. L'introduzione del limite di 1 MB è stata fatta tramite un soft fork poiché la nuova regola era "più severa" di quella ONE.
IL funzione di hash dello script a pagamento, che migliora il codice senza modificarne la struttura, è stato aggiunto con successo anche tramite un soft fork. Questo tipo di modifica richiede in genere solo alla maggior parte dei miner di effettuare l'aggiornamento, il che lo rende più fattibile e meno dirompente.
I soft fork non comportano il rischio di doppia spesa che affligge gli hard fork, poiché i commercianti e gli utenti che gestiscono vecchi nodi leggeranno sia i blocchi della nuova versione che quelli della vecchia.
Per esempi di modifiche che richiederebbero un soft fork, vedere “Lista dei desideri di Softfork”.
Noelle Acheson
Noelle Acheson è la conduttrice del podcast " Mercati Daily" CoinDesk e autrice della newsletter Cripto is Macro Now su Substack. È anche ex responsabile della ricerca presso CoinDesk e la società affiliata Genesis Trading. Seguici su Twitter @NoelleInMadrid.
