Che cos'è Segwit?

SegWit

La soft fork di Segwit include vari benefici. Partendo dalla sua storia andiamo ad investigare tutte le sue peculiarità.

Domenica 23 luglio 2017 finalmente è stata confermata la proposta di upgrade a seguito dell'accordo di New York, al blocco 477.120 della blockchain, chiamato BIP91 (BIP sta per Bitcoin Improvement Proposal). Questo upgrade aveva bisogno dell'85% del consenso da parte dei miners nella rete. Si è quindi iniziata la manovra per implementare SegWit2X, che forzava la creazione di blocchi compatibili con la proposta "BIP144", non passato dopo l'accordo di Hong Kong nel febbraio dello stesso anno (ovvero la proposta vera e propria di SegWit). Tuttavia, la seconda parte che avrebbe dovuto aumentare la dimensione del blocco nella catena a 8 megabite, è stata abbandonata per via delle varie correnti nella community di Bitcoin, in particolare la forte opposizione degli sviluppatori Core, ovvero i primi che hanno supportato con la loro attività la manutenzione e la crescità della rete Blockchain. 

Da metà agosto, dal blocco 481.824, SegWit è realmente attivo nel protocollo Bitcoin. Lo scarto temporale è stato necessario per permettere a tutti gli utenti di aggiornare il software. 

Cosa significa SegWit?

Il nome SegWit sta per Segregated Witness.

La parola Segregated annuncia l'introduzione di un nuovo concetto nel protocollo della Blockchain: il blockweight. Ma andiamo con calma. La parola Witness indica la parte della transazione che ne attesta la validità; in una transazione normale (non SegWit), i dati che permettono la verifica e la validità si trovano nello spazio denominato blocksize, e questi dati sono compresi nei merkle tree di ogni blocco. I blocchi della blockchain sono come delle pagine nel registro pubblico e il merkle tree è l'organizzazione in cui questi blocchi sono disposti all'interno. Ritornando al concetto di Segregated, l'aggiornamento ha permesso che le transazioni possano superare il limite della misura standard del blocco (1mb), occupando byte in un diverso spazio validato dai miners (il concetto di blockweight). Il Witness viene quindi separato dal merkle tree del blocco preso in considerazione. Gli elementi del Witness sono la signature e la public script. Dal momento in cui l'aggiornamento verrà adottato dalla maggioranza dei servizi e wallet, tale misura potrà costituire un aumento della capacità totale dei blocchi fino ad arrivare ad un limite teorico massimo di 4mb. 

Con l'aggiornamento SegWit, il blocksize non è più la dimensione massima raggiungibile dal blocco, ma la dimensione massima che può avere un blocco Bitcoin se non valida al suo interno alcuna transazione SegWit. Questo meccanismo permette di aumentare la dimensione dei blocchi in modalità on-chain, senza attuare un hard fork.

Inoltre, l'aggiornamento del protocollo corregge anche un problema da sempre criticato nella blockchain, denominato transaction malleability. Il bug consisteva nel fatto che i miners potessero cambiare la transaction id (txid) di una transazione quando veniva processata all'interno di un blocco. Il txid indica la provenienza di una transazione: nel momento in cui questa firma venga modificata sarà più difficile tracciare le transazioni completamente, creando più confusione per gli utenti, aziende e servizi, i quali hanno bisogno di monitorare lo storico di una transazione. La correzione di questo Bug permette una verifica più efficiente da parte degli utenti nella rete, rendendo la blockchain più veloce nella sincronizzazione dei nodi. 

Quali sono i miglioramenti per il protocollo?

Per quello che riguarda la risoluzione del bug "transaction malleability" sono diversi:

  • Maggiore tracciabilità degli autori all'interno della Blockchain
  • Monitoraggio più facile delle transazioni
  • Risoluzione della malleabilità delle terze parti

Per quello che riguarda invece l'introduzione del concetto di blockweight:

  • Aumento della scalabilità senza centralizzare il processo
  • Riduzione delle Uspent Transaction Output (UTXO), ovvero di tutte le transazioni non validate all'interno della rete
  • Diminuzione del costo delle fees per ogni transazione
  • Aumento della rapidità all'interno della blockchain, evitando il problema del collo di bottiglia

Il più importante dei benefici ottenuti con SegWit è sicuramente quello che riguarda l'avvio del Lightning Network. Questo progetto permetterà il monitoraggio delle transazioni senza che ogni nodo salvi l'intera struttura nella propria memoria. Questo aggiornamento anticipa la possibilità di integrare lo sviluppo di smart contracts, come canali di micropagamenti. Nel prossimo articolo descriverò in modo più esaustivo il Lightning Network. 

Jacopo Sesana avatar
Jacopo Sesana

Student of Philosofy, Economy and International Studies in University of Ca' Foscari Venice. Fully convinced that Bitcoin Technology will shape our word.