O que é Segwit (Segregated Witness)?

0
56
O que é segwit

Algumas pessoas acreditam que o Segwit irá revolucionar o Bitcoin. A carteira Bitcoin Core e a Coinbase, uma das maiores corretoras de criptoativos do mundo, darão suporte à tecnologia. Mas afinal, o que é segwit?

O que é Segwit?

Segregated Witness, ou Segwit, é uma proposta de melhoria no Protocolo Bitcoin (BIP 141), que visa modificar a estrutura dos blocos na blockchain. Atualmente cada bloco possui um limite de 1 MB, ou seja, aproximadamente a cada 10 minutos, um bloco de no máximo 1 megabyte é encontrado na rede.

Segregated Witness visa aumentar essa capacidade para 4 MB (ou quatro vezes o limite do bloco). Entretanto, veremos a seguir que ele aumenta a capacidade do bloco, de fato, em 1.7 vezes.

Composição dos Blocos

Os blocos na rede do Bitcoin são compostos por, basicamente, dois tipos de informação: ‘header’ e ‘transactions’ (este sendo visto como o transaction counter e o list of transactions).

Para deixar o artigo mais simples de ser entendido, vou procurar ser um pouco menos técnico no assunto. Por esse motivo não entrarei em muitos detalhes sobre a parte ‘header’, pois nosso foco será no ‘list of transactions’.

Os dados de transações contidos no bloco, representam mais de 99% dos dados contidos nele. E é exatamente nesta parte do bloco que o Segwit visa mudar.

Como essa mudança será feita?

O Segwit modifica a estrutura do bloco, aumentando sua capacidade máxima, através da remoção dos dados de assinaturas das transações. As assinaturas são as chaves públicas e privadas utilizadas para realizar uma transação.

É através delas que os mineradores de bitcoin podem verificar e validar as transações. Para facilitar, é como se fosse mostrar um documento com foto para provar nossa identidade ao usar cartões de crédito e débito.

Quando algumas partes das transações são removidas, mais espaço é liberado para que mais transações sejam adicionadas em cada bloco.

As assinaturas das transações ocupam o equivalente a 65% do espaço dos dados de transações. O Segwit irá mover esses dados de assinaturas para o fim do bloco, em uma nova área chamada ‘witness’, assim aumentando o limite do bloco.

Ao mover as assinaturas (signatures), a capacidade do bloco é aumentado em praticamente 4 vezes, pois os dados de assinatura consomem mais espaço do que os dados de transações. Assim, o limite do bloco, que era de 1MB passa a ser de, aproximadamente, 4MB.

Entretanto, como o bloco não é composto somente de dados de assinaturas, o aumento real da capacidade de transações é de quase o dobro, pra ser mais exato, de 1.7 vezes.

Simplificando o Segwit

Vou fazer uma analogia para facilitar o entendimento.

Imagine que você fará um pagamento utilizando um cheque e que esse cheque será guardado em caixas que serão enviadas ao banco a cada 1 hora. Sabemos que todo cheque possui a parte onde escrevemos o valor que será pago por ele e a parte onde inserimos nossa assinatura.

Agora Imagine que a parte da assinatura seja o equivalente a 65% do tamanho do cheque. Sim, eu sei que o espaço para a assinatura ocupa um espaço pequeno nos cheques físicos. No universo de criptografia, temos que entender que a nossa assinatura digital é muito maior do que a nossa assinatura física.

Então vamos lá.

Chamaremos a caixa de transações de CT e a caixa de assinaturas de CA.

Como a CT possui um tamanho limitado, apenas uma certa quantidade de cheques entrarão nela. Então, à medida que mais usuários realizam transações com cheques, a CT ficará cheia.

Assim, algumas transações precisam esperar a próxima CT para que seja verificada e confirmada.

Ao remover a parte da assinatura, que no Bitcoin, corresponde a 65% dos dados de transação, a CA é criada para armazenamento dessas assinaturas. A CA é enviada ao bancos, em conjunto com a CT, para que eles verifiquem as assinaturas de cada transação.

Como mais cheques serão colocados nas CTs, a espera pela confirmação das transações diminuirá, pois mais transações serão verificadas e confirmadas pelos bancos.

Resumindo. Os bancos poderão verificar as assinaturas dos usuários e aceitar mais transações. Por estarem em ‘caixas’ diferentes, praticamente, o dobro de transações poderá ser colocado no espaço, agora vazio, criado pela remoção das assinaturas dos cheques.

Porquê o Segwit foi Criado?

Há algum tempo, um debate sobre a escalabilidade do sistema está dividindo a opinião de muitos membros da comunidade do Bitcoin. Ok, mas o que é escalabilidade?

De acordo com a Wikipédia:

Escalabilidade é uma característica desejável em todo o sistema, em uma rede ou em um processo, que indica sua capacidade de manipular uma porção crescente de trabalho de forma uniforme, ou estar preparado para crescer.

A blockchain, quando desenvolvida por Satoshi Nakamoto (criador do Bitcoin), não possuía limitação em seus blocos. Ou seja, os blocos suportariam quantas transações fossem necessárias dentro do prazo de 10 minutos.

Em 2016, os blocos começaram a alcançar o limite de 1MB

Entretanto, isso mudou pois o próprio Nakamoto ficou com receio de que a rede sofresse um ataque DDoS, e em 2010 ele limitou os blocos em 1MB. Neste mesmo ano, Nakamoto desapareceu e desde então o limite do bloco nunca mais foi mudado.

O limite do bloco nunca havia sido alcançado. Mas isso mudou em 2016.

Com uma maior adoção do da moeda digital, os blocos começaram a ficar cheios. Nesse momento, a rede do Bitcoin começou a enfrentar dois problemas, taxas mais altas e lentidão para confirmação de transações.

Em 25 de dezembro de 2017, a taxa por transação era de 162 dólares, de acordo com o site Blockchain.info

Assim, duas das principais características do Bitcoin (taxas baixas e transações rápidas), deixaram de ser qualidades. Com isso, a comunidade ficou dividida quanto a quais medidas tomar para resolver esse problema.

Divisão na Comunidade

Para resolver o problema da escalabilidade, a princípio, duas soluções foram apresentadas.

  • Aumentar o tamanho do bloco
  • Segwit (Segregated Witness)

Grandes nomes da comunidade do Bitcoin defendiam ambas as soluções propostas. O debate então se estendeu por quase dois anos. Por não chegarem a um consenso, a comunidade do Bitcoin se dividiu.

Os apoiadores do aumento do limite do bloco criaram cópias da blockchain original do bitcoin e criaram suas próprias versões do bitcoin (hard-forks). Alguns exemplos são, Bitcoin Cash, Bitcoin Gold e Bitcoin Diamond.

Enquanto isso, o restante da comunidade continuou apoiando o desenvolvimento de novas tecnologias, como o segwit, para solucionar essa questão.

Vantagens do Segwit

As principais vantagens do Segwit são:

  • Resolver maleabilidade de assinaturas
  • Aumentar capacidade do bloco
  • Servir de base para desenvolvimento de novas tecnologias de segunda camada

A maleabilidade de assinaturas é quando alguém tenta mudar a identidade de quem envia ou recebe fundos na tentativa de fraudar a rede. Uma vez que as assinaturas serão realocadas em outra estrutura, a maleabilidade não mais será possível.

Leia mais sobre as vantagens clicando aqui (conteúdo em inglês).

E aí, deu pra entender um pouco do que é o Segwit? Qual a sua opinião sobre a escalabilidade na rede do Bitcoin?


Nos siga nas redes sociais! Facebook e Twitter.


Quer fazer parte de nossa comunidade de investidores? Clique aqui e junta-se a nós!