Che cosa è Segwit?

que-es-segwit
7 min read

Bitcoin ha subito molti miglioramenti importanti e Segwit è uno dei più importanti nella storia di questa criptovaluta. Naturalmente questo miglioramento è servito anche ad altre crypto come Litecoin, EOS o Vertcoin.

Segwit è una contrazione di “Segregated Witness”, (in italiano testimone isolato) ed è il nome che viene utilizzato per definire questo miglioramento nel formato delle transazioni di Bitcoin.

Questo aggiornamento protocollo ha cambiato il modo in cui i dati sono stati memorizzati e ha aiutato a risolvere i problemi di malleabilità e scalabilità che presentava Bitcoin.

In questo articolo cercheremo di chiarire a cosa serve Segwit o quali problemi risolve, quali sono i portafogli con supporto Segwit e molti altri dettagli, senza il rischio di addormentarti nel tentativo.

Sei pronto? Andiamo!

Creazione di Segwit

Nel bel mezzo della follia per l’adozione di criptovalute, Bitcoin ha dovuto affrontare certi problemi causati dalla struttura delle sue transazioni. Queste limitazioni sono diventate molto più visibili quando il livello delle transazioni della blockchain aumentò significativamente.

Per dirlo in una maniera semplice: la catena di blocchi di Bitcoin non è stato in grado di gestire in modo efficiente il gran numero di transazioni eseguite dai suoi utenti. La capacità di validare da 7 a 8 operazioni al secondo non era sufficiente per le esigenze della rete in quel momento.

Inoltre, gli sviluppatori di Bitcoin Core e Blockstream ritenevano che Bitcoin fosse anche esposto alla malleabilità delle transazioni. Ciò significa che un terzo potrebbe avere la possibilità di modificare un codice o seriale a proprio piacimento e si perderebbero migliaia di Bitcoin dalla rete.

Per risolvere queste problematiche gli sviluppatori di queste 2 aziende, hanno unito gli sforzi per la creazione di Segwit. La proposta è stata presentata il 21 Dicembre 2015, dagli sviluppatori Eric Lombrozo, Johnson Lau e Pieter Wuille.

Luke Dashjr è stato un altro elemento chiave per l’attivazione del Segwit su Bitcoin. Il suo sostegno ha permesso al team di Bitcoin Core di ottenere un modo per applicare Segwit come un soft fork per Bitcoin, limitando l’impatto negativo di un hard fork su Bitcoin e i rischi che questo comporta.

Infine, la proposta di Segwit o BIP141 (proposta di miglioramento di Bitcoin numero 144) ha contribuito a porre fine al problema della malleabilità e della scalabilità di Bitcoin.

Quali problemi risolve il Segwit?

Come abbiamo detto, i problemi che Segwit risolve in Bitcoin sono due: da un lato la malleabilità e dall’altro la scalabilità. Ripassa ciascuno se vuoi capirli meglio e passa al titolo successivo.

Come abbiamo chiarito sopra, la malleabilità, è la possibilità che un terzo abbia la possibilità di cambiare un codice a suo piacere. In Bitcoin, questa proprietà è considerata come un attacco DoS o Denial of Service, perché la malleabilità consente di alterare un TXID (o identificatore di transazione) nelle transazioni non ancora confermate.

Il problema di cui sopra è relativo a che gli hash della firma di Bitcoin non riparano lo script della firma (scriptsig). Questo script aggiunge un tipo di firma (secp256k1) che non può firmare se stessa.

Inoltre, a causa del modo in cui viene calcolato il TXID, ammette la possibilità che un terzo modifichi l’identificatore di una transazione “non confermata”.

In caso di modifica, potrebbero esserci problemi se si desidera rintracciare un determinato TXID nella rete. Ciò provocherebbe la diffidenza del destinatario della transazione da parte dell’emittente, e addirittura spezzerebbe la fiducia nella rete in generale.

blow-mind-segwit

Oltre al problema della malleabilità, gli sviluppatori di Bitcoin hanno affrontato il problema della scalabilità. Gli ideali di una rete veloce e a basso costo si sfaldano quanto più aumenta il traffico della rete. Ciò ha portato la rete a raggiungere il suo limite e alcune transazioni impiegavano ore per confermarsi.

Aggiunto a questo, l’aumento del costo per transazione cancellava completamente la possibilità di fare micropagamenti. Era un momento di disperazione per l’ambiente Bitcoin ma, come sempre, a tutto c’è una soluzione.

L’invenzione di Segwit, noto anche come BIP141, permetterebbe anche alla rete Bitcoin di scalare.  A cosa serve il Segwit per scalare i Bitcoin?

Segwit “segrega” o separa gli script e le firme delle transazioni ad una nuova struttura e allo stesso tempo riesce ad aumentare la dimensione del blocco. Così la dimensione originale dei blocchi di 1MB passa a 1,8MB.

Ciò permette di aggiungere più transazioni in un blocco e di aumentare la quantità di transazioni processate in ogni secondo (senza alterare troppo lealtezze del blocco). Una situazione che influisce positivamente sulla riduzione dei costi per commissioni e sulla velocità di conferma delle transazioni, anche al momento di comprare bitcoins.

Come risolve questi problemi Segwit?

Cos'è Segwit?

Grafico che illustra il funzionamento di Segwit.

Se volete sapere come Segwit in Bitcoin influisce tecnicamente, questa spiegazione lo riassume:

Segwit ha proposto di risolvere il problema della malleabilità delle transazioni e della scalabilità di Bitcoin separando i Bitcoin Scripts e le firme crittografiche in una nuova struttura a blocchi. Mentre i blocchi con le transazioni erano in un’altra struttura. Tutto questo, evitando di rendere impossibile la capacità di verificare le firme e le transazioni in ogni struttura per tutto il tempo, grazie all’albero di Merkle.

A causa dell’implementazione di Segwit, ogni blocco della catena ha una nuova struttura chiamata “testimone” che viene posta a parte dall’albero di Merkle delle transazioni Bitcoin.

In ogni transazione, i dati degli utenti che firmano e gli script sono trasferiti a tale struttura di controllo, separando tali informazioni dal resto dei dati dell’operazione.

Il nome “Testimone isolato” o “Segwit” viene giustamente attribuito per quella segregazione di firme che, pur essendo necessarie per convalidare le operazioni, non sono determinanti per gli effetti delle operazioni.

Questa innovazione tecnologica impedisce la malleabilità di terze parti e di scriptSig, e aumenta leggermente la dimensione media dei blocchi Bitcoin (da 1 MB a 1,8 MB circa).

Wallet con supporto SegWit

Se un utente Bitcoin desidera utilizzare le transazioni Segwit dovrà utilizzare un wallet che supporta questa funzione. Oggi, la maggior parte dei wallet già implementano Segregated Witness e alcuni di loro sono:

– Ledger
– Trezor
– Bitcoin Core
– Bitcoin Armory
– Electrum
– GreenBits
– Samourai
– Coinomi

Come sempre consigliamo dal nostro blog, investiga molto e non fornire mai informazioni sensibili come il tuo seme della sicurezza a persone sconosciute.