Vai al contenuto
buybitcoinsmart

Glossario / Protocollo e aggiornamenti

Soft fork

Che cos'è un soft fork?
Un soft fork stringe le regole del bitcoin in modo che i blocchi validi con il nuovo software restino validi con quello vecchio, permettendo alla rete di aggiornarsi senza che nessuno sia costretto a uscire dalla catena.

Ogni aggiornamento che bitcoin ha effettivamente distribuito funziona così. Rendere le regole più severe significa che un nodo vecchio accetta comunque i nuovi blocchi, perché non violano nessuna delle regole che conosce. I soft fork tra aprile 2012 e novembre 2021 hanno dato a bitcoin gli indirizzi hash di script, i timelock, SegWit e Taproot, e nessuno di essi ha lasciato a piedi un wallet.

Come funziona

Un soft fork restringe l'insieme dei blocchi validi, quindi tutto ciò che la rete aggiornata produce era già legittimo secondo il regolamento precedente.

Il trucco che lo rende possibile è che il linguaggio script di bitcoin ha lasciato porte aperte di proposito. Dieci opcode erano definiti come no-op che riescono senza fare nulla, e gli output di un tipo che nessuno aveva ancora definito erano trattati come spendibili da chiunque riuscisse a soddisfarli. Un soft fork passa per una di quelle porte: prende qualcosa che i nodi vecchi lasciano passare e vi aggancia un requisito reale. OP_NOP2 è diventato OP_CHECKLOCKTIMEVERIFY a dicembre 2015 e OP_NOP3 è diventato OP_CHECKSEQUENCEVERIFY a luglio 2016, e per un nodo del 2014 entrambi sono ancora no-op in uno script che passa comunque.

La conseguenza è una divisione dei compiti. I nodi non aggiornati continuano a verificare ogni regola che conoscono e restano sulla stessa catena di tutti gli altri. I nodi aggiornati verificano di più. I miner sono il gruppo che deve davvero muoversi, perché un miner che non si è aggiornato può costruire un blocco che i nodi aggiornati rifiutano, perdere la ricompensa e trascinare chi lo segue su un ramo condannato.

Per questo la parte difficile è l'attivazione, non il codice. Se la maggior parte della potenza di hash applica la nuova regola, i blocchi che la violano diventano orfani e il restringimento tiene. Se non lo fa, la rete si divide lungo una linea di frattura che il soft fork era progettato per evitare. Bitcoin ha provato diversi modi di stabilire quella maggioranza: un conteggio a supermaggioranza delle versioni dei blocchi, lo schema dei version bits del BIP-9, le opzioni di timeout del BIP-8 e la finestra di tre mesi dello Speedy Trial usata per Taproot.

Un soft fork può anche essere annullato in un modo in cui un hard fork non può. Poiché la nuova regola è una restrizione che il software vecchio non ha mai preteso, abbandonarla riporta tutti su una catena che tutte le versioni considerano ancora valida.

Perché questo conta quando compri bitcoin

Il punto onesto è che i soft fork sono il motivo per cui gli aggiornamenti di bitcoin non sono mai costati nulla ai normali detentori.

Non c'è migrazione, non c'è scadenza, non c'è annuncio che tu possa perdere. I bitcoin che si trovano a un indirizzo P2PKH creato nel 2013 sono spendibili oggi con la stessa chiave e lo stesso software, e ogni soft fork successivo ha avuto cura di mantenerlo così. Confrontalo con qualsiasi altra piattaforma finanziaria che usi, ed è la proprietà più sottovalutata del sistema.

Quello che noti è il ritardo, e si manifesta ai margini. Il protocollo attiva un nuovo tipo di output; i wallet impiegano un anno a renderlo predefinito; gli exchange impiegano più tempo a permetterti di prelevare verso di esso; alcuni non lo fanno mai. Tra gli exchange recensiti da questo sito, il supporto per l'invio a indirizzi bech32 è ormai routine mentre il supporto per le destinazioni Taproot bech32m è ancora disomogeneo, il che è un ritardo di quattro anni su un cambiamento che è stato legge di consenso dal primo giorno. È quel divario, non il protocollo, a decidere se puoi davvero usare una nuova funzionalità.

La regola pratica che ne segue è semplice. Tieni disponibile un indirizzo di un tipo più vecchio per le piattaforme che non si sono allineate, e controlla la schermata di prelievo prima di dare per scontato che un formato funzioni. Un indirizzo di prelievo rifiutato è fastidioso; una richiesta di assistenza per uno accettato e poi fallito è peggio.

Pay to script hash, il soft fork che ha reso utilizzabile il multisig

P2SH è il soft fork più antico che vale la pena studiare, perché mostra lo schema in miniatura.

Prima di aprile 2012, pagare verso una configurazione multisig significava che il pagatore doveva mettere l'intero script nell'output che finanziava. Questo rendeva il mittente responsabile della politica di sicurezza di qualcun altro, produceva output enormi e rendeva impossibile un indirizzo stampato o detto a voce. Il BIP-16 ha sostituito tutto con un hash di 20 byte dello script, racchiuso in un indirizzo che inizia con la cifra 3.

Per un nodo che esegue le regole vecchie, lo script di output è un confronto di hash che riesce quando chi spende inserisce dati corrispondenti. Per un nodo che esegue le regole nuove, quei dati inseriti vengono poi eseguiti come script e devono a loro volta essere soddisfatti. La nuova regola è strettamente più forte, quindi i nodi vecchi accettano ogni nuova spesa valida, che è la definizione di un soft fork.

L'attivazione è stata disordinata in un modo che si è ripetuto da allora. Una proposta concorrente, il BIP-17, ha diviso le opinioni degli sviluppatori; la scadenza è slittata dal 1º febbraio al 1º aprile 2012; e i miner hanno segnalato il loro sostegno scrivendo la stringa "/P2SH/" nei blocchi che minavano. Quasi ogni indirizzo che inizia con 3 oggi esistente, compresi quelli che gli exchange forniscono per i depositi, discende da quella discussione.

Soft fork vs BIP

Un BIP è un documento; un soft fork è una regola che i nodi applicano. Il BIP-341 è un file di testo in un repository GitHub che chiunque avrebbe potuto scrivere, mentre Taproot è ciò che è diventato legge di consenso al blocco 709.632 del 14 novembre 2021. La distinzione conta perché la maggior parte dei BIP non si attiva mai, tra cui il BIP-17 e le proposte di covenant, e perché un singolo soft fork spesso abbraccia più documenti insieme, come ha fatto SegWit con BIP-141, BIP-143, BIP-144 e BIP-147. Dire il numero di un BIP quando intendi una regola attivata è innocuo in una conversazione e fuorviante quando cerchi di capire cosa applica davvero il tuo nodo.

Da non confondere con

Domande frequenti

Devo aggiornare il mio wallet quando si attiva un soft fork?

No. Un wallet non aggiornato continua a seguire la stessa catena e continua a spendere i bitcoin che già detiene. L'aggiornamento conta solo quando vuoi usare la nuova funzionalità, come un tipo di indirizzo più economico.

Un soft fork può togliermi bitcoin che già detengo?

Un soft fork può solo rendere non validi elementi prima validi, quindi in linea di principio una regola potrebbe colpire un tipo di output. In pratica ogni soft fork attivato è stato scritto per lasciare spendibili gli output esistenti, e una proposta che li rompesse non supererebbe gli operatori dei nodi.

In che cosa un soft fork è diverso da un hard fork?

Nella direzione. Un soft fork restringe l'insieme dei blocchi validi, quindi il software vecchio resta sulla stessa catena senza accorgersene. Un hard fork lo amplia, quindi il software vecchio rifiuta i nuovi blocchi e segue una catena diversa, a meno che non si aggiorni.

Leggi anche

Termini correlati

Altro in Protocollo e aggiornamenti

Leggi questa pagina in inglese