Guia para iniciantes sobre Segregated Witness (SegWit)
P√°gina Inicial
Artigos
Guia para iniciantes sobre Segregated Witness (SegWit)

Guia para iniciantes sobre Segregated Witness (SegWit)

Avançado
Publicado em Nov 25, 2019Atualizado em Jun 13, 2023
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%.