Una Guida per Principianti al Segregated Witness (SegWit)
Home
Articoli
Una Guida per Principianti al Segregated Witness (SegWit)

Una Guida per Principianti al Segregated Witness (SegWit)

Avanzato
Pubblicato Nov 25, 2019Aggiornato Jun 13, 2023
6m

Contenuti


Cos'è SegWit?

Il Segregated Witness (SegWit) è un aggiornamento del protocollo sviluppato nel 2015. Il concetto è stato introdotto come una soluzione al problema di scalabilità che i network delle blockchain affrontano ancora oggi. 

In media, il network di Bitcoin convalida un nuovo blocco ogni 10 minuti, ciascuno contenente diverse transazioni. Di conseguenza, le dimensioni del blocco influiscono sul numero di transazioni che possono essere confermate in ogni blocco. Attualmente, la blockchain di Bitcoin è in grado di elaborare circa 7 transazioni al secondo.

L'idea centrale di SegWit è di riorganizzare i dati del blocco in modo che le firme non siano più posizionate insieme ai dati delle transazioni. In altre parole, l'aggiornamento SegWit consiste nella separazione dei testimoni (firme) dai dati delle transazioni. Questo permette di archiviare più transazioni in un singolo blocco, aumentando così le prestazioni in termini di transazioni sul network.

Considerando che Bitcoin riesce a elaborare circa 7 transazioni al secondo, l'esecuzione di una transazione può a volte richiedere molto tempo. Questo processo è di gran lunga più lento rispetto alle soluzioni di pagamento e ai network finanziari convenzionali, che riescono ad elaborare migliaia di transazioni al secondo.

SegWit è stato sviluppato nel 2015 dallo sviluppatore Bitcoin Pieter Wuille, insieme ad altri collaboratori di Bitcoin Core. Nel mese di Agosto 2017, l'aggiornamento SegWit è stato implementato come un soft fork sul network di Bitcoin.
Oggi ci sono diversi progetti di criptovalute che utilizzano SegWit, inclusi Bitcoin e Litecoin. L'aggiornamento del protocollo ha portato con sé una serie di benefici, tra cui una migliore velocità di transazione e una maggiore capacità dei blocchi. Inoltre, SegWit ha risolto il cosiddetto bug della malleabilità di transazione (discusso più avanti).


Quali sono i vantaggi principali di SegWit?

Aumento di capacità

Uno dei maggiori vantaggi di SegWit è l'aumento della capacità dei blocchi. Rimuovendo i dati relativi alla firma dall'input della transazione, è possibile archiviare un maggior numero di transazioni in un singolo blocco.

Le transazioni sono composte da due componenti principali: input e output. Essenzialmente, un input contiene l'indirizzo pubblico del mittente, mentre l'output contiene l'indirizzo pubblico del ricevente. Tuttavia, il mittente deve dimostrare il possesso dei fondi che sta trasferendo, e lo fa con una firma digitale.

Senza SegWit, i dati relativi alla firma possono arrivare a occupare fino al 65% di un blocco. Con SegWit, i dati relativi alla firma vengono rimossi dall'input della transazione. Questo porta le dimensioni effettive del blocco da 1 MB a circa 4 MB.

E' importante sottolineare che SegWit non è un effettivo aumento delle dimensioni del blocco. Invece, è una soluzione avanzata che permette di aumentare le dimensioni effettive senza dover incrementare il limite di dimensione del blocco (cosa che richiederebbe un hard fork). Per essere più precisi, le dimensioni attuali dei blocchi sono ancora 1 MB, ma il limite effettivo di dimensione del blocco è 4 MB.

SegWit ha inoltre introdotto l'idea di peso del blocco. Possiamo considerare il peso del blocco come un concetto che sostituisce l'idea di dimensioni del blocco. Essenzialmente, il peso del blocco è una misura che include tutti i dati del blocco, inclusi i dati relativi alla transazione (1 MB) e i dati relativi alla firma (3 MB), i quali non fanno più parte del campo input.


Aumento della velocità di transazione

Creando un blocco che può contenere un maggior numero di transazioni, SegWit ha anche consentito di aumentare la velocità di transazione, dato che ci può essere un numero più grande di transazioni in movimento attraverso la blockchain. Anche se un blocco potrebbe richiedere lo stesso tempo per il processo di mining, un maggior numero di transazioni stanno venendo elaborate in esso, quindi il tasso TPS è più elevato.

L'aumento della velocità di transazione ha anche contribuito a ridurre i costi di transazione nel network di Bitcoin. Prima di SegWit, non era raro spendere più di $30 per una transazione. Tuttavia, SegWit ha abbassato drasticamente questo costo a meno di $1 per transazione.


Correzione della malleabilità di transazione

Un grave problema presente in Bitcoin nel passato era la possibilità di alterare potenzialmente le firme delle transazioni. Se una firma viene alterata, potrebbe risultare nella corruzione di una transazione tra due parti. Dato che i dati archiviati sulle blockchain sono virtualmente immutabili, sarebbe stato possibile archiviare transazioni invalide sulla blockchain in modo permanente.

Con SegWit, le firme non fanno più parte dei dati della transazione, cosa che rimuove la possibilità di alterare questi dati. Questa correzione ha consentito ulteriori innovazioni nella comunità blockchain, tra cui anche protocolli second-layer e smart contract.


SegWit e Lightning Network

Lo sviluppo di protocolli second-layer è stato parzialmente reso possibile dalla correzione del bug della malleabilità di transazione. In poche parole, i protocolli second-layer sono nuove piattaforme o nuovi prodotti sviluppati sopra a una blockchain, come per esempio quella di Bitcoin. Uno dei protocolli second-layer più conosciuto è Lightning Network, un network di micropagamenti off-chain.

Il Lightning Network è un protocollo second-layer che opera sul network di Bitcoin. L'obiettivo principale di Lightning Network è consentire la conferma di un maggior numero di transazioni in un periodo di tempo più breve, portando così a transazioni più veloci per gli utenti. Le transazioni vengono raccolte off-chain e accumulate efficacemente per essere eventualmente elaborate dal network di Bitcoin.

Il Lightning Network è stato sviluppato originariamente per Bitcoin. Tuttavia, diversi altri progetti blockchain e criptovalute stanno lavorando sull'implementazione della tecnologia per i rispettivi network. Questo non solo ridurrà i tempi di conferma delle transazioni ma promuoverà anche lo sviluppo di nuove soluzioni al problema della scalabilità.


SegWit vs SegWit2x

SegWit è un aggiornamento soft fork, il che significa che è retro-compatibile. In altre parole, i nodi Bitcoin che non sono aggiornati per includere SegWit sono ancora in grado di elaborare transazioni. Tuttavia, è stata proposta un'altra implementazione di SegWit chiamata SegWit2x (S2X), che avrebbe richiesto un aggiornamento hard fork.

La differenza fondamentale tra SegWit e SegWit2x è che quest'ultimo non avrebbe riguardato soltanto una modifica nel batching delle transazioni, ma anche un aumento nelle dimensioni del blocco (da 1MB a 2MB). Tuttavia, una maggiore dimensione del blocco avrebbe aumentato il carico per gli operatori di nodi e i miner, dato che avrebbe portato al doppio dei dati da gestire. 

Un'altra importante differenza è che la proposta SegWit è stata supportata e applicata dalla comunità di Bitcoin. L'episodio ha dato vita al concetto di UASF, sigla che sta per user-activated soft fork.

Al contrario, SegWit2x proponeva una modifica sostanziale a una delle regole fondamentali di Bitcoin, e dato che gli sviluppatori non hanno raggiunto un consenso sulla sua adozione e implementazione, il movimento SegWit2x è stato sospeso.


In chiusura

L'implementazione di SegWit ha segnato il più grande aggiornamento del protocollo di Bitcoin, e il fatto che sia stato supportato e implementato dalla comunità decentralizzata lo rende ancora più interessante.

L'introduzione di SegWit è stato un importante passo avanti nella risoluzione di molti problemi legati ai network di Bitcoin e di altre blockchain - soprattutto in termini di scalabilità. Attraverso la combinazione di SegWit e dei protocolli second-layer, i network blockchain possono gestire un maggior numero di transazioni, con più efficienza e costi inferiori.

Pur essendo una soluzione potente e innovativa, SegWit non ha ancora raggiunto la piena adozione. Attualmente, la percentuale di indirizzi Bitcoin che utilizzano SegWit è intorno al 53%.