Alguns dos nossos leitores podem ter reparado que há diferentes tipos de formatos de endereço de Bitcoin. A Testemunha Segregada foi uma atualização de um protocolo que foi implementada por um soft fork na rede Bitcoin em 2017 e desde então há três diferentes tipos de formatos.
Qual é o benefício da Testemunha Segregada? Porque é que é importante e como é que funciona? Neste artigo, vamos explicar o que é a SegWit.
A SegWit permite que a Bitcoin seja escalada e melhora a segurança
O nascimento da testemunha segregada requer uma pequena aula de história na Bitcoin. O protocolo original da Bitcoin permitiu a criação de um novo bloco a cada dez minutos, em média, e cada bloco tinha um tamanho predeterminado de 1 megabyte. O tamanho do bloco limita o espaço para as transações e, por conseguinte, a escalabilidade da Bitcoin. A partir de algures no ano de 2015, a comunidade Bitcoin começou a discutir como escalar a Bitcoin de forma que a rede pudesse lidar com mais transações.
Uma abordagem foi aumentar drasticamente o tamanho do bloco, o qual permitiria simplesmente mais transações por bloco aumentando o espaço. Outra foi reorganizar a informação que estava incluída em cada bloco e criar mais espaço contendo menos dados cuja inclusão não é imediatamente necessária para que as transações ocorram. Vale a pena mencionar que até este dia ainda havia uma discussão se a SegWit era uma boa ideia e se um aumento no tamanho do bloco é uma melhor solução. Historicamente, este debate levou ao fork Bitcoin Cash, criando uma nova criptomoeda com a Bitcoin a implementar a testemunha segregada e a Bitcoin Cash a optar por um tamanho de bloco consideravelmente maior.
Outro problema importante que é frequentemente supervisionado devido ao facto de a escalabilidade parecer ser o problema mais significativo é a prevenção da maleabilidade da transação. Antes da SegWit estar ativa era possível um nó mudar o hash da transação de uma transação não confirmada.
Isto é extremamente problemático, particularmente se a parte recetora estiver dependente da fiabilidade de uma cadeia de transações não confirmadas. Ao mudar o hash da primeira transação esta não é a invalidada, mas a próxima transação na cadeia depende de um hash que foi alterado. Por conseguinte, todas as transações seguintes vão falhar e serão consideradas inválidas porque estão a referir-se ao TX ID errado.
A manipulação dos IDs da transação abre a porta para todos os tipos de fraude. Mas, acima de tudo, isto é absolutamente inaceitável se estiver à procura de utilizar uma solução de segunda camada no topo da Bitcoin como a Lightning Network.
Como funciona a testemunha segregada?
A atualização do protocolo SegWit segregou os dados da transação da assinatura digital da testemunha da transação. O tamanho do bloco aumentou efetivamente até 4 megabytes enquanto é compatível com o protocolo Bitcoin original.
Originalmente, cada bloco legado continha a saída e entrada das transações, bem como as assinaturas e adicionalmente os scripts. Os blocos SegWit são de facto maiores e diferentemente estruturados. Ao segregar as assinaturas e os scripts, há um bloco base que também é designado bloco de transação, que ainda é considerado como sendo válido segundo o protocolo antigo. Este contém entradas e saídas e não excede o limite de 1 megabyte.
O bloco estendido, por outro lado, é maior e contém até 3 megabytes de dados. Nomeadamente assinaturas e script. Esta estrutura permite que a SegWit seja compatível com versões anteriores, o que significa que ninguém tem de usá-la enquanto esta oferece ótimos benefícios por fazê-lo ao mesmo tempo. Isto também permitiu que a SegWit fosse implementada como um soft fork ao invés de requerer um hard fork que teria sido mais stressante e poderia ter colocado a rede em risco de uma divisão.
Tamanho vs. Peso
Com os blocos legado a serem medidos em tamanho, também houve uma atualização à forma como as transações são medidas. Os blocos SegWit não são medidos em tamanho, mas em peso. Ao invés de medir cada bloco em megabytes (tamanho), este é medido em unidades de peso. Um bloco SegWit tem um peso de 4 milhões WU (unidades de peso), o que equivale a 4 megabytes de dados.
A fórmula para calcular o peso de uma transação SegWit é:
(Tamanho da transação – Dados da testemunha) * 3 + Tamanho total da transação
O peso de uma transação legado é calculado de forma diferente:
Tamanho da transação * 4
De facto, as transações SegWit são sempre mais leves do que as transações legado, incentivando os mineiros a incluírem essas transações primeiro, porque elas podem recolher mais taxas dado que cada bloco vai conter mais transações. Isto também tem um impacto nas taxas para o remetente. Uma transação legado é sempre mais cara dado que é mais pesada e requer pagar uma taxa maior para ser confirmada à mesma velocidade de uma transação SegWit.
Os formatos do endereço
Há três tipos de formatos de endereço que foram introduzidos com a Bitcoin. Os primeiros são os endereços legado, estes começam sempre com 1:
1Mpf72Q2xwi1okJL1RCaQeVRPKDhEWRtXt
Os segundos são os endereços SegWit, eles começam com o 3:
392PTfCzykHSyteg6umCCvbrofRSoJb96i
E os terceiros são SegWit nativos (bech32) começando com bc:
bc1qar0srrr7xfkvy5l643lydnw9re59gtzzwf5mdq
O SegWit nativo é um novo formato que é ainda mais eficiente em termos de peso e oferece uma melhor deteção de erro do que o formato SegWit original. De facto, a utilização do bech32 resulta em taxas mais baratas e nas transações mais rápidas possível na rede Bitcoin.
Perguntas Frequentes: SegWit
A SegWit é segura?
Sim, não há qualquer preocupação de segurança na utilização da SegWit. Esta é de facto uma atualização de segurança quando considera a remoção da maleabilidade da transação de transações não confirmadas.
Há outras vantagens?
A SegWit permitiu a implementação da Taproot, a qual permite os contratos inteligentes e inclusive validações mais rápidas.
Tenho de aceitar as transações SegWit?
Pode sempre optar por uma carteira legado que não esteja a utilizar a SegWit. Ainda é possível enviar fundos entre endereços legado e SegWit. Mas em retorno, as transações custarão mais taxas e são mais lentas
Espere, então isto quer dizer que a SegWit está afinal a aumentar o tamanho do bloco? Então porque o debate?
O tamanho do bloco aumentou para um nível teórico de 4 megabytes. O tamanho médio do bloco é agora de sensivelmente 2 megabytes. A vantagem da SegWit é o facto de que é compatível com versões anteriores respeitando o limite de 1 megabyte dos blocos de transação. Não foi necessária uma alteração ao protocolo original. Por outro lado, o aumento do tamanho do bloco acima desse limite requereria um hard fork, algo que é considerado como sendo um evento crítico.