La storia di Bitcoin è punteggiata da aggiornamenti critici che ne hanno definito la traiettoria come valuta digitale globale. Tra questi traguardi tecnici, pochi sono stati tanto trasformativi o tanto dibattuti quanto l'implementazione di Segregated Witness. Spesso indicato con il suo acronimo SegWit, questo aggiornamento del protocollo è stato attivato nell'agosto 2017 dopo un periodo di intensa discussione comunitaria e costruzione di consenso. Ha rappresentato un momento cruciale per la rete, affrontando problemi di lunga data relativi a scalabilità e sicurezza.
Prima di SegWit, la rete Bitcoin affrontava una pressione crescente da parte della sua base utenti in espansione. Con l'aumento dell'adozione, i limiti della dimensione originale del blocco sono diventati un collo di bottiglia, portando a congestione della rete e costi di transazione in aumento. Sviluppatori e stakeholder hanno cercato una soluzione che potesse alleviare queste pressioni senza compromettere la natura decentralizzata della blockchain. Segregated Witness è emerso come una soluzione ingegneristica intelligente che ha ottimizzato il modo in cui i dati vengono memorizzati, anziché semplicemente aumentare il limite di dimensione del blocco.
L'aggiornamento ha fatto molto di più che migliorare la capacità. Ha alterato fondamentalmente i meccanismi di elaborazione delle transazioni affrontando una vulnerabilità tecnica nota come malleabilità delle transazioni. Risolvendo questo problema, SegWit ha posto le basi necessarie per soluzioni di secondo livello come la Lightning Network. Questo ha spianato la strada per pagamenti istantanei e a basso costo che in precedenza erano difficili da implementare in modo sicuro.
Comprendere SegWit richiede di guardare oltre le semplici specifiche tecniche. Coinvolge l'esame del modello di governance di Bitcoin, dell'economia dello spazio dei blocchi e delle dinamiche comunitarie che guidano l'evoluzione del protocollo. Questo aggiornamento ha dimostrato che Bitcoin poteva adattarsi e scalare attraverso soft fork, preservando la compatibilità all'indietro mentre introduceva miglioramenti radicali all'efficienza e all'utilità.
La Sfida della Scalabilità
Bitcoin è stato originariamente progettato con un limite sulla dimensione dei blocchi che potevano essere aggiunti alla blockchain. Questo limite, fissato a 1 megabyte (MB), serviva come misura protettiva contro attacchi spam nei primi giorni della rete. Tuttavia, man mano che Bitcoin cresceva da un esperimento oscuro a un asset riconosciuto globalmente, questa funzione di sicurezza ha iniziato a fungere da vincolo alla crescita.
Il Collo di Bottiglia della Dimensione del Blocco
Ogni transazione Bitcoin consiste in dati che devono essere elaborati e memorizzati dai miner. Questi dati includono input, output e firme digitali che dimostrano la proprietà dei fondi spesi. Nell'era pre-SegWit, tutte queste informazioni dovevano competere per lo spazio all'interno del rigido limite di 1 MB del blocco.
Con l'aumento della popolarità della rete, la domanda di spazio nei blocchi ha frequentemente superato l'offerta disponibile. Gli utenti si sono trovati in una guerra d'aste, allegando commissioni più alte alle loro transazioni per incentivare i miner a includerle nel blocco successivo. Questa dinamica ha portato a tempi di conferma più lenti per gli utenti che pagavano commissioni standard.
Durante i periodi di picco, la rete è diventata congestionata, rendendo impraticabili pagamenti piccoli o microtransazioni. La comunità ha riconosciuto che affinché Bitcoin funzionasse efficacemente sia come store of value che come mezzo di scambio, il throughput della rete doveva essere aumentato. Il dibattito si è concentrato su come ottenere questa scalabilità senza sacrificare sicurezza o decentralizzazione.
Il Dilemma del Hard Fork
Una soluzione proposta al problema della scalabilità era un hard fork. Un hard fork è un cambiamento radicale al protocollo che rende blocchi/transazioni precedentemente invalidi validi, o viceversa. Nel contesto della scalabilità, ciò avrebbe significato semplicemente riscrivere il codice per consentire blocchi più grandi, come 2 MB o 8 MB.
Tuttavia, gli hard fork comportano rischi significativi. Richiedono che tutti i nodi della rete aggiornino il loro software simultaneamente. Se un segmento della comunità rifiuta l'aggiornamento o non è d'accordo con il cambiamento, la blockchain può dividersi in due catene separate. Questo è accaduto con la creazione di Bitcoin Cash, che ha scelto di aumentare la dimensione del blocco tramite un hard fork.
Gli sviluppatori di Bitcoin Core hanno dato priorità a un approccio più sicuro noto come soft fork. Un soft fork è un aggiornamento compatibile all'indietro, il che significa che i nodi che eseguono versioni precedenti del software possono ancora partecipare alla rete. SegWit è stato progettato come soft fork per garantire che la rete rimanesse unita pur fornendo i miglioramenti di capacità necessari.
Consenso e Governance
Il percorso per attivare SegWit ha evidenziato la natura unica della governance di Bitcoin. A differenza dei sistemi centralizzati in cui un leader detta i cambiamenti, Bitcoin si basa sul consenso tra un gruppo diversificato di partecipanti. Questo include miner, sviluppatori, operatori di nodi e utenti finali.
La proposta per SegWit, nota come Bitcoin Improvement Proposal (BIP) 141, richiedeva una soglia di supporto molto alta dai miner per attivarsi. Specificamente, il 95% della potenza di hash di mining doveva segnalare la prontezza durante un periodo di due settimane. Questa soglia elevata garantisce che gli aggiornamenti abbiano un supporto schiacciante prima di essere imposti, minimizzando il rischio di instabilità della rete.
Come Funziona SegWit Sotto il Cofano
L'innovazione principale di Segregated Witness è suggerita dal suo nome. "Segregated" significa separare, e "Witness" si riferisce alle firme digitali che verificano una transazione. Nelle transazioni Bitcoin legacy, i dati della firma digitale erano intrecciati con i dati della transazione, occupando una porzione significativa dello spazio prezioso del blocco da 1 MB.
Separazione dei Dati Witness
SegWit ha ristrutturato il formato della transazione spostando i dati witness (firme) fuori dalla struttura principale del blocco. Sebbene questi dati siano ancora registrati e validati, sono memorizzati in una struttura separata che corre parallela al blocco base della transazione. Questa separazione è stata la chiave per sbloccare più capacità senza aumentare tecnicamente il limite di 1 MB per i nodi vecchi.
Per visualizzarlo, immaginate un treno che rappresenta un blocco Bitcoin. Nel sistema legacy, passeggeri (dettagli della transazione) e il loro bagaglio (firme) erano tutti ammassati nelle stesse carrozze. Il treno aveva un limite rigido sul volume che poteva trasportare.
SegWit ha efficacemente aggiunto una carrozza merci specializzata sul retro del treno specificamente per il bagaglio. Spostando il bagaglio pesante fuori dalle carrozze passeggeri, il treno poteva improvvisamente trasportare significativamente più passeggeri all'interno degli stessi scomparti principali. Il "bagaglio" viaggia ancora con il treno, ma non occupa più lo spazio premium necessario per i passeggeri stessi.
Peso del Blocco vs. Dimensione del Blocco
Per implementare questo cambiamento, SegWit ha introdotto un nuovo concetto chiamato "block weight". La vecchia misurazione della dimensione del blocco in byte semplici è stata sostituita da un sistema che assegna "pesi" diversi a diverse parti di una transazione. Questo ha permesso alla rete di differenziare tra dati critici della transazione e dati witness.
In questo nuovo sistema, i dati base della transazione sono contati alla loro dimensione piena, mentre i dati witness sono scontati. Specificamente, i dati witness pesano significativamente meno dei dati della transazione nel calcolo del limite del blocco. Questo cambiamento ha efficacemente aumentato il limite di dimensione del blocco da 1 MB a un teorico 4 MB di "unità di peso".
Questo spostamento ha incentivato utenti e fornitori di wallet ad adottare indirizzi SegWit. Le transazioni che utilizzavano il nuovo formato erano più economiche da inviare perché consumavano meno "peso" in un blocco rispetto alle transazioni legacy. Questo incentivo economico ha aiutato a guidare l'adozione dell'aggiornamento in tutto l'ecosistema.
Virtual Bytes (vBytes)
Con l'introduzione del peso del blocco, il concetto di commissioni di transazione è anche evoluto. Le commissioni hanno iniziato a essere calcolate in "virtual bytes" (vBytes) anziché byte grezzi. Un vByte è un'unità di misura derivata dal peso della transazione.
Poiché i dati witness sono scontati, una transazione SegWit ha una dimensione vByte più piccola di una transazione legacy della stessa dimensione grezza. Questo significa che per lo stesso tasso di commissione (satoshis per byte), una transazione SegWit costa meno in commissioni totali.
Questo guadagno di efficienza è stato immediato per gli utenti che sono passati a wallet compatibili con SegWit. Ha permesso alla rete di elaborare più transazioni al secondo, aumentando efficacemente il throughput senza i pericoli associati a un hard fork. L'ottimizzazione ha dimostrato che un'ingegneria intelligente poteva spremere più prestazioni dall'infrastruttura esistente.
Risoluzione della Malleabilità delle Transazioni
Sebbene la scalabilità fosse la funzione di punta di SegWit, l'aggiornamento ha risolto un altro difetto tecnico critico noto come malleabilità delle transazioni. Questo problema affliggeva Bitcoin fin dalla sua nascita e agiva come una barriera maggiore allo sviluppo di protocolli di secondo livello avanzati.
La malleabilità si riferisce alla capacità di un terzo di cambiare l'identificatore univoco (TXID) di una transazione prima che sia confermata sulla blockchain. Importante, questo cambiamento poteva essere fatto senza invalidare la transazione stessa o modificare i dettagli fondamentali come mittente, ricevente o importo.
Nel sistema legacy, la firma digitale era inclusa nel calcolo dell'hash della transazione (il TXID). Tuttavia, le firme crittografiche possono essere rappresentate matematicamente in modi leggermente diversi pur rimanendo valide. Un attaccante o un nodo relay poteva modificare leggermente i dati della firma, risultando in un TXID completamente diverso.
Se il TXID cambiava, il mittente poteva credere che la transazione fosse fallita, mentre il ricevente (o l'attaccante) confermava la versione modificata. Questo creava confusione e rendeva pericoloso incatenare transazioni non confermate. Se la prima transazione in una catena avesse il suo ID cambiato, qualsiasi transazione successiva che la riferiva sarebbe diventata invalida.
SegWit ha risolto questo rimuovendo i dati della firma dalla parte della transazione utilizzata per generare il TXID. Poiché il "witness" era segregato, qualsiasi cambiamento ai dati della firma non avrebbe più influenzato l'ID della transazione. Questo ha reso l'ID della transazione immutabile dal momento della sua creazione.
Abilitazione della Lightning Network
La correzione della malleabilità delle transazioni è stata il catalizzatore per la Lightning Network. La Lightning Network è una soluzione di scalabilità di layer-2 che si basa fortemente sulla capacità di creare catene di transazioni non confermate in modo sicuro.
Le Basi per il Layer 2
Affinché i canali di pagamento funzionino, due parti aprono efficacemente un conto congiunto sulla blockchain e poi scambiano transazioni firmate avanti e indietro off-chain. Queste transazioni off-chain aggiornano il saldo del canale senza toccare la blockchain principale.
Tuttavia, queste transazioni off-chain dipendono dalla transazione "funding" iniziale che deve essere ancorata in modo sicuro. Se la malleabilità delle transazioni fosse ancora possibile, un attore malizioso poteva potenzialmente alterare l'ID della transazione funding. Questo avrebbe invalidato tutta la logica off-chain successiva concordata dalle parti.
Sicurezza dell'ID della transazione fornita da SegWit ha fornito la base solida necessaria per questi smart contract. Ha permesso ai nodi Lightning di fidarsi che le transazioni che firmavano off-chain sarebbero rimaste valide quando eventualmente regolate sulla rete Bitcoin principale.
Regolamenti Istantanei
Con il rischio di malleabilità rimosso, la Lightning Network poteva essere deployata in sicurezza. Questo ha abilitato regolamenti quasi istantanei di pagamenti tra utenti ovunque nel mondo. Mentre SegWit ha fornito un modesto aumento di capacità on-chain, abilitare Lightning ha offerto il potenziale per una scalabilità off-chain virtualmente illimitata.
Gli utenti potevano ora effettuare transazioni milioni di volte senza appesantire la blockchain principale, regolando solo il risultato finale. Questa combinazione di efficienza on-chain (tramite SegWit) e scalabilità off-chain (tramite Lightning) rappresenta la strategia primaria di Bitcoin per gestire il volume di transazioni globale.
La Saga dell'Attivazione: BIP 141 e UASF
Il deployment di SegWit non è stato solo un aggiornamento tecnico; è stato un evento storico nella governance decentralizzata. Il processo ha rivelato le complesse dinamiche di potere tra miner, sviluppatori e utenti all'interno dell'ecosistema Bitcoin.
La Proposta (BIP 141)
L'aggiornamento SegWit è stato formalmente proposto come Bitcoin Improvement Proposal 141. Per attivarsi senza intoppi, gli sviluppatori hanno impostato una soglia che richiedeva il 95% dei blocchi a segnalare supporto per l'aggiornamento all'interno di un'epoca di difficoltà di due settimane. Questo era inteso per garantire che la rete non si dividesse.
Tuttavia, raggiungere questo consenso si è rivelato difficile. Vari interessi politici ed economici tra i principali pool di mining hanno portato a uno stallo. Alcuni miner preferivano un hard fork per aumentare direttamente la dimensione del blocco, mentre altri erano esitanti ad aggiornare la loro infrastruttura.
Per mesi, la segnalazione di attivazione è rimasta ben al di sotto della soglia richiesta. Sembrava che l'aggiornamento potesse arenarsi indefinitamente, evidenziando un potenziale difetto nella dipendenza dalla segnalazione dei miner per gli aggiornamenti del protocollo.
User Activated Soft Fork (BIP 148)
Frustrati dalla mancanza di progressi, è emerso un movimento grassroots all'interno della comunità. Questa iniziativa era nota come User Activated Soft Fork (UASF), o BIP 148. Il concetto era rivoluzionario: invece di aspettare che i miner votassero, la maggioranza economica di nodi (utenti, exchange e aziende) avrebbe imposto l'aggiornamento da sé.
I partecipanti all'UASF eseguivano una versione del software Bitcoin che rifiutava qualsiasi blocco che non segnalasse supporto per SegWit dopo una certa data. Questo ha efficacemente tracciato una linea nella sabbia. Se i miner continuavano a ignorare SegWit, i loro blocchi sarebbero stati rifiutati da una porzione significativa della rete, facendoli perdere entrate.
La minaccia di un User Activated Soft Fork ha spostato l'equilibrio di potere. Ha dimostrato che mentre i miner elaborano le transazioni, gli utenti definiscono le regole del protocollo. Di fronte alla pressione economica dell'UASF, i miner hanno ceduto e SegWit è stato bloccato e attivato nell'agosto 2017.
Tipi di Indirizzi e Compatibilità
A seguito dell'attivazione di SegWit, l'ecosistema Bitcoin ha visto l'emergere di diversi formati di indirizzi. Comprendere questi formati è essenziale per gli utenti che vogliono sfruttare i minori costi e i benefici di efficienza offerti da SegWit.
Indirizzi Legacy
Il formato originale di indirizzo Bitcoin è noto come Legacy. Questi indirizzi tipicamente iniziano con il numero 1. Le transazioni inviate da indirizzi Legacy sono più grandi in dimensione perché non utilizzano la separazione dei dati witness. Di conseguenza, sono i più costosi in termini di commissioni di transazione.
Nested SegWit (P2SH)
Per garantire un'adozione fluida, gli sviluppatori hanno introdotto un layer di compatibilità noto come Pay to Script Hash (P2SH). Questi indirizzi iniziano con il numero 3. Hanno permesso agli utenti di inviare transazioni SegWit anche se il wallet del mittente non supportava pienamente il nuovo formato nativo.
Nested SegWit ha fornito un terreno intermedio. Offriva significativi risparmi sulle commissioni rispetto agli indirizzi Legacy, sebbene non quanto l'implementazione pienamente nativa. Per molto tempo, questo è stato lo standard per molti exchange e fornitori di wallet mentre aggiornavano i loro sistemi.
Native SegWit (Bech32)
Il formato più efficiente è Native SegWit, noto anche come Bech32. Questi indirizzi iniziano con bc1. Gli indirizzi Native SegWit sono distinti perché sono case-insensitive, riducendo il rischio di errori di battitura.
Ancora più importante, le transazioni Native SegWit sono più piccole in virtual bytes rispetto ai loro omologhi Nested. Questo risulta nelle commissioni di transazione più basse possibili per gli utenti. Man mano che l'ecosistema è maturato, Native SegWit è diventato lo standard predefinito per la maggior parte dei wallet e servizi moderni.
| Tipo di Indirizzo | Prefisso | Efficienza Commissioni | Compatibilità |
|---|---|---|---|
| Legacy | 1... | Bassa | Universale |
| Nested SegWit | 3... | Media | Alta |
| Native SegWit | bc1... | Alta | Wallet Moderni |
Oltre SegWit: Taproot e Ordinals
L'implementazione riuscita di SegWit ha dimostrato che Bitcoin poteva sottoporsi a aggiornamenti complessi senza disrupting la sua proposizione di valore principale. Questo successo ha spianato la strada per innovazioni successive che hanno ulteriormente ampliato le capacità della rete.
Taproot e Firme Schnorr
Nel novembre 2021, Bitcoin ha attivato l'aggiornamento Taproot. Taproot è stato costruito direttamente sulla base posta da SegWit. Ha introdotto le firme Schnorr, che hanno consentito una maggiore efficienza e privacy.
Come SegWit, Taproot ha alterato il modo in cui i dati sono memorizzati sulla blockchain. Ha abilitato l'aggregazione delle firme, dove più firme in una transazione complessa potevano essere combinate in una singola firma. Questo ha reso i smart contract complessi indistinguibili dalle transazioni regolari, migliorando la privacy mentre risparmiava spazio nei blocchi.
Senza i cambiamenti strutturali introdotti da SegWit, specificamente il sistema di versionamento degli script, aggiornamenti come Taproot sarebbero stati significativamente più difficili da deployare. SegWit ha stabilito un chiaro percorso per l'estensibilità futura.
L'Ascesa degli Ordinals
Più recentemente, l'introduzione di Bitcoin Ordinals ha sfruttato l'infrastruttura SegWit in modi inaspettati. Gli Ordinals permettono agli utenti di iscrivere dati arbitrari—come immagini, testo o codice—direttamente su singoli satoshi.
Questo è possibile perché SegWit ha scontato il "peso" dei dati witness. Gli iscriventi si sono resi conto che potevano memorizzare grandi quantità di dati nel campo witness di una transazione a una frazione del costo di memorizzarli nell'area principale del blocco. Sebbene controverso per alcuni che lo vedono come spam, gli Ordinals hanno dimostrato la flessibilità dello spazio dati witness.
Questo caso d'uso inaspettato evidenzia la natura robusta del design SegWit. Creando una corsia separata e scontata per i dati, l'aggiornamento ha involontariamente creato una tela per artefatti digitali, diversificando ulteriormente l'utilità della blockchain Bitcoin.
Conclusione
Segregated Witness rappresenta una testimonianza della resilienza e adattabilità della rete Bitcoin. Di fronte a un collo di bottiglia critico che minacciava di soffocare la crescita, la comunità si è unita dietro una soluzione elegante, compatibile all'indietro e lungimirante. Riconfigurando come i dati delle transazioni sono strutturati, SegWit ha fornito un sollievo immediato dalle alte commissioni preservando la decentralizzazione che dà valore a Bitcoin.
L'eredità di SegWit si estende ben oltre i semplici calcoli del peso del blocco. Ha risolto la vulnerabilità persistente della malleabilità delle transazioni, sbloccando il potenziale per soluzioni di scalabilità layer-2 come la Lightning Network. Inoltre, ha stabilito un precedente per la governance guidata dagli utenti, dimostrando che la maggioranza economica può efficacemente controllare il potere delle entità di mining.
Mentre Bitcoin continua a evolversi, le strutture costruite da SegWit rimangono centrali per il suo funzionamento. Dall'efficienza degli indirizzi Native SegWit alle capacità avanzate di Taproot e Ordinals, l'aggiornamento ha ridefinito ciò che è possibile sulla blockchain. Ha garantito che Bitcoin potesse scalare per soddisfare la domanda globale senza compromettere i principi su cui è stato fondato.
SegWit ha rivoluzionato Bitcoin separando le firme dai dati delle transazioni, aumentando efficacemente la capacità del blocco e correggendo bug critici per abilitare la scalabilità futura.