O que é o Segwit?

que es segwit Bitnovo
8 min read

O Bitcoin sofreu muitas melhorias importantes e o Segwit é uma das mais importantes na história desta criptomoeda. Claro que esta melhoria também serviu outras criptos tais como Litecoin, EOS ou Vertcoin.

A Segwit é uma contração de “Segregated Witness” e é o termo utilizado para definir esta melhoria no formato das transações de Bitcoin.

Esta atualização do protocolo mudou a forma como os dados são armazenados e funcionou como uma solução para os problemas de maleabilidade e escalabilidade que a Bitcoin apresentava.

Neste artigo tentaremos explicar para que serve o Segwit e quais os problemas que resolve, que carteiras suportam o Segwit e muitos mais detalhes, sem que adormeça pelo caminho.

Pronto? Vamos lá!

Criação do Segwit

No meio da loucura da adoção da criptomoeda, o Bitcoin teve de enfrentar certos problemas que foram causados pela organização das suas transações. Estas limitações tornaram-se muito mais impactantes quando o volume de transações na blockchain aumentou significativamente.

Para simplificar: a blockchain Bitcoin não foi capaz de lidar de forma eficiente com o grande número de transações realizadas pelos seus utilizadores. A capacidade de validar 7-8 transações por segundo não era suficiente para as necessidades da rede na altura.

Além disso, os criadores do Bitcoin Core e Blockstream sentiram que o Bitcoin também estava exposto à maleabilidade da transação. Isto significa que um terceiro pode ser capaz de alterar um código ou uma série à vontade e milhares de Bitcoins podem ser perdidos da rede.


Para a resolução destes problemas, os criadores destas duas empresas uniram forças para criar o Segwit. A proposta foi apresentada a 21 de dezembro de 2015 pelos promotores Eric Lombrozo, Johnson Lau e Pieter Wuille.

Luke Dashjr  foi outro elemento-chave na ativação da Bitcoin de Segwit. O seu apoio permitiu à equipa Bitcoin Core encontrar uma forma de implementar o Segwit como um soft fork para o Bitcoin, limitando o impacto negativo de fazer um hard fork no Bitcoin e os riscos envolvidos.

Por fim, a proposta Segwit ou BIP141 (proposta de melhoria Bitcoin número 144) ajudou a resolver o problema da maleabilidade e escalabilidade da Bitcoin.

Quais os problemas que o SegWit resolve?

Como dissemos, os problemas que a SegWit resolve no Bitcoin são dois: por um lado, a maleabilidade e, por outro, a escalabilidade. Analise cada um deles se quiser compreendê-los melhor, se não, passe para o título seguinte.

Maleabilidade

Como já explicámos anteriormente, a maleabilidade é a possibilidade de um terceiro ter a capacidade de alterar um código à vontade. Em Bitcoin, esta propriedade é considerada como um ataque de negação de serviço ou DoS, uma vez que a maleabilidade permite que um TXID (ou identificador de transação) seja alterado em transações não confirmadas.

Eu sei, é uma explicação bastante técnica, e aqui torna-se ainda mais difícil:

O problema acima está relacionado com os hash de assinatura Bitcoin que não salvaguardam o script de assinatura (scriptsig). Este script acrescenta um tipo de assinatura (secp256k1) que não pode assinar por si só.

Também, devido à forma como o TXID é calculado, permite que um terceiro possa alterar o identificador de uma transação “não confirmada”.

Se esta alteração surgir, poderá haver problemas se quiser localizar um determinado TXID na rede. Isto levaria o destinatário da transação a desconfiar do remetente, e até mesmo a quebrar a confiança na rede em geral.

Além do problema da maleabilidade, os criadores do Bitcoin enfrentaram o problema da escalabilidade. Os ideais de uma rede rápida e de baixo custo foram estilhaçados quanto mais o tráfego da rede aumentava. Isto levou a que a rede alcançasse o seu limite e algumas transações demoraram horas a confirmar.

Adicionalmente, o custo crescente por transação extinguiu completamente a capacidade de fazer micropagamentos. Era uma época de grande desespero para o ambiente Bitcoin mas, como sempre, tudo se resolveria.

A invenção do Segwit, também conhecida como BIP141, também permitiria à rede Bitcoin escalar. Para que serve o Segwit quando se trata de escalar o Bitcoin?

Segwit “segrega” o separa los scripts y firmas de las transacciones a una nueva estructura y al mismo tiempo logra incrementar el tamaño de bloque. Así el tamaño original de los bloques de 1MB pasa a los 1,8MB.

Isto torna possível aumentar o número de transações dentro de um bloco e aumentar o número de transações processadas em cada segundo (sem alterar excessivamente a dimensão de bloco). Uma situação que tem um impacto positivo na redução dos custos de comissão e na rapidez da confirmação da transação, também aquando da compra de bitcoins.

Como é que o Segwit resolve estes problemas?

que es segwit Bitnovo

Gráfico que ilustra como funciona o Segwit.

Se quiser saber como o Segwit influencia tecnicamente o Bitcoin, a explicação resume-se a este ponto:

O SegWit propôs resolver o problema da maleabilidade da transação e da escalabilidade da Bitcoin, separando os Bitcoin Scripts e as assinaturas criptográficas numa nova estrutura de blocos. Embora os blocos com as transações estivessem noutra estrutura. Tudo isto, evitando tornar impossível a capacidade de verificar assinaturas e transações em cada estrutura a qualquer momento, graças à árvore Merkle.

Graças à implementação da Segwit, cada bloco da cadeia tem uma nova estrutura chamada “testemunha” que é colocada separadamente da árvore Merkle das transações Bitcoin.

Em cada transação, os dados dos utilizadores signatários e os scripts são movidos para essa estrutura testemunha, separando essa informação do resto dos dados da transação.

O nome “Testemunha Segregada” ou “Segwit” é dado precisamente devido a esta segregação de assinaturas que, embora necessárias para validar as transações, não são determinantes para a sua concretização.

Esta inovação tecnológica inviabiliza a maleabilidade de terceiros e do scriptSig, e aumenta ligeiramente o tamanho médio dos blocos Bitcoin (de 1 MB para aproximadamente 1,8 MB).

Carteiras (wallets) suportadas pelo SegWit

Se um utilizador de Bitcoin quiser fazer transações Segwit, é necessário utilizar uma carteira que suporte esta funcionalidade. Atualmente, a maioria das carteiras já implementam o Segregated Witness e algumas delas são:

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

Tal como sempre recomendamos no nosso blog, faça muita pesquisa e nunca dê informações sensíveis como a sua “security seed” (semente de segurança) a pessoas desconhecidas.

 

Que lhe possa interessar…