O que é uma Testemunha Segregada (SegWit)?

Por Kraken Learn team
11 minuto
26 de nov. de 2024

O guia para iniciantes do Bitcoin SegWit 💭

Segregated Witness (SegWit) foi uma atualização feita no código-fonte do Bitcoin em 1º de agosto de 2017.

Apesar de fazer o que muitos viam como melhorias na blockchain do Bitcoin, o SegWit encontrou forte oposição que dividiu a comunidade. 

No cerne da questão estava um interesse concorrente entre a lucratividade dos mineradores e os desenvolvedores da rede que buscavam tornar o Bitcoin mais barato e rápido de usar.

A tensão causou uma ruptura dentro da comunidade, culminando no primeiro soft fork ativado por usuários da rede e uma divisão hostil. A divisão deu origem a uma série de novos projetos derivados do Bitcoin, incluindo o Bitcoin Cash.

Até hoje, o SegWit continua sendo um dos eventos mais controversos na história do Bitcoin. Mas, também provou ser uma de suas atualizações mais importantes para a viabilidade a longo prazo do protocolo. 

A cada ano, muitos na comunidade Bitcoin celebram 1º de agosto como o "dia da independência do Bitcoin." Este evento marca a ocasião em que a vontade do povo triunfou sobre os interesses centralizados das empresas de mineração de bitcoin estabelecidas.

Vamos explorar cada um desses eventos à medida que aconteceram e desvendar a história por trás do SegWit.

BTC icon
$70.752.00
+0,41%
24H
btc

Bitcoin antes do SegWit ⏮️

Antes da ativação do SegWit, a capacidade de bloco do Bitcoin permaneceu inalterada por muitos anos. A capacidade de bloco refere-se ao número máximo de transações que podem ser registradas dentro de um determinado bloco.

Quando o Bitcoin foi lançado em 2009, seu(s) criador(es) Satoshi Nakamoto não definiu parâmetros para o tamanho dos blocos de bitcoin.

No entanto, em 2010, Nakamoto adicionou secretamente um limite de tamanho de bloco de 1 megabyte (MB) sem a aprovação de outros colaboradores do Bitcoin.

Many believed que Nakamoto incluiu o limite para prevenir futuros ataques de negação de serviço distribuído (DDoS) que poderiam impactar a rede.

Esse limite fixo na capacidade de bloco teve o efeito indesejado de restringir o potencial do Bitcoin de escalar de várias maneiras.

Baixa capacidade de processamento e tempos de transação lentos

Apenas um número limitado de transações pode caber no relativamente pequeno bloco de 1MB que o Bitcoin agora adotou. Essa pequena capacidade significava que a rede Bitcoin só poderia processar cerca de 2–3 transações de bitcoin (BTC) por segundo — uma grande diferença em relação às redes de pagamento digitais tradicionais que podem processar dezenas de milhares de transações por segundo.

Além disso, para que um bloco de transações seja considerado válido como parte do processo de mineração de bitcoin, ele deve receber seis confirmações. Em outras palavras, seis novos blocos devem ser adicionados à blockchain após o bloco em questão antes que ele seja finalizado. Com um tempo médio de bloco de dez minutos, isso significa que as confirmações de bloco do bitcoin levam cerca de uma hora.

Na época, quando apenas um punhado de criptógrafos "Cypherpunk" estava ciente do bitcoin, isso não era necessariamente um grande problema. Mas, se a rede Bitcoin fosse se tornar um "sistema de dinheiro eletrônico ponto a ponto" global, como Satoshi imaginou no white paper do Bitcoin, as coisas precisavam mudar.

Altas taxas

A baixa capacidade de processamento do Bitcoin, limitada por sua pequena capacidade de bloco, significava que as taxas também eram comparativamente muito mais altas do que são hoje.

Aqui está uma maneira fácil de entender esse problema. Imagine que você está de pé do lado de fora em uma multidão de pessoas após assistir a um show de teatro. Todo mundo do teatro quer pegar um táxi para casa ao mesmo tempo. Se houver muitos táxis por perto, deve ser fácil para todos chegarem em casa. Mas, se houver apenas alguns táxis, as pessoas podem tentar pagar um preço mais alto aos motoristas de táxi para incentivá-los a levá-los para casa primeiro. Dependendo da demanda, os preços dos táxis podem disparar significativamente acima da tarifa normal.

As taxas do Bitcoin funcionam com esses mesmos princípios de oferta e demanda. Se muitas pessoas quiserem que suas transações sejam processadas ao mesmo tempo, algumas podem optar por pagar mais em taxas para que sua transação seja processada mais rapidamente pelos mineradores. Durante períodos de alta utilização na rede Bitcoin, a congestão pode resultar em competição entre os usuários, o que pode fazer com que as taxas de transação aumentem drasticamente.

Maleabilidade de transação

Outra nuance inerente ao funcionamento dos blocos do Bitcoin era conhecida como maleabilidade de transação. Antes do SegWit, as pessoas podiam mudar o ID de uma transação antes que ela recebesse confirmações suficientes na blockchain.

Tomar as informações relacionadas a uma transação específica e passá-las por uma função hash cria um ID de transação. Você pode aprender mais sobre funções hash em nosso artigo Como as criptomoedas usam criptografia?

Mas, para simplificar, você pode pensar nesses IDs de transação como impressões digitais digitais que são usadas para identificar e referenciar transações na blockchain.

Alterar o ID da transação cria um hash completamente novo que pode, às vezes, confundir o software cliente da blockchain. Todos os nós executam software cliente para interagir com a blockchain e desempenhar papéis importantes, como a verificação de dados.

Esse bug de maleabilidade no código do Bitcoin abriu a porta para ataques maliciosos. Um dos exemplos mais infames de um ataque de maleabilidade de transação foi o hack da exchange Mt. Gox em 2014 — conhecido por ser o maior hack de bitcoin da história.

Especialistas relataram que um hacker, ou grupo de hackers, drenou a carteira de bitcoin da exchange Mt. Gox. Eles fizeram isso em parte alterando o ID da transação de seus saques. 

O ataque de maleabilidade de transação fez parecer que os saques não estavam sendo confirmados na blockchain, quando na verdade estavam.

Essa vulnerabilidade, juntamente com outros vetores de ataque, permitiu que o(s) hacker(s) siphonassem mais de 840.000 BTC da exchange.

Quais melhorias o SegWit fez? ⚙️

O colaborador do Bitcoin, Pieter Wuille, apresentou pela primeira vez a atualização SegWit em um evento do Bitcoin em Hong Kong em 2015.

Sua solução foi inovadora em três frentes. O SegWit melhorou a escalabilidade do Bitcoin, removeu a maleabilidade e permitiu que os nós adotassem a nova estrutura de transação. O melhor de tudo, isso poderia ser implementado sem bifurcar a rede.

Informações de assinatura digital e transação separadas

A proposta de Wuille aumentou a capacidade do bloco do Bitcoin "segregando" os dados de "testemunha" de um bloco e movendo-os para a transação coinbase. As transações coinbase são as primeiras transações dentro de cada novo bloco de Bitcoin. A transação coinbase é responsável por emitir criptomoeda recém-minerada em circulação como recompensa pelo processo de mineração de bitcoin.

Mineradores que conseguem vencer a competição de prova de trabalho baseada em criptografia do Bitcoin ganham esses tokens recém-minerados como "recompensas de bloco."

Os dados da testemunha, também conhecidos como ScriptSig ou Script de Desbloqueio, incluem informações de assinatura digital e chave pública necessárias para desbloquear o bitcoin transferido. A atualização SegWit introduziu um "campo de testemunha" separado para a parte ScriptSig de uma transação.

Ao processar informações de assinatura digital separadamente do campo de entrada da transação, havia mais espaço para transações caberem em cada bloco.

Mais transações por bloco equivalem a maiores capacidades de throughput de transações. Assim, em vez de 2-3 transações por segundo, o Bitcoin pode processar entre 7-10 transações SegWit por segundo. Aumentar a capacidade também significa taxas mais baixas, já que a blockchain do Bitcoin pode lidar com um volume maior de transações.

Apesar da separação, é importante notar que os nós ainda processam tanto os dados da transação quanto os dados da testemunha na cadeia. Nenhuma sidechain ou protocolo de Camada 2 é utilizado.

Peso do bloco

Antes do SegWit, os mineradores mediam os blocos de bitcoin pelo tamanho (em bytes). Esse sistema funcionou bem quando os blocos continham tanto dados de testemunha quanto dados de transação, mas enfrentou problemas quando foram separados.

Para superar isso, a atualização introduziu uma métrica chamada peso do bloco para gerenciar o tamanho dos blocos.

Com esse conceito, cada bloco de 1 megabyte consiste em 4.000.000 unidades de peso (WU). Cada transação recebe um peso com base na seguinte fórmula:

Tamanho base da transação em bytes (sem dados de testemunha) * 3 + Tamanho total da transação em bytes.

Ao remover os dados do campo de testemunha do cálculo, as transações SegWit têm um peso muito menor. Por outro lado, uma transação não-SegWit ainda contém dados de testemunha. Isso significa que as transações não-SegWit sempre pesam 4 vezes mais do que as transações SegWit.

Esse conceito teoricamente aumenta o tamanho de um bloco de bitcoin de 1MB para 4MB, se um bloco consistir quase inteiramente de dados de testemunha. No entanto, isso não é possível na prática.

O principal benefício do sistema ponderado é que ele incentiva os mineradores a processar blocos contendo principalmente transações SegWit. Assumindo que as transações SegWit carregam as mesmas taxas que os blocos legados, um minerador pode processar muito mais transações SegWit por bloco. Quanto mais transações eles processam por bloco, mais taxas eles ganham.

Uma situação vantajosa para ambas as partes. Ou assim você pensaria.

Sem mais problemas de maleabilidade de transação

Sob a estrutura SegWit, o ID da transação hash contém apenas as informações da transação, não as informações do campo de testemunha.

Essa mudança remove o componente modificável de uma transação bitcoin que anteriormente permitia ataques de maleabilidade.

Como resultado, soluções de escalonamento secundárias como a Rede Lightning do Bitcoin se tornaram possíveis.

 

Por que o SegWit foi controverso? 🤔

Muitos na comunidade de desenvolvimento sentiram que o SegWit não foi longe o suficiente para resolver os problemas de escalonamento do Bitcoin.

Os principais argumentos contra a ativação do SegWit incluem:

  • O aumento da capacidade do Bitcoin de 7-10 transações por segundo ainda está longe de ser alto o suficiente para um sistema de pagamento descentralizado e global.
  • As taxas permaneceriam relativamente altas, tornando coisas como microtransações financeiramente inviáveis.
  • Os mineradores ainda podem processar blocos de transações legadas, o que significa que a maleabilidade ainda é uma ameaça.
  • Foi descoberto mais tarde que o SegWit negaria o mecanismo ASICBOOST da Bitmain; um exploit usado para aumentar significativamente a eficiência das máquinas de mineração.

Cerca de um ano após a proposta de Wuille, ele e outros desenvolvedores do Bitcoin Core, incluindo Eric Lombrozo, prepararam o código para entrar em operação na próxima atualização do Bitcoin Core 0.13.1. O único passo restante para ativar o SegWit era que os mineradores começassem a processar novos blocos SegWit. 

Para consolidar sua implementação, mais de 95% de todos os mineradores de bitcoin precisariam mostrar apoio ao SegWit nas duas primeiras semanas de sua iniciação — um grande obstáculo considerando as circunstâncias na época.

Soft fork ativado por usuários

Desnecessário dizer que grandes empresas de mineração, como a Bitmain, ainda estavam insatisfeitas com as mudanças propostas e se recusaram a apoiar a ativação do SegWit.

No início de 2017, um desenvolvedor pseudônimo chamado “Shaolinfry” levantou a possibilidade de nós do Bitcoin aplicarem um soft fork em um post online bitcoin-dev

Um soft fork ativado por usuários nunca havia sido tentado na rede Bitcoin antes, mas permitiria que os desenvolvedores implementassem o SegWit com cerca de 51% de apoio dos mineradores. Aqueles que se recusassem a apoiar novos blocos corriam o risco de ter seus blocos rejeitados pelos nós. A solução não estava isenta de riscos. Se o SegWit não recebesse apoio suficiente dos mineradores, o resultado levaria inevitavelmente a uma divisão da cadeia.

Aqueles contra o SegWit propuseram uma atualização de hard fork SegWit 2X diferente. Uma que implementaria o SegWit e aumentaria o tamanho do bloco do Bitcoin para 2MB.

Ao contrário da atualização anterior, o SegWit 2X não seria compatível com versões anteriores do cliente Bitcoin. Essas mudanças significavam que os nós teriam que atualizar seu software para continuar operando na rede.

SegWit e o acordo de Nova York 🗽

As principais empresas da indústria se reuniram no Consensus 2017 e assinaram coletivamente um memorando chamado "o Acordo de Nova York." Este documento delineou planos para o SegWit entrar em operação no verão e para o tamanho do bloco do Bitcoin aumentar para 2MB até novembro.

Antes de novembro, Shaolinfry redigiu duas Propostas de Melhoria do Bitcoin (BIPs); BIP148 e BIP149. A primeira representava uma solução rígida; sinalize apoio para blocos SegWit ou os nós rejeitarão seus blocos. A última forneceu um horizonte de tempo mais longo para os mineradores se adaptarem, estabelecendo um prazo de ativação para julho do ano seguinte.

À medida que a data se aproximava, o engenheiro da Bitmain Warranty, James Hillard, propôs um novo BIP; BIP91. Sua solução buscava tornar tanto o SegWit 2X quanto o BIP148 compatíveis entre si. Por que arriscar uma divisão da cadeia sobre duas atualizações concorrentes do SegWit quando você pode torná-las compatíveis?

Em 1º de agosto, o apoio de mineração suficiente consolidou a ativação do SegWit. A segunda fase do Acordo de Nova York, no entanto, não conseguiu receber o mesmo apoio.

A falha em aumentar o tamanho do bloco do Bitcoin para 2MB resultou na formação do Bitcoin Cash (BCH) — um novo projeto bifurcado da blockchain do Bitcoin.

$471.18
+1,73%
24H
bch

A importância do dia da independência do Bitcoin

A introdução do SegWit e a decisão da comunidade de rejeitar o aumento do tamanho do bloco representaram um momento marcante para a comunidade mais ampla do Bitcoin.

O SegWit mostrou a importância do consenso quando se tratava de mudanças na blockchain do Bitcoin, bem como a extensão da descentralização do poder que o bitcoin oferecia.

Nenhum indivíduo foi capaz de assumir a rede e levar sua proposta adiante.

Em vez disso, a comunidade debateu, iterou e continuou o longo processo de alcançar consenso como um grupo coletivo — não sob a direção de um único indivíduo.

Comece a comprar Bitcoin

Agora que você aprendeu tudo sobre o SegWit, está pronto para continuar sua jornada cripto e comprar bitcoin?

Confira nosso guia do Centro de Aprendizagem da Kraken para mais informações sobre Como comprar Bitcoin (BTC) e cadastre-se para uma conta na Kraken hoje mesmo.