O que é Segregated Witness (SegWit)?
Em criptografia, o termo “witness” é usado para se referir à soluções de problemas criptográficos. Para realizar uma transação de bitcoins, é preciso criar uma assinatura digital com a private key, que irá autorizar a transação. SegWit é uma atualização no protocolo do Bitcoin que retira os dados de assinatura (witness) das transações. Dessa forma, Segregated Witness significa solução segregada, ou dito de outro modo, assinatura à parte.
Dessa maneira, nas transações que utilizam Segwit, os dados da assinatura não são registrados nos blocos. O objetivo dessa mudança foi reduzir o tamanho da transação, uma vez que os dados da assinatura digital ocupam cerca de 50% do espaço da transação, reduzindo assim as taxas.
Ao reduzir o espaço de cada transação, mais transações podem ser incluídas em cada bloco. Dessa maneira, ao reduzir o tamanho de cada transação, SegWit apresenta-se como uma solução para problemas de escalabilidade das transações.
Ativação do SegWit e adoção
Com a ativação do Segwit, em agosto de 2017, ao liberar o espaço ocupado pela assinatura, mais transações puderam ser incluídas nos blocos (sem mudar o tamanho dos mesmos). Dessa forma, como mais transações podem ser incluídas em cada bloco, as transações que utilizam Segwit ficam cerca de 50% mais baratas.
Com crescente adoção do Segregated Witness (SegWit), cada dia mais carteiras oferecem endereços SegWit para utilização. Hoje, cerca de 40% do total de transações na rede Bitcoin já utilizam SegWit.
Dessa forma, é cada vez mais comum nos depararmos com diferentes tipos de endereços para escolher em nossas carteiras. Mas afinal, qual endereço devo usar?
Tipos de endereços
Para usufruir de taxas mais baixas é necessário que você não apenas tenha uma carteira que seja compatível com Segwit, mas também use os endereços compatíveis com esse protocolo.
Existem 3 tipos de endereços no Bitcoin.
- Bech32 (Segwit Nativo)
Começam combc1
.
bc1qar0srrr7xfkvy998745ydnw9an59gtzzwf9mdq
Compatível somente com carteiras que aceitam Segwit. Dessa forma, uma carteira antiga pode não reconhecer fundos enviados a partir desse endereço.
Oferece as menores taxas possíveis.
- P2SH (Pay-to-Script-Hash, Segwit)
Começam com3
.
3K965KmP1Z73CNmQviecrnyiWrnqRhWXuA
Endereço de transição.
Melhor opção para a maior parte dos usuários.
Compatível com todas as wallets.
Baixas taxas de transação.
- P2PKH Legacy (Pay-to-PubkeyHash, não-segwit)
Começam com1
.
1QviecrnyiWrnqRhWXuAK965KmP1Z73CNm
Endereço antigo.
Endereço compatível com todas as wallets.
Altas taxas de transações.
Dessa maneira, quando você baixar sua carteira compatível com segwit, escolha um endereço bech32 ou P2SH para armazenar seus fundos. Todas as transações realizadas a partir desses endereços já são transações que aproveitam as baixas taxas do segwit.
O caminho à frente
Segwit oferece vantagens em termos de escalabilidade, permitindo que os dados de assinatura sejam registrados off-chain, não sendo, assim, transmitidos para todos os nodes da rede.
Contudo, os benefícios do Segwit não param por ai: Ao retirar a assinatura da transação, Segwit resolveu um antigo problema do bitcoin chamado maleabilidade.
Uma assinatura gerada com a private key pode gerar mais de um output válido para o mesmo input. É como um problema na qual existem duas soluções possíveis. Para ilustrar, a função x= √9 tem duas soluções possíveis, x=3 e x=-3.
Isso é chamado de maleabilidade da transação. Esse problema nunca afetou simples transações on-chain, porém é um grande problema para transações mais complexas como a Lightning Network.
Com a retirada da assinatura da transação, a mesma não mais é considerada maleável. Dessa forma, soluções mais avançadas de escalabilidade como a Lightning Network se tornam possíveis.