Cos'è SegWit?

Cos'è SegWit?

Segregated Witness, comunemente indicato come SegWit, rappresenta un aggiornamento fondamentale del protocollo Bitcoin Core, introdotto nel 2017. Nato come mezzo per affrontare le sfide di scalabilità e le particolari vulnerabilità di Bitcoin, SegWit ha apportato una serie di miglioramenti significativi. Tra i suoi principali risultati, il protocollo ha risolto i problemi di malleabilità delle transazioni e aumentato il limite della dimensione dei blocchi di Bitcoin, facilitando così l'inclusione di più transazioni all'interno di ciascun blocco. Inoltre, questo aggiornamento ha introdotto due tipi di script innovativi per le transazioni Bitcoin e ha presentato un nuovo approccio di codifica noto come Bech32 .

Il percorso verso l'attivazione di SegWit non è stato privo di sfide, poiché ha generato un notevole dibattito all'interno della comunità Bitcoin. Tali controversie sottolineano l’intrinseca natura decentralizzata di Bitcoin, un ecosistema che fa affidamento sul consenso tra i suoi partecipanti globali. Mentre i sistemi centralizzati possono implementare modifiche attraverso decreti autorevoli, Bitcoin richiede un accordo collettivo per qualsiasi modifica del protocollo. Nonostante le polemiche su SegWit, Bitcoin ha dimostrato resilienza e adattabilità, evidenziando la sua capacità di resistere all'influenza indebita dei miner e di figure di spicco della comunità.

Come funziona SegWit?

Segregated Witness, più comunemente noto come SegWit, rappresenta un aggiornamento trasformativo del protocollo di transazione Bitcoin. Il suo scopo principale è migliorare l’efficienza delle transazioni e risolvere la malleabilità delle transazioni non intenzionali. Suddividendo la transazione in due componenti, con il primo che comprende gli indirizzi del portafoglio del mittente e del destinatario e il secondo che contiene le firme della transazione o i dati del testimone, SegWit allevia il peso del blocco. Questa separazione garantisce che più transazioni rientrino in un singolo blocco Bitcoin, favorendo così un aumento del throughput e diminuendo le commissioni di transazione.

A differenza di un hard fork, che divide una blockchain in due catene distinte, SegWit è stato implementato come un soft fork . Ciò significa che è rimasta una blockchain Bitcoin unificata che accetta blocchi sia dagli utenti abilitati che da quelli non abilitati a SegWit. Riposizionando i dati della firma fuori dal blocco di transazione primario ma mantenendo le sue capacità di verifica, l'integrità di Bitcoin viene mantenuta, consentendo più transazioni all'interno del blocco standard da 1 megabyte. Il risultato è una rete Bitcoin più veloce e più sicura.

A complemento di SegWit c'è lo standard di indirizzo Bech32. Questi indirizzi "nativi SegWit", identificabili dal prefisso " bc1 ", sono in contrasto con i tradizionali indirizzi Legacy che iniziano con "1". Adottando SegWit e lo standard Bech32, gli utenti potranno beneficiare di commissioni di transazione ridotte. È essenziale notare che mentre i Bitcoin archiviati negli indirizzi Legacy rimangono lì fino alla transazione, qualsiasi modifica da questi indirizzi, quando parte di una transazione, passerà a un indirizzo SegWit. Nel corso del tempo, man mano che gli utenti effettuano transazioni e ricevono fondi sugli indirizzi SegWit, i loro saldi Bitcoin si sposteranno organicamente verso questi indirizzi più efficienti.

In che modo SegWit risolve la malleabilità delle transazioni?

Segregated Witness, comunemente noto come SegWit, è un aggiornamento cruciale nel protocollo Bitcoin, progettato principalmente per affrontare il problema della malleabilità delle transazioni. Questo problema si riferisce alla potenziale modifica dei dati della transazione prima della loro conferma sulla blockchain.

Approfondire la malleabilità delle transazioni

Immagina uno scenario in cui John deve a Steven 10 BTC. Steven, con intenti dannosi, altera i dati del testimone di John prima che la rete confermi la transazione. L'ID della transazione cambia, anche se il contenuto della transazione rimane invariato. Dopo che la transazione manipolata viene confermata, l'originale viene annullato. Se Steven affermasse falsamente di non aver ricevuto i 10 BTC, John potrebbe inviare nuovamente i BTC, diventando vittima della truffa senza nemmeno rendersene conto. Tali manipolazioni erano invisibili alla rete, rendendole difficili da prevenire.

La soluzione di SegWit al problema

La funzione principale di SegWit è quella di separare i dati testimone dai dati delle transazioni, garantendo che non possano essere modificati per modificare gli ID delle transazioni. Sviluppando una sidechain per archiviare questi dati testimone separatamente dalla blockchain principale, SegWit elimina la possibilità di tali alterazioni dannose.

Inoltre, SegWit mantiene la compatibilità con le versioni precedenti, il che significa che i nodi in esecuzione sul protocollo SegWit possono ancora interagire con i nodi più vecchi. Questo tipo di aggiornamento è un soft fork, a differenza degli hard fork che non sono compatibili con le versioni precedenti e possono dividere la blockchain. Un aspetto unico di SegWit è che mentre crittografa tutti i dati testimone su una sidechain, il codice root rimane sulla blockchain principale.

SegWit e scalabilità : un connubio pensato per il futuro

Oltre ad affrontare la malleabilità delle transazioni, SegWit offre notevoli vantaggi in termini di scalabilità. La scalabilità è la capacità della rete di gestire un aumento delle transazioni senza compromettere la velocità. Sebbene molte reti blockchain rallentino man mano che si espandono, SegWit migliora l'efficienza di Bitcoin.

Il processo di consenso è la causa principale delle sfide di scalabilità in molte criptovalute. Una transazione deve essere verificata da più della metà dei nodi Bitcoin prima di essere aggiunta alla blockchain. Con un numero crescente di nodi, raggiungere il consenso richiede più tempo. Tuttavia, SegWit allevia questa preoccupazione. In precedenza, i dati testimone consumavano circa il 65% dello spazio di un blocco Bitcoin. L'approccio di SegWit di scaricare i dati testimone dalla blockchain primaria offre più spazio per le transazioni, ottimizzando la capacità di elaborazione della rete senza ampliare la blockchain di Bitcoin. In sostanza, SegWit semplifica la blockchain, rendendola più efficiente.

Ci sono degli svantaggi in SegWit?

SegWit, o Segregated Witness, è strettamente legato all'evoluzione di Bitcoin e suscita varie prospettive sulla sua efficacia e intenti.

Fondamentalmente, il design di SegWit mira a ottimizzare la capacità dei blocchi archiviando selettivamente determinati dati delle transazioni fuori dalla blockchain principale, utilizzando la catena primaria come riferimento. Questo approccio è stato sviluppato per alleviare i problemi di scalabilità inerenti al design originale di Bitcoin. I critici sostengono che lo scaricamento dei dati compromette l'integrità della blockchain, suggerendo che si tratti di una soluzione alternativa per un sistema intrinsecamente difettoso.

Questo scetticismo nei confronti di SegWit ha portato una fazione della comunità a divergere, avviando un hard fork che ha portato alla creazione di Bitcoin Cash nel 2017. In sostanza, Bitcoin Cash rispecchia il modello Bitcoin originale prima dell'implementazione di SegWit. La sua soluzione ai problemi di scalabilità si concentra sull'ampliamento della dimensione del blocco, garantendo che tutti i dati transazionali rimangano sulla catena. Questo approccio contrasta nettamente con la filosofia degli sviluppatori Bitcoin Core che vedono SegWit come la base per un sistema blockchain a più livelli.

L'evoluzione di Bitcoin e l'ascesa di Bitcoin Cash esemplificano le diverse prospettive su come scalare e mantenere al meglio le reti blockchain decentralizzate. Sono emerse varie altre criptovalute e protocolli, ognuno dei quali apporta nuove soluzioni e innovazioni. Sebbene SegWit rimanga una pietra miliare significativa per la comunità di sviluppatori Bitcoin, rappresenta anche il panorama più ampio e in continua evoluzione della tecnologia blockchain e i suoi diversi approcci alla risoluzione delle sfide inerenti.

SegWit abilita la rete Lightning

Uno dei progressi più rivoluzionari resi possibili da SegWit è stata l'integrazione di Lightning Network, una soluzione di secondo livello progettata per affrontare le sfide di scalabilità di Bitcoin. La Lightning Network promette velocità di transazione più elevate e commissioni ridotte creando canali di pagamento fuori catena tra le parti. Questo approccio innovativo consente di elaborare numerose transazioni al di fuori della blockchain principale di Bitcoin, registrando solo i saldi finali dei conti sulla catena. Il risultato è un sistema più efficiente e snello, in grado di gestire un volume maggiore di transazioni in una frazione del tempo.

Tuttavia, l'intero potenziale della Lightning Network non potrebbe essere realizzato senza l'attivazione di SegWit. Ciò è dovuto principalmente al fatto che la fondazione di Lightning Network faceva molto affidamento su transazioni bitcoin non confermate. Nello stato iniziale della rete Bitcoin, queste transazioni erano vulnerabili a un tipo di attacco chiamato "malleabilità delle transazioni". In sostanza, gli aggressori potrebbero alterare l’identificazione univoca di una transazione prima che venga confermata, creando discrepanze e potenziali scenari di doppia spesa.

Attivando SegWit, la comunità Bitcoin ha risolto questo problema di malleabilità delle transazioni. In tal modo, non solo ha rafforzato le difese della rete, ma ha anche aperto la strada all'implementazione sicura del Lightning Network. Senza il rischio di malleabilità delle transazioni, Lightning Network può funzionare senza problemi, garantendo che gli utenti possano effettuare transazioni con maggiore velocità, sicurezza ed efficienza in termini di costi.

Aumento della dimensione del blocco di SegWit

SegWit, sebbene classificato come soft fork, ha apportato modifiche significative a una delle regole di consenso fondamentali di Bitcoin. Questa modifica è stata implementata in modo da mantenere la compatibilità con le versioni precedenti e mirava ad aumentare la capacità delle transazioni all'interno di ciascun blocco.

Prima dell'avvento di SegWit, ogni blocco aveva una restrizione che consentiva di contenere fino a 1 MB di dati, il che si traduceva in circa 1650 transazioni quando il blocco veniva riempito alla sua capacità massima. Tuttavia, SegWit ha introdotto il concetto di peso del blocco, che ha soppiantato la dimensione del blocco come vincolo principale sul contenuto del blocco. Al giorno d'oggi, un blocco completamente carico ospita quasi 2700 transazioni.

Vale la pena notare questa distinzione: prima dell'introduzione di SegWit, ogni blocco era limitato da una dimensione di 1 MB, che rappresenta 1 milione di byte di dati di transazione.

Al contrario, il peso a blocchi utilizza un sistema di misurazione più sfumato, basandosi su unità di peso. In questo sistema, un byte di dati non testimone di una transazione equivale a 4 unità di peso, mentre un byte di dati testimone equivale a solo 1 unità di peso. Con un limite fissato a 4 milioni di unità di peso per un blocco, un blocco riempito esclusivamente con transazioni non SegWit osserverebbe comunque la precedente limitazione di 1 milione di byte.

Questo innovativo metodo di misurazione garantisce che l'incremento della dimensione del blocco rimanga coerente con i principi di un soft fork. Inoltre, presenta sia ai minatori che agli utenti Bitcoin motivazioni finanziarie per adottare SegWit. Gli utenti che effettuano transazioni con SegWit possono beneficiare di tariffe di transazione ridotte poiché i dati Witness occupano una porzione minore del limite di peso del blocco. Allo stesso tempo, i miner che elaborano le transazioni SegWit hanno l’opportunità di includere più transazioni nei loro blocchi, portando ad un aumento delle entrate derivanti dalle commissioni.

Nuovi tipi di script di SegWit

Nel mondo di Bitcoin, i tipi di script rappresentano metodi distinti per effettuare transazioni Bitcoin sulla blockchain tramite il suo linguaggio di scripting proprietario denominato "Script". Con l'avvento di SegWit, sono stati introdotti due nuovi tipi di script per sfruttare le capacità del campo Witness: vale a dire Pay-to-Witness-Pubkey-Hash (P2WPKH) e Pay-to-Witness-Script-Hash (P2WSH).

Approfondimento essenziale: quei tipi di script, inclusi P2PKH e P2SH, che esistevano prima dell'era SegWit, sono definiti "tipi di script legacy".

Pay-to-Witness-PubKey-Hash (P2WPKH)

Prima dell'incorporazione di SegWit, lo script maggiormente utilizzato era il Pay-to-Pubkey-Hash (P2PKH), un meccanismo che ancorava effettivamente bitcoin all'hash di una chiave pubblica. P2WPKH, un'innovazione di SegWit, rispecchia le funzionalità di P2PKH con una sottile variazione. Nello scenario di spesa di un output P2WPKH, i componenti essenziali – la firma e la chiave pubblica – sono sistemati in modo sicuro nel Witness. Nel frattempo, lo ScriptSig rimane intatto. Questa mossa strategica mira a scongiurare la potenziale malleabilità nell’ID della transazione.

Pay-to-Witness-Script-Hash (P2WSH)

Dopo P2PKH, Pay-to-Script-Hash (P2SH) ha guadagnato terreno come tipo di script legacy di spicco. Consente agli utenti di inviare bitcoin a un hash di script univoco e arbitrario, soprannominato redimeScript. Chiunque sia dotato di questo riscatto e soddisfi i criteri stabiliti, può recuperare questo bitcoin.

All’inizio, P2SH si rivolgeva principalmente alle transazioni multisig, offrendo sia maggiore efficienza in termini di spazio che discrezione rispetto alle sue controparti come il multisig semplice.

Inserisci l'hash script Pay-to-Witness di SegWit (P2WSH). Il suo modus operandi è in stretta sintonia con P2SH. Gli output P2WSH vengono sbloccati quando vengono presentati con il Witness Script (la versione di SegWit del riscattoScript) insieme alle firme e alle chiavi pubbliche richieste. Rispecchiando l'approccio in P2WPKH, gli input P2WSH richiedono un campo ScriptSig vuoto, relegando lo Script Witness - che comprende le firme vitali e le chiavi pubbliche - al territorio del testimone.

SegWit avvolto

L'introduzione di nuovi tipi di script nel protocollo Bitcoin non è un'impresa da poco, considerando la pletora di portafogli, app e servizi che interagiscono con esso. Per facilitare la transizione, facilitando un'adozione graduale di SegWit, è stato concettualizzato un intermediario chiamato "Wrapped SegWit".

In sostanza, SegWit avvolto funziona come una variante tradizionale dello script P2SH. Integra perfettamente uno script SegWit nativo, sia esso P2WPKH o P2WSH, e lo interpreta nel ruolo di redimeScript di uno script P2SH. Di conseguenza, gli script SegWit risultanti vengono classificati come P2SH-P2WPKH o P2SH-P2WSH.

Tale accordo garantisce che anche i sistemi non aggiornati per SegWit possano trasferire bitcoin agli indirizzi SegWit. I beneficiari di queste transazioni SegWit racchiuse hanno il potere di utilizzare il bitcoin attraverso un input SegWit, che può essere una potenziale strada per risparmiare sulle commissioni.

Ti ricordiamo che Plisio ti offre anche:

Crea fatture crittografiche in 2 clic and Accetta donazioni in criptovalute

12 integrazioni

6 librerie per i linguaggi di programmazione più diffusi

19 criptovalute e 12 blockchain

Ready to Get Started?

Create an account and start accepting payments – no contracts or KYC required. Or, contact us to design a custom package for your business.

Make first step

Always know what you pay

Integrated per-transaction pricing with no hidden fees

Start your integration

Set up Plisio swiftly in just 10 minutes.