Jan 9

SegWit

Segwit

Segregated Witness (SegWit) è un aggiornamento del protocollo sviluppato nel 2015, introdotto come soluzione al problema di scalabilità della blockchain di Bitcoin.

In media, la rete Bitcoin convalida un nuovo blocco ogni 10 minuti, ognuno contenente diverse transazioni. Visto che ogni transazione è composta di dati, la dimensione del blocco influisce sul numero di transazioni che possono essere confermate in ogni blocco. Attualmente, la blockchain di Bitcoin può elaborare circa 7 transazioni al secondo.

L’idea principale di SegWit è riorganizzare i dati del blocco in modo che le firme non vengano più inserite insieme ai dati delle transazioni. In altre parole, l’aggiornamento SegWit consiste nel separare i testimoni (firme) dai dati delle transazioni. Ciò consente di memorizzare più transazioni in un unico blocco, aumentando il throughput delle transazioni della rete.

Essendo in grado di elaborare solo circa 7 transazioni al secondo, una transazione Bitcoin a volte può richiedere molto tempo per essere completata. È molto più lento rispetto alle soluzioni di pagamento convenzionali e alle reti finanziarie, che possono elaborare migliaia di transazioni al secondo.

SegWit (P2SH) è stato sviluppato nel 2015 ed è stato implementato come soft fork sulla rete Bitcoin nell’agosto 2017 (evento che generò il fork di Bitcoin Cash).

Oggi, diversi progetti di criptovaluta utilizzano SegWit, inclusi Bitcoin e Litecoin. L’aggiornamento del protocollo ha portato molti vantaggi, come una maggiore velocità di transazione e capacità di blocco. Inoltre, SegWit ha risolto il cosiddetto bug di malleabilità delle transazioni (discusso di seguito).

I vantaggi di SegWit

Uno dei maggiori vantaggi di SegWit è l’aumento della capacità dei blocchi. Rimuovendo i dati della firma dall’input della transazione, è possibile memorizzare più transazioni all’interno di un singolo blocco. Le transazioni sono costituite da due componenti principali: input e output. In sostanza, un input contiene l’indirizzo pubblico del mittente, mentre l’output contiene l’indirizzo pubblico del destinatario. Tuttavia, il mittente deve dimostrare di avere i fondi trasferiti e lo fa con una firma digitale.

Senza SegWit, i dati della firma possono richiedere fino al 65% di un blocco. Con SegWit, i dati della firma vengono spostati dall’input della transazione. Ciò fa sì che la dimensione effettiva del blocco aumenti da 1 MB a circa 4 MB. SegWit non è un effettivo aumento della dimensione del blocco, ma una soluzione ingegneristica per aumentare la dimensione effettiva del blocco senza dovere aumentare il limite della dimensione del blocco (che richiederebbe un hard fork). Per essere più precisi, la dimensione effettiva del blocco è ancora di 1 MB, ma il limite effettivo della dimensione del blocco è di 4 MB.

Inoltre, SegWit ha introdotto l’idea del peso del blocco (Block Weight). Possiamo considerare il peso del blocco come un concetto che sostituisce l’idea di dimensione del blocco. In sostanza, il peso del blocco è una misura che include tutti i dati del blocco, inclusi i dati della transazione (1 MB) e i dati della firma (fino a 3 MB), che non fanno più parte del campo di input.

Un grosso problema di Bitcoin era la capacità di manomettere potenzialmente le firme delle transazioni (Transaction malleability). Se una firma viene alterata, potrebbe comportare il danneggiamento di una transazione tra due parti. Poiché i dati memorizzati su blockchain sono praticamente immutabili, le transazioni non valide potrebbero essere archiviate in modo permanente sulla blockchain.

Con SegWit, le firme non fanno più parte dei dati della transazione, il che elimina la possibilità di alterare questi dati. Questa correzione ha consentito ulteriori innovazioni all’interno della comunità blockchain, inclusi protocolli di secondo livello e contratti intelligenti.

Con un blocco in grado di memorizzare più transazioni, SegWit ha anche la capacità di aumentare la velocità delle transazioni, poiché può esserci una quantità maggiore di transazioni che si spostano attraverso la blockchain. Anche se un blocco può richiedere la stessa quantità di tempo per il mio, vengono elaborate più transazioni al suo interno, quindi il tasso di TPS è più alto.

La maggiore velocità di transazione ha anche contribuito a ridurre i costi di transazione nella rete Bitcoin. Prima di SegWit, non era raro spendere più di $ 30 per transazione. Tuttavia, SegWit ha ridotto drasticamente tale costo a meno di $ 1 per transazione.

Native SegWit (bech32)

Native SegWit (bech32) è una versione aggiornata di SegWit. Il formato bech32 offre una maggiore velocità di transazione, migliori meccanismi di rilevamento degli errori e commissioni di transazione ancora più basse. Inoltre, poiché gli indirizzi 32 sono minuscoli, sono più facili da leggere.

Le transazioni blockchain tra indirizzi non SegWit (Legacy), Nested SegWit (PS”H) e Native SegWit (bech32) sono completamente compatibili. Tuttavia, non tutti gli exchange e i wallet  supportano SegWit, quindi potrebbe non essere possibile prelevare fondi direttamente a un indirizzo SegWit. Qui una lista degli exchange, wallet e block explorer che supportano Segwit (bech32).

en.bitcoin.it/wiki/Bech32_adoption

 

glossario