Guia para iniciantes sobre Segregated Witness (SegWit)
Guia para iniciantes sobre Segregated Witness (SegWit)
InícioArtigos

Guia para iniciantes sobre Segregated Witness (SegWit)

Avançado
Published Nov 25, 2019Updated Apr 29, 2021
6m

Conteúdo


O que é SegWit?

Segregated Witness (SegWit) é uma atualização de protocolo desenvolvida em 2015. O conceito foi introduzido como uma solução para o problema de escalabilidade que as redes blockchain enfrentavam e ainda enfrentam atualmente. 

Em média, a rede Bitcoin valida um novo bloco a cada 10 minutos e cada bloco contém várias transações. Assim, o tamanho do bloco afeta o número de transações que podem ser confirmadas em cada bloco. Atualmente, a blockchain Bitcoin é capaz de processar cerca de 7 transações por segundo.

A principal idéia do SegWit é reorganizar os dados do bloco de forma que as assinaturas não sejam mais colocadas junto com os dados de transação. Em outras palavras, a atualização SegWit consiste em separar as testemunhas (assinaturas) dos dados de transação. Isso permite que mais transações sejam armazenadas em um único bloco e, portanto, aumenta a taxa de transações da rede.

Por ser capaz de processar apenas cerca de 7 transações por segundo, uma transação Bitcoin pode demorar muito tempo. É um processo mais lento quando comparado a soluções de pagamento convencionais e redes financeiras, que podem processar milhares de transações por segundo.

O SegWit foi criado em 2015 pelo desenvolvedor de Bitcoin, Pieter Wuille, juntamente com outros colaboradores da Bitcoin Core. Em agosto de 2017, a atualização do SegWit foi implementada como um soft fork na rede Bitcoin.
Atualmente, existem vários projetos de criptomoeda usando o SegWit, incluindo Bitcoin e Litecoin. A atualização do protocolo trouxe vários benefícios, como maior velocidade de transação e capacidade de blocos. Além disso, o SegWit resolveu o bug de maleabilidade de transações (discutido abaixo).


Quais são os principais benefícios do SegWit?

Aumento da capacidade

Um dos maiores benefícios do SegWit é o aumento da capacidade de bloco. Removendo os dados da assinatura da entrada (input) da transação, mais transações podem ser armazenadas em um único bloco.

As transações possuem dois componentes principais: entradas (inputs) e saídas (outputs). Essencialmente, uma entrada contém o endereço público do remetente, enquanto a saída contém o endereço público do destinatário. No entanto, o remetente deve provar que os fundos estão sendo transferidos e isso é feito através de uma assinatura digital.

Sem o SegWit, os dados da assinatura podem ocupar até 65% de um bloco. Com o SegWit, os dados da assinatura são removidos da entrada da transação. Isso faz com que o tamanho efetivo do bloco aumente de 1 MB para cerca de 4 MB.

Observe que o SegWit não provoca um aumento real do tamanho do bloco. É uma solução de engenharia para aumentar o tamanho efetivo do bloco sem precisar aumentar o limite de tamanho do bloco (o que exigiria um hard fork). Mais especificamente, o tamanho real do bloco ainda é de 1 MB, mas o limite efetivo do tamanho do bloco é de 4 MB.

Além disso, o SegWit introduziu a ideia de peso do bloco. Podemos considerar o peso do bloco como um conceito que substitui a ideia do tamanho do bloco. Basicamente, o peso do bloco é uma medida que inclui todos os dados do bloco, incluindo dados de transação (1 MB) e dados da assinatura (até 3 MB), que não fazem mais parte do seu campo de entrada (input).


Aumento da velocidade de transação

Com um bloco que pode armazenar mais transações, o SegWit também tem a capacidade de aumentar a velocidade da transação, pois pode haver uma quantidade maior de transações se movendo pela blockchain. Mesmo que um bloco possa levar a mesma quantidade de tempo para minerar, mais transações estão sendo processadas nele, então a taxa TPS é maior.

O aumento da velocidade de transação também ajuda a reduzir os custos de transação na rede Bitcoin. Antes do SegWit, era comum gastar mais de US$30 por transação. O SegWit reduziu drasticamente esse custo para menos de US$1 por transação.


Correção da maleabilidade de transações

Um grande problema da Bitcoin era a possibilidade de adulterar assinaturas de transações. Se uma assinatura é alterada, isso pode resultar em uma transação corrompida entre duas partes. Como os dados armazenados em blockchains são praticamente imutáveis, transações inválidas poderiam ser permanentemente armazenadas na blockchain.

Com o SegWit, as assinaturas não fazem mais parte dos dados da transação, o que remove a possibilidade de alterar esses dados. Essa correção permitiu mais inovações na comunidade blockchain, incluindo protocolos de segunda camada e contratos inteligentes.


SegWit e a Lightning Network

O desenvolvimento de protocolos de segunda camada foi parcialmente possível graças à correção do bug de maleabilidade de transações. Basicamente, os protocolos de segunda camada são novas plataformas ou produtos criados sobre uma blockchain, como a Bitcoin. Um dos protocolos de segunda camada mais populares é a Lightning Network, uma rede de micropagamentos off-chain (fora da cadeia).

A Lightning Network é um protocolo de segunda camada que opera sobre a rede Bitcoin. O principal objetivo da Lightning Network é permitir que mais transações sejam confirmadas em um período menor, resultando em transações mais rápidas para os usuários. As transações são coletadas fora da cadeia (off-chain) e efetivamente armazenadas para que a rede Bitcoin possa eventualmente processá-las.

A Lightning Network foi originalmente desenvolvida para a Bitcoin. No entanto, vários outros projetos de criptomoeda e blockchain estão trabalhando na implementação da tecnologia para suas redes. Isso não apenas reduz o tempo de confirmação das transações, como também promove o desenvolvimento de novas soluções para o problema de escalabilidade.


SegWit vs. SegWit2x

O SegWit é uma atualização soft fork, o que significa que é compatível com versões anteriores. Ou seja, os nós da Bitcoin que não foram atualizados para incluir o SegWit, ainda podem processar transações. No entanto, havia outra proposta de implementação do SegWit chamada SegWit2x (S2X), que exigiria uma atualização de hard fork.

A principal diferença entre o SegWit e o SegWit2x é que este último não apenas incluiu uma alteração no lote da transação, mas também um aumento no tamanho de bloco (de 1 MB para 2 MB). Ainda assim, um tamanho de bloco maior aumentaria a carga sobre os operadores e mineradores de nós, pois haveria uma maior quantidade de dados a serem processados. 

Outra diferença notável é que a proposta do SegWit foi apoiada e aplicada pela comunidade Bitcoin. O episódio deu origem ao conceito de UASF, que significa "user-activated soft fork" (soft fork ativado pelo usuário).

Por outro lado, o SegWit2x propôs uma mudança substancial em uma das regras fundamentais que regem a Bitcoin. Mas como os desenvolvedores não conseguiram chegar a um consenso sobre sua adoção e implementação, o projeto SegWit2x foi suspenso.


Considerações finais

A implementação do SegWit marcou a maior atualização de protocolo da Bitcoin e o fato de ter sido apoiado e implementado pela comunidade descentralizada, o torna ainda mais interessante.

A introdução do SegWit foi um grande passo à frente na solução de muitos problemas relacionados à Bitcoin e outras redes blockchain - especialmente em relação à escalabilidade. Através da combinação do SegWit e dos protocolos de segunda camada, as redes blockchain podem lidar com um número maior de transações, com mais eficiência e com custos mais baixos.

Apesar de ser uma solução poderosa e inovadora, o SegWit ainda não foi totalmente adotado. Atualmente, a porcentagem de endereços Bitcoin usando o SegWit é de cerca de 53%.