Entendendo o Segregated Witness

Allex Ferreira
5 min readAug 9, 2017

--

O Segregated Witness (SegWit, para simplificar) está programado para “bloquear” em 24 horas e ativar em cerca de duas semanas. Nem todos entendem o que esta atualização do protocolo do Bitcoin realmente faz, então, neste artigo, vou tentar explicar a um público não especialista o que o Segwit é.

Mas, primeiro, vamos analisar o bitcoin.

Bitcoin como um livro-razão global (Global Ledger)

Para entender o Segwit, primeiro precisamos entender um pouco sobre Bitcoin.

Se você considerar o Bitcoin como um livro-razão (Global Ledger) global único, uma transação em Bitcoin é muito similar a um cheque bancário. Como proprietário de certa quantia em dinheiro, você pode subscrever parte do seu montante para outra pessoa.

E, da mesma forma que um cheque, uma transação de Bitcoin tem uma assinatura. Em vez de uma assinatura física, você pode criar uma assinatura digital usando sua chave privada.

Curiosamente, enquanto uma assinatura em um cheque físico toma 10% da área do cheque, uma assinatura digital em bitcoin toma cerca de 50% do cheque digital.

Para continuar a analogia, um bloco de Bitcoin é uma caixa de cheques ou transações assinadas. De maneira semelhante às caixas físicas no mundo real, os blocos de Bitcoin têm um limite com relação ao número de transações que podem conter.

No momento, essas caixas vêm em um tamanho padrão de 1MB — e estão cheias. Você pode colocar apenas alguns cheques na caixa, de forma que fique praticamente vazia, mas nunca pode colocar mais cheques do que a caixa pode suportar.

Para manter o livro-razão (Global Ledger) global consistente e à prova de fraude, qualquer pessoa que tenha interesse pode realizar auditorias nele ao auditar esses blocos (caixas de cheques). Uma cópia da caixa de cheques é enviada a qualquer pessoa que queira fazer auditoria no livro-razão (Global Ledger).

Se, em uma auditoria dessas caixas de cheques, alguém encontrar um desses cheques sem fundos (ou seja, a pessoa fazendo o cheque não tem dinheiro suficiente na conta para cobrir a transação), toda a caixa seria rejeitada.

Isso é importante, pois, caso contrário, as pessoas começariam a passar cheques sem fundos. Precisamos também fazer isso de forma transparente, para que as pessoas possam efetivamente ter uma clara noção de quanto dinheiro elas têm; então enviamos a caixa de cheques para todo mundo (em outras palavras, cada nó no sistema) a fim de serem auditadas com grande frequência, a cada 10 minutos em média.

Contextualização do debate de escalabilidade

Como há um limite ao tamanho do bloco (caixa), há um limite para o número de cheques que podem ser compensados na rede em tempo hábil. Ou seja, o tráfego de transações do Bitcoin é limitado. O debate de escalabilidade que está ocorrendo nos últimos anos sobre o Bitcoin trata realmente de como conseguir mais transações através do sistema.

As duas soluções que os grupos desenvolveram podem ser consideradas de duas formas. A primeira seria tornar os tamanhos das caixas maiores. A segunda seria criar um novo tipo de cheque e dar caixas maiores apenas para quem as solicitar.

Aumentando o tamanho da caixa

Um grupo queria descartar as caixas atuais e torná-las maiores. Isso é ótimo se todos forem forçados a usar uma caixa maior, mas há alguns problemas com essa ideia.

Se algumas pessoas continuarem usando a caixa menor, isso causaria discrepâncias no livro-razão e criaria dois livros diferentes. Além disso, mesmo que todos usassem a caixa maior, muitas pessoas verificando o livro-razão não receberiam as caixas maiores em tempo para examinar se todos os cheques eram válidos. Dez minutos é muito pouco tempo para receber e auditar a caixa para certas pessoas.

A principal vantagem de tornar a caixa maior é que a mudança é relativamente simples. Não existem novos estilos de cheque com que se preocupar e tudo funciona como antes.

O Bitcoin Cash está usando essencialmente essa solução, removendo o limite de tamanho de bloco de 1MB e implementando um bloco de 8MB no lugar.

Alterando os cheques

A outra solução é introduzir um novo estilo de cheque. Ainda poderíamos tornar disponíveis caixas de tamanho maior, mas apenas para aqueles que quiserem. Essa solução de “mudança de cheque” basicamente remove a parte de assinatura do cheque para todos que não estejam aceitando as caixas maiores.

Lembra que a assinatura representa cerca de 50% da transação? O SegWit corta os cheques pela metade e envia tudo, menos a assinatura, para todos que aceitem a caixa antiga e menor. Enviamos as caixas maiores a todos que estejam aceitando a caixa nova e maior.

Como os cheques são metade do tamanho das caixas menores, conseguimos colocar aproximadamente o dobro do número de cheques nas caixas menores, aumentando o tráfego. Qualquer um que esteja recebendo a caixa maior pode fazer a auditoria corriqueira de tudo na caixa, e qualquer um que esteja recebendo a caixa menor ainda pode fazer a auditoria sem se preocupar em receber as assinaturas em tempo.

Como estamos acomodando as pessoas que não estão usando a caixa nova e maior, o SegWit é compatível com versões anteriores. Isso significa que todos terão a mesma cópia do livro-razão (Global Ledger), independentemente do tamanho da caixa que estejam usando.

Alterando os cheques

A outra solução é introduzir um novo estilo de cheque. Ainda poderíamos tornar disponíveis caixas de tamanho maior, mas apenas para aqueles que quiserem. Essa solução de “mudança de cheque” basicamente remove a parte de assinatura do cheque para todos que não estejam aceitando as caixas maiores.

Lembra que a assinatura representa cerca de 50% da transação? O SegWit corta os cheques pela metade e envia tudo, menos a assinatura, para todos que aceitem a caixa antiga e menor. Enviamos as caixas maiores a todos que estejam aceitando a caixa nova e maior.

Como os cheques são metade do tamanho das caixas menores, conseguimos colocar aproximadamente o dobro do número de cheques nas caixas menores, aumentando o tráfego. Qualquer um que esteja recebendo a caixa maior pode fazer a auditoria corriqueira de tudo na caixa, e qualquer um que esteja recebendo a caixa menor ainda pode fazer a auditoria sem se preocupar em receber as assinaturas em tempo.

Como estamos acomodando as pessoas que não estão usando a caixa nova e maior, o SegWit é compatível com versões anteriores. Isso significa que todos terão a mesma cópia do livro-razão (Global Ledger), independentemente do tamanho da caixa que estejam usando.

O principal ponto negativo do SegWit é que todos terão que se acostumar com o novo estilo de cheques antes que o ganho no tráfego seja observado. Também é um pouco mais complicado do que apenas fazer todos usarem uma caixa maior. Além disso, todos recebendo os cheques de novo estilo, porém usando uma caixa menor, não farão as auditorias das assinaturas, pois não irão recebê-las.

O Bitcoin começará a usar a solução “novo cheque” em algumas semanas.

Em resumo

O Bitcoin é um livro-razão (Global Ledger) distribuído, e é útil pensar nas transações e blocos como cheques e caixas. O Bitcoin Cash está adotando uma caixa maior como padrão para todos, enquanto o SegWit está usando caixas maiores para alguns enquanto acomoda aqueles que não desejam usar caixas maiores com novos tipos de cheques.

Isso ajuda a entender melhor o SegWit? Responda nos comentários abaixo.

Fonte Jimmy Song
TRadução Aliança Traduções

--

--