You can also read the English version of this article.
Se hai letto o parlato di aggiornamenti di Bitcoin come Segwit e Taproot o di fork della rete come Bitcoin Cash, probabilmente ti sei imbattuto nei termini "hard fork" e "soft fork". Spesso ci sono molte incomprensioni e confusione riguardo alla terminologia quando si parla di modificare le regole di consenso di Bitcoin.
Ad esempio, nonostante il suo nome che potrebbe suonare minaccioso, un "hard fork" non è necessariamente qualcosa di cui avere paura, mentre un soft fork non deve sempre essere così “morbido” come potrebbe sembrare. Esploriamo quindi la differenza esatta tra questi due concetti astratti e, soprattutto, quando è opportuno applicarli. Questo ti aiuterà a comprendere più facilmente i meccanismi di base dietro le proposte di aggiornamento per la rete Bitcoin.
Software forks
In termini molto generali, un fork di un progetto software non è nulla di straordinario. Soprattutto nella comunità open source, chiunque può forkare (clonare o copiare) il codice sorgente di un progetto esistente, assegnargli un nuovo nome e iniziare a svilupparlo in autonomia – o anche con un nuovo team.
Sulla popolare piattaforma di sviluppo GitHub, forkare il repository ufficiale di Bitcoin è una questione di premere un semplice pulsante:
Ovviamente, nulla cambia nella rete Bitcoin se forkate il repository di Bitcoin su GitHub, anche se in teoria potrebbe accadere – a patto che il vostro fork venga adottato da un numero sufficiente di utenti. Ma non è di questo che tratta questo articolo. Gli hard fork e i soft fork riguardano più il modo di classificare i cambiamenti delle regole piuttosto che il vero e proprio atto di forkare o dividere qualcosa.
Regole di consenso
Il protocollo Bitcoin, integrato nella implementazione di riferimento Bitcoin Core, è composto da molte regole, politiche e altre specifiche. Alcune di queste regole, probabilmente le più importanti, determinano se un blocco è valido. Queste regole sono fondamentali per raggiungere il consenso nella rete, poiché i partecipanti devono concordare su di esse per determinare quale catena rappresenti la vera “blockchain di Bitcoin”.
Alcune di queste regole di consenso sono piuttosto intuitive e potresti immaginarle facilmente riflettendo sulla validità di un blocco Bitcoin. Ad esempio:
- Le transazioni non possono spendere due volte lo stesso output precedente.
- I miner non possono creare più bitcoin in un nuovo blocco di quanto consentito nel periodo attuale di halving.
- La dimensione di un blocco non può superare il limite stabilito.
Tuttavia, non tutte le regole di cui si discute su Bitcoin sono rilevanti per il consenso. Potresti aver notato, ad esempio, recenti dibattiti sull’eliminazione delle transazioni Ordinals dal mempool locale di un nodo. Le regole che limiterebbero un nodo Bitcoin dal memorizzare e trasmettere tali transazioni sono generalmente considerate politiche piuttosto che regole fondamentali, poiché i blocchi contenenti queste transazioni rimangono comunque validi: si tratta solo di preferenze individuali degli utenti.
Come quasi tutte le regole, anche le regole di consenso possono essere modificate. Ed è qui che entrano in gioco i concetti di “soft” e “hard”. I cambiamenti alle regole possono essere classificati in due modi:
- Hard fork: rimuovono alcune regole di consenso, ampliando l'insieme teorico dei blocchi validi e rendendo validi blocchi che prima erano invalidi.
- Soft fork: aggiungono nuove regole di consenso, restringendo l'insieme dei blocchi validi e rendendo invalidi blocchi che prima erano validi.
Ti sembra complicato? Continua a leggere: con un'analogia pratica e reale tutto diventerà più chiaro!
Forks in un ristorante
Immagina un ristorante vegetariano che serve esclusivamente piatti senza carne né pesce. Puoi pensare a questi piatti come ai blocchi di Bitcoin. Molte persone possono mangiare in un ristorante vegetariano senza conflitti, inclusi gli onnivori (persone che mangiano sia piante che animali). Se decidi di mangiare in questo posto, accetti le regole di consenso del ristorante, il che significa che avrai delle verdure con delle uova, ad esempio.
Vegani
Un giorno, il proprietario decide di fare un passo in più, trasformando il suo menu in opzioni esclusivamente vegane. Questo è chiaramente un soft fork, perché è stata aggiunta una nuova regola e la quantità totale di piatti teorici tra cui scegliere è diminuita. Alcuni piatti precedenti non sono più possibili. Sebbene rendere le regole più rigide possa sembrare “difficile” inizialmente, le conseguenze che questo cambiamento ha sui clienti esistenti sono in realtà piuttosto “morbide”.
Pensa alle persone che potrebbero mangiare al ristorante ora, o in altre parole, alle versioni compatibili di Bitcoin: a parte le preferenze personali, chiunque mangiasse prima al ristorante vegetariano può tecnicamente continuare a mangiare un pasto vegano senza infrangere le proprie regole alimentari. Il cambiamento è quindi compatibile in avanti, senza introdurre conflitti, poiché nessuno ha bisogno di cercare un nuovo ristorante dove mangiare.
Tuttavia, è possibile che una persona vegana avrebbe rifiutato di mangiare ciò che veniva precedentemente servito al ristorante vegetariano, poiché quelle regole di consenso più vecchie non sono compatibili con la sua versione attuale. Per questo motivo, i soft fork non sono compatibili con le versioni più vecchie da questo punto di vista.
Allentare le regole
Con un improvviso cambio di idea, il proprietario decide ora di allentare le restrizioni sul menu, permettendo persino di servire carne agli ospiti. Naturalmente, questo causa conflitti con i vegetariani e i vegani, poiché alcune o forse tutte le opzioni del menu ora non sono più accettabili. Questo è un hard fork, con la regola precedentemente aggiunta ora rimossa e la quantità teorica di piatti che aumenta.
La cosa fondamentale da comprendere nel contesto di Bitcoin è come i clienti precedenti debbano ora cambiare idea o passare a un ristorante diverso. A causa di questo meccanismo, gli hard fork non sono compatibili in avanti.
Di nuovo, però, al contrario è l'opposto: anche se ti piace la carne, avresti potuto mangiare nella versione vegetariana precedente del ristorante, poiché le tue regole di consenso sono comunque meno rigide rispetto a quelle vecchie. Ecco perché gli hard fork possono essere compatibili con i blocchi creati dalle versioni precedenti.
Per riassumere
- Gli hard fork rimuovono le regole di consenso, rendendo validi blocchi che prima sarebbero stati invalidi, ma solitamente rompendo la compatibilità in avanti. Tutti dovrebbero aggiornare alla nuova versione se sono d'accordo con il cambiamento e vogliono evitare conflitti.
- I soft fork aggiungono regole di consenso, rendendo invalidi blocchi che prima sarebbero stati validi, ma solitamente mantenendo la compatibilità in avanti. Non tutti devono usare la nuova versione, poiché i blocchi sotto le nuove regole saranno comunque considerati validi, che si sia d'accordo con il cambiamento o meno.
Scissioni della catena
Hard fork
Gli hard fork sono spesso confusi con quelle che chiameremo scissioni della catena: un vero e proprio fork sulla blockchain di Bitcoin, che potrebbe o meno portare alla creazione di una rete alternativa completamente nuova. Facciamo una breve panoramica su perchè gli hard fork non causano automaticamente scissioni della catena e su perché le scissioni della catena stesse siano in realtà abbastanza comuni in Bitcoin.
Per gli hard fork, gli utenti sulla nuova versione dell'hard fork possono accettare i blocchi dalla vecchia versione, continuando comunque a minare blocchi sotto le nuove regole. Gli utenti che eseguono la vecchia versione rifiuteranno di accettare questi nuovi blocchi, anche se hanno la maggioranza dell’ hashrate.
Prendendo l'esempio di un hard fork che aumenta la dimensione del blocco di bitcoin, la nuova catena dell'hard fork è in grado di accettare blocchi più piccoli che rispettano le regole precedenti, ma la vecchia catena rifiuterà i blocchi più grandi. Questo rende una scissione della catena (e quindi un aggiornamento) più probabile e più facile per la nuova versione, perché non deve competere direttamente con la hashrate della vecchia catena.
Soft fork
Per i soft fork, gli utenti sulla nuova versione possono rifiutare i blocchi dalla vecchia versione. Possono minare blocchi sotto le nuove regole, ma questi possono essere accettati anche dalla vecchia versione.
Se usiamo l'esempio di un soft fork che riduce la dimensione del blocco, la nuova catena non può accettare blocchi secondo le regole della catena precedente, ma la nuova catena rimarrà compatibile con gli utenti che eseguono le vecchie regole della catena.
Gli aggiornamenti dei soft fork di successo sono più difficili, richiedendo una maggioranza della potenza di hash sulla nuova versione per “forzare” gli utenti della vecchia versione ad accettare le nuove regole. Questo perché un nodo Bitcoin accetterà la blockchain con il maggior lavoro investito come la catena valida. Le scissioni della catena nei soft fork sono possibili, contrariamente alla credenza popolare che i soft fork rendano automaticamente sicuri i cambiamenti arbitrari.
In effetti, qualsiasi cambiamento potrebbe teoricamente essere progettato come un soft fork, rendendo un po' inutile la categorizzazione “bianca e nera” dei due termini. Come esempio, l'aggiornamento Segwit è stato progettato in modo intelligente per aumentare effettivamente la dimensione del blocco senza aumentare il limite della dimensione del blocco stesso, rendendolo un soft fork.
Fork di Bitcoin
Le scissioni della catena si verificano naturalmente quasi ogni settimana, quando due miner trovano blocchi concorrenti alla stessa altezza per caso (ad esempio, a causa di una coincidenza temporale). Esiste anche un sito web per monitorare queste scissioni accidentali della catena. A volte, quando ci sono grandi pool di mining che competono sulla stessa altezza, potrebbero raddoppiare il loro “fork”, causando un riordinamento di due o addirittura tre blocchi. Poiché non c'è alcuna intenzione malevola dietro, questo è perfettamente normale ed è parte della teoria dei giochi nel mining (e in parte la ragione per cui dovresti aspettare da 3 a 6 conferme per essere sicuro che la tua transazione sia sulla catena vincente).
Una delle scissioni più prominenti della catena è stata l'aggiornamento del limite della dimensione del blocco che ha portato alla creazione di Bitcoin Cash nel 2017. Poiché le regole della nuova catena erano incompatibili con le regole esistenti della blockchain di Bitcoin, l'hard fork di Bitcoin Cash si è separato in un'altra blockchain, creando una seconda rete e con essa una seconda moneta, chiamata "BCH".
L'ultimo soft fork di Bitcoin è stato l'attivazione di Taproot nel 2021, ottenuto grazie alla maggioranza della hashrate che ha segnalato di essere pronta per le nuove regole di consenso e agli utenti che hanno aggiornato i loro client alla nuova versione di conseguenza. Non si è verificata alcuna scissione della catena per questo soft fork.
Conclusione
Gli hard fork non risultano necessariamente in scissioni della catena, e i soft fork non sono sempre privi di esse. Anche se queste parole sono spesso usate erroneamente come sinonimi, significano cose diverse. Come spiegato in questo blog post, la definizione di un soft fork è generalmente il rafforzamento delle regole esistenti, mentre gli hard fork rimuovono le regole esistenti. I soft fork sono compatibili con le regole esistenti, mentre gli hard fork non lo sono.
Un altro punto importante è come i soft fork non siano automaticamente l'opzione più sicura rispetto agli hard fork e viceversa. Una ragione è il fatto interessante che praticamente qualsiasi cambiamento può essere intenzionalmente progettato come un soft fork, rendendo impossibile determinare la natura di un cambiamento basandosi solo sull'etichetta "soft fork". Inoltre, alcuni cambiamenti potrebbero addirittura beneficiare della mancanza di compatibilità in avanti che accompagna gli hard fork. In breve, i dibattiti sugli aggiornamenti futuri di Bitcoin dovrebbero concentrarsi innanzitutto sul cambiamento effettivo, sulle sue implicazioni e su come dovrebbe essere attivato, piuttosto che sulle tecnicalità dei cambiamenti nelle regole.
Non possiedi ancora un BitBox?
Il BitBox02 è disponibile in due edizioni: l'edizione Multi, che supporta diverse criptovalute e può essere utilizzata come dispositivo per l'autenticazione a due fattori (2FA). L'edizione Bitcoin-only invece offre un firmware focalizzato: meno codice significa una superficie di attacco ridotta, che migliora ulteriormente la sicurezza quando custodisci solo bitcoin.
Acquista BitBox02 nel nostro shop online!
Shift Cypto è un'azienda privata con sede a Zurigo, in Svizzera. Il nostro team di contributori di Bitcoin, esperti di criptovalute e ingegneri della sicurezza crea prodotti che consentono ai clienti di godere di un percorso senza stress dal livello principiante a quello di padronanza nella gestione delle criptovalute. La BitBox02, il nostro portafoglio hardware di seconda generazione, consente agli utenti di memorizzare, proteggere e effettuare transazioni in Bitcoin e altre criptovalute con facilità - insieme al suo compagno software, la BitBoxApp.