Segregated Witness (SegWit): La soluzione di scalabilità di Bitcoin
Il testimone segregato (SegWit) è stato implementato nel 2017, quando la guerra nella comunità bitcoin sulle dimensioni dei blocchi ha raggiunto il suo apice.
C’erano persone che spingevano per un aumento della dimensione dei blocchi oltre il limite di 1 MB stabilito inizialmente dal suo creatore, Satoshi Nakamoto. L’argomentazione era che, man mano che il bitcoin continua a scalare, sempre più persone lo utilizzeranno e la dimensione del blocco di 1 MB sarebbe stata vista come un limite perché poteva gestire solo un numero limitato di transazioni al secondo.
Questa limitazione ha portato al famoso “dibattito sulla dimensione del blocco”, con diverse parti della comunità che sostenevano varie soluzioni. Alcuni volevano aumentare la dimensione del blocco, mentre altri preferivano soluzioni fuori catena o di livello secondario.
Il disaccordo sull’approccio da adottare per scalare Bitcoin ha portato a diversi fork nel mondo delle criptovalute. Bitcoin Cash (BCH), un’altra criptovaluta, è stata creata a seguito di un disaccordo su questo tema e ha iniziato con un limite di dimensione dei blocchi di 8 MB, che è stato successivamente aumentato.
In questo articolo non entreremo nei dettagli della guerra delle dimensioni dei blocchi, ma se sei interessato puoi leggere il libro “The Block Size War” di Jonathan Bier.
L’implementazione di SegWit nella rete Bitcoin.
SegWit è stato introdotto inizialmente come soluzione al problema della malleabilità delle transazioni e successivamente come metodo per aumentare la dimensione effettiva dei blocchi senza dover ricorrere a un hard fork. Lo sviluppatore di Bitcoin Pieter Wuille lo ha presentato per la prima volta alla conferenza Scaling Bitcoin nel dicembre 2015.
Implementazione in Bitcoin Core
Gli sviluppatori hanno integrato il codice SegWit nel codice di Bitcoin Core. Data l’importanza di questo cambiamento, il codice è stato sottoposto a una revisione e a test approfonditi.
è stato implementato in Bitcoin come soft fork. Un soft fork è un modo compatibile con il passato per aggiornare una blockchain. Ciò significa che i nodi non aggiornati possono ancora partecipare alla rete. Spesso vengono chiamati “nodi legacy”.
Attivazione dei minatori tramite BIP 9
SegWit utilizzava i bit di versione di BIP 9 per la distribuzione. Ciò significa che SegWit si sarebbe attivato quando il 95% dei minatori avesse segnalato il proprio supporto entro un singolo periodo di regolazione della difficoltà (circa due settimane). Tuttavia, ottenere un supporto sufficiente da parte dei minatori richiedeva tempo.
Aggiornamento della rete
Una volta attivato, i nodi Bitcoin della rete hanno iniziato a riconoscere e convalidare le transazioni SegWit. I portafogli e gli altri fornitori di servizi hanno poi integrato il supporto per le transazioni SegWit, un processo che è continuato nei mesi e negli anni successivi.
Adozione continua
Dopo l’attivazione, l’ecosistema più ampio (portafogli, exchange, fornitori di pagamenti) ha iniziato ad adottare e supportare SegWit, un processo graduale.
Nel corso del tempo, una percentuale crescente di transazioni Bitcoin ha utilizzato SegWit, beneficiando della sua struttura di commissioni ridotte.
Cos’è il Segregated Witness (SegWit)?
Prima dell’introduzione di SegWit, la rete blockchain di Bitcoin (e di altre criptovalute) era afflitta dalla possibilità di malleabilità delle transazioni.
In sostanza, la malleabilità delle transazioni si riferisce alla possibilità di cambiare l’identificatore unico della transazione (chiamato ID della transazione o TXID) di una transazione prima che questa venga confermata, senza alterare gli elementi essenziali della transazione stessa (ossia mittente, destinatario e importo).
Dopo l’attivazione di SegWitè stato introdotto un cambiamento nel formato delle transazioni di bitcoin che non solo ha risolto il problema della malleabilità delle transazioni, ma ha anche permesso di aumentare efficacemente la dimensione dei blocchi, senza aumentare il limite dei blocchi stessi.
Come Segregated Witness (SegWit) ha risolto i problemi

Prima di SegWit, nel protocollo Bitcoin originale, il TXID veniva calcolato facendo l’hashing dell’intera transazione, compresi i dati dei testimoni (firme). Poiché le firme potevano essere leggermente alterate senza cambiare il significato effettivo della transazione, il TXID poteva essere modificato da una terza parte prima che la transazione fosse confermata.
SegWit sta per Segregated Witness e “Witness” significa firma. Quindi dal nome possiamo avere un’idea abbastanza precisa di cosa fa questo aggiornamento.
“Rimuove” la firma dalla transazione. Questa separazione significa che i dati del testimone (firma) non vengono inclusi nel calcolo dell’ID della transazione, rendendo il formato della transazione più flessibile e risolvendo il problema della malleabilità della transazione.
Più spazio nei blocchi
Con la separazione dei dati del testimone, in ogni blocco c’è effettivamente più spazio per le transazioni. Sebbene non si tratti di un aumento diretto delle dimensioni del blocco, si tratta di un aggiustamento delle modalità di calcolo delle dimensioni del blocco. Questa modifica, definita “peso del blocco”, ha permesso di inserire un maggior numero di transazioni all’interno di un blocco, contribuendo così ad alleviare leggermente i problemi di scalabilità
Introduzione del concetto di peso del blocco
Con SegWit, il concetto di dimensione del blocco è stato in qualche modo ridefinito. Invece di un semplice blocco di 1 MB, Bitcoin ha implementato un sistema di “peso del blocco”. Questo sistema assegna “pesi” diversi alle varie parti di una transazione.
- La parte principale di una transazione (senza i dati dei testimoni) ha un peso di 1 byte per byte.
- I dati dei testimoni (come le firme) hanno un peso di 1/4 di byte per byte.
Pertanto, con questo sistema di ponderazione, un blocco può avere un peso massimo di 4 milioni di unità. Ciò significa che, a seconda della composizione delle transazioni, i blocchi possono essere più grandi di 1 MB, fino a un limite teorico di 4 MB se fossero composti interamente da dati dei testimoni (uno scenario estremo e improbabile). In realtà, i blocchi con Tx SegWit spesso superano di poco 1 MB, mentre 2 MB sono un limite superiore più pratico per le transazioni medie.
Maggiore sicurezza
Oltre al suo scopo principale, SegWit ha anche migliorato la sicurezza della rete Bitcoin. L’aggiornamento ha modificato il modo in cui i dati vengono firmati, riducendo alcuni rischi associati alla firma delle transazioni.
Pur offrendo diversi vantaggi, la sua adozione è stata graduale.
Non tutti i fornitori di servizi, i portafogli e gli scambi hanno immediatamente supportato le transazioni SegWit. Con il passare del tempo, man mano che un numero maggiore di entità lo adottava, la rete ha iniziato a coglierne appieno i vantaggi. Osservando i dati delle transazioni, si può notare una percentuale crescente di transazioni sulla rete che utilizzano il Segregated Witness con il passare del tempo.
L’effetto sulle transazioni Bitcoin dopoSegWit
La separazione della Firma (il Testimone) ha permesso di inserire più transazioni in un blocco. In questo modo è diminuita la competizione per lo spazio nei blocchi, il che ha portato a una diminuzione delle commissioni per le transazioni.
Con più spazio nei blocchi, le transazioni potevano essere confermate più velocemente, soprattutto nei periodi di maggior traffico.
Dopo SegWit, nuovi formati di indirizzo come bech32 hanno iniziato a guadagnare popolarità.
Mentre gli indirizzi che iniziano con “1” sono indirizzi legacy, quelli che iniziano con “bc1” sono nativi di SegWit e consentono di beneficiare appieno dell’aggiornamento.
Esempi:
Bech32: bc1qar0srrr7xfkvy5l643lydnw9re59gtzzwf5mdq
Legacy: 157fRrqAKrDyGHr1Bx3yDxeMv8Rh45aUet
Come SegWit ha aperto la strada alla rete Lightning:
La Lightning Network (LN) è una soluzione di secondo livello per Bitcoin, progettata per facilitare transazioni più veloci e scalabili.
La rete Lightning si basa su transazioni con impegni concatenati.
Se un malintenzionato riesce a modificare il TXID di una transazione precedente nella catena, le transazioni successive non saranno valide perché fanno riferimento al TXID della transazione precedente.
Questo destabilizzerebbe e potenzialmente comprometterebbe la sicurezza dei canali LN.
Il ruolo di SegWit:
SegWit ha risolto il problema della malleabilità delle transazioni rimuovendo i dati della firma (dati del testimone) dalla parte dei dati della transazione che viene sottoposta a hash per creare il TXID
In questo modo, anche se i dati del testimone vengono alterati, il TXID rimane lo stesso. Con la risoluzione di questo problema di malleabilità, sono state gettate le basi per canali LN affidabili e sicuri
Efficienza dello spazio dei blocchi
Anche se non è una necessità assoluta per l’LN, SegWit ha reso più efficiente l’uso dello spazio dei blocchi segregando i dati dei testimoni
Questo aiuta indirettamente l’LN perché l’apertura e la chiusura dei canali LN comportano transazioni sulla catena. Un uso più efficiente dello spazio dei blocchi significa che queste transazioni sono più economiche, incentivando ulteriormente l’uso di LN
Maggiore flessibilità dei contratti smart
Le modifiche apportate da SegWit al sistema di scripting di Bitcoin consentono una maggiore flessibilità. Questo favorisce anche gli smart contract più complessi e le soluzioni off-chain come LN
In sintesi, mentre le basi teoriche della Lightning Network avrebbero potuto essere concepite anche senza SegWit, le soluzioni di quest’ultimo a specifiche sfide tecniche hanno reso possibile l’implementazione pratica e sicura della LN
Conclusioni:
Segregated Witness, un aggiornamento fondamentale del protocollo di Bitcoin, ha affrontato la malleabilità delle transazioni ottimizzando lo spazio dei blocchi. La sua implementazione ha aperto la strada a una migliore scalabilità. Riducendo le commissioni, ha posto le basi per soluzioni avanzate come la Lightning Network. A testimonianza dell’adattabilità di Bitcoin, SegWit dimostra l’impegno della rete a evolversi continuamente in risposta alle sue sfide
Se vuoi approfondire e saperne di più sul Bitcoin, puoi consultare il nostro Bitcoin Hub per altri articoli utili!
FAQ:
1. Cos’è il Segregated Witness (SegWit)? SegWit è un aggiornamento del protocollo che modifica il modo in cui i dati vengono memorizzati all’interno delle transazioni Bitcoin, migliorando la capacità della blockchain e risolvendo il problema della malleabilità delle transazioni
2. Perché è stato introdotto SegWit? SegWit è stato introdotto per migliorare la scalabilità della rete Bitcoin, consentendole di elaborare un maggior numero di transazioni senza aumentare significativamente le dimensioni dei blocchi. Inoltre ha risolto il problema della malleabilità delle transazioni
3. Come funziona SegWit? SegWit separa i dati dei testimoni (firme) dai dati delle transazioni. In questo modo le transazioni si riducono di dimensioni, consentendo di inserire un maggior numero di transazioni in un blocco
4. Cos’è la malleabilità delle transazioni? La malleabilità delle transazioni si riferisce alla possibilità di cambiare l’ID univoco della transazione senza modificarne il contenuto. SegWit risolve questo problema garantendo che i dati della firma non influenzino l’ID della transazione
5. Come influisce SegWit sulle commissioni delle transazioni? Ottimizzando lo spazio all’interno dei blocchi, SegWit può portare a una riduzione delle commissioni di transazione, in quanto un maggior numero di transazioni può essere inserito in un blocco
6. SegWit è stato un hard o soft fork? SegWit è stato introdotto come soft fork, ovvero compatibile con i nodi che non hanno effettuato l’aggiornamento
7. SegWit influisce sulla sicurezza di Bitcoin? No, SegWit mantiene la sicurezza della rete Bitcoin ottimizzando la sua capacità di transazione
8. In che modo SegWit ha aperto la strada alla Lightning Network? Risolvendo il problema della malleabilità delle transazioni, SegWit ha reso più fattibile lo sviluppo di soluzioni di secondo livello come la Lightning Network
9. Tutti i portafogli Bitcoin supportano SegWit? Anche se molti portafogli moderni supportano le transazioni SegWit, è sempre una buona idea verificare con il fornitore del tuo portafoglio specifico
10. Come posso sapere se un indirizzo Bitcoin è abilitato a SegWit? Gli indirizzi abilitati a SegWit iniziano tipicamente con “3” (formato P2SH) o “bc1” (formato bech32). Tuttavia, non tutti gli indirizzi che iniziano con “3” sono indirizzi SegWit.
Michele D'Angelo
Michele è sempre stato appassionato di tecnologia, in particolare del lato tecnico delle cose. Quando si tratta di tecnologia blockchain, ama approfondire gli aspetti di bitcoin, blockchain e criptovalute in generale. È un introverso che ama passare il tempo da solo a ricercare e scrivere su questi argomenti.
