Che cos'è Segregated Witness (SegWit)?
Fondamenti
Segregated Witness (SegWit) è un aggiornamento del protocollo introdotto nel 2015 come soluzione al problema di scalabilità affrontato dalle blockchain. Attualmente, la blockchain di Bitcoin può elaborare solo circa 7 transazioni al secondo, tempi che risultano lunghi rispetto alle soluzioni di pagamento convenzionali e alle reti finanziarie che possono gestire migliaia di transazioni al secondo. Il concetto alla base di SegWit è riorganizzare i dati del blocco in modo che le firme non siano più collocate insieme ai dati delle transazioni. L'aggiornamento prevede la separazione dei witness (firme) dai dati delle transazioni, permettendo di memorizzare più transazioni in un singolo blocco e aumentando la capacità di elaborazione delle transazioni della rete.
SegWit è stato sviluppato nel 2015 da Pieter Wuille, sviluppatore di Bitcoin, e da altri contributori di Bitcoin Core. Nell'agosto 2017 l'aggiornamento SegWit è stato implementato come soft fork sulla rete Bitcoin. Oggi diversi progetti di criptovalute utilizzano SegWit, tra cui Bitcoin e Litecoin. L'aggiornamento del protocollo ha portato numerosi vantaggi, come il miglioramento della velocità delle transazioni e della capacità dei blocchi, oltre alla risoluzione del bug di malleabilità delle transazioni. In media, la rete Bitcoin valida un nuovo blocco ogni 10 minuti, con ogni blocco contenente diverse transazioni. La dimensione del blocco influisce sul numero di transazioni che possono essere confermate in ciascun blocco.
Vantaggi di SegWit
SegWit offre diversi vantaggi alla rete Bitcoin. Uno dei benefici più significativi è l'aumento della capacità dei blocchi. Con SegWit è possibile inserire più transazioni in un blocco poiché i dati delle firme vengono rimossi dall'input. In precedenza, i dati delle firme potevano occupare fino al 65% di un blocco; ora sono separati dal campo input, permettendo all'effettiva dimensione del blocco di aumentare da 1 MB a circa 4 MB.
SegWit non è un aumento reale della dimensione del blocco ma piuttosto una soluzione ingegneristica per aumentare la dimensione effettiva del blocco. La dimensione nominale del blocco rimane a 1 MB, ma il limite effettivo è 4 MB, calcolato usando il concetto di peso del blocco (block weight).
Con più transazioni elaborate in ogni blocco, SegWit aumenta anche la velocità delle transazioni e riduce i costi. Prima di SegWit, le commissioni potevano superare i $30 per transazione, mentre SegWit ha ridotto significativamente il costo a meno di $1 per transazione.
SegWit ha anche risolto il problema della malleabilità delle transazioni, che rappresentava un problema significativo per le transazioni Bitcoin. Alterare la firma di una transazione poteva corrompere uno scambio tra due parti, e i dati memorizzati sulla blockchain sono immutabili, rendendo le transazioni invalide permanentemente registrate sulla catena. SegWit ha risolto questo problema separando le firme dai dati delle transazioni, consentendo ulteriori innovazioni nella comunità blockchain, come protocolli di secondo livello e smart contract.
SegWit e il Lightning Network
La correzione del bug di malleabilità ha aperto la strada allo sviluppo di protocolli di secondo livello, piattaforme costruite sopra blockchain come Bitcoin. Un protocollo popolare è il Lightning Network, una rete di micropagamenti off-chain che mira a confermare più transazioni in tempi ridotti, offrendo transazioni più veloci per gli utenti. Le transazioni vengono temporaneamente registrate off-chain e successivamente processate dalla rete Bitcoin.
Inizialmente sviluppato per Bitcoin, il Lightning Network è valutato anche da altri progetti blockchain per ridurre i tempi di conferma delle transazioni e sviluppare nuove soluzioni ai problemi di scalabilità.
SegWit vs. SegWit2x
La proposta SegWit2x (S2X) per la rete Bitcoin avrebbe richiesto un aggiornamento tramite hard fork, mentre SegWit è stato implementato come soft fork retrocompatibile. La differenza chiave tra SegWit e SegWit2x è che quest'ultimo non avrebbe solo cambiato il modo di raggruppare le transazioni, ma avrebbe anche aumentato la dimensione del blocco (da 1MB a 2MB). Tuttavia, blocchi più grandi avrebbero aumentato il carico per gli operatori di nodi e i miner, poiché ci sarebbe stato più dato da gestire.
Mentre la proposta SegWit è stata sostenuta e applicata dalla comunità Bitcoin, il movimento SegWit2x è stato infine sospeso a causa dell'impossibilità per gli sviluppatori di raggiungere un consenso sulla sua adozione e implementazione. L'aggiornamento SegWit ha dato origine anche al concetto di UASF, ossia user-activated soft fork.
SegWit annidato vs. SegWit nativo (bech32)
Il SegWit nativo, chiamato anche bech32, è una versione migliorata del Nested SegWit. Offre diversi vantaggi, tra cui velocità di transazione più elevate, migliori meccanismi di rilevamento degli errori e commissioni più basse. Gli indirizzi bech32 sono anche più leggibili poiché sono in lettere minuscole.
È importante notare che le transazioni blockchain sono compatibili tra indirizzi non-SegWit (Legacy), Nested SegWit e Native SegWit. Tuttavia, non tutti gli exchange e i wallet di criptovalute supportano SegWit, quindi potresti non essere in grado di ritirare fondi direttamente su un indirizzo SegWit.
Conclusione
Il supporto e l'implementazione di SegWit da parte della comunità decentralizzata hanno segnato l'aggiornamento di protocollo più significativo per Bitcoin. SegWit ha risolto numerosi problemi di scalabilità legati a Bitcoin e ad altre reti blockchain, rendendolo un passo cruciale in avanti. Grazie a SegWit e ai protocolli di secondo livello, le reti blockchain possono gestire più transazioni in modo efficiente e a costi inferiori.
Tuttavia, nonostante sia una soluzione potente e innovativa, l'adozione completa di SegWit non è ancora stata raggiunta. Attualmente, solo il 53% degli indirizzi Bitcoin utilizza SegWit.