Categorias
Como funcionam? Mastering Bitcoin

SegWit – Bitcoin Melhorada

Segregated Witness (SegWit), Testemunha Segregada em português, foi uma melhoria implementada às regras de consenso da Bitcoin em Agosto de 2017. Esta melhoria foi implementada na rede com o objectivo de aumentar a segurança e a escalabilidade (a capacidade de crescer) e diminuir as taxas de transacção.

Em criptografia, o conceito de “testemunha” refere-se à solução para um desafio criptográfico. Na Bitcoin, mais especificamente, a “testemunha” satisfaz as condições impostas no output da transacção confirmando que esse endereço é o destinatário correcto e passando-lhe as moedas.

Quando se regista uma transacção, é-lhe imposta um destinatário. O destinatário tem que provar que, realmente, é o endereço correcto para receber essas moedas. Para isso, apresenta um código – a testemunha – que irá desbloquear as moedas e finalizar a transacção de forma a guardar essas moedas na sua carteira. A isto chama-se assinar a transacção.

Na Bitcoin tradicional, todos os inputs eram seguidos pela testemunha que permitiu desbloquear essas moedas. O que se consegue com a SegWit é a separação desta informação para uma estrutura à parte que irá acompanhar a transacção. Esta estrutura é descartável tornando toda a operação mais leve para ser guardada pelos nós da rede. Portanto, estamos a segregar (separar) a testemunha.

Esta é uma das vantagens da SegWit. A redução do tamanho da transacção permite reduzir os recursos que um utilizador tem que reservar para correr um nó de Bitcoin.

Um nó precisa de 4 tipos de recursos electrónicos para tratar as transacções da rede:

  • Armazenamento no disco – cada transacção é guardada na blockchain e por isso é necessário investir num disco capaz de guardar uma cópia completa;
  • Processador – todas as transacções têm que ser validadas, para isso precisam de tempo de processamento;
  • Largura de Banda – cada transacção tem que ser transmitida para a rede pelo menos uma vez;
  • Memória RAM – os nós guardam todos os outputs em memória RAM para acelerar a validação.

De todos estes recursos a memória RAM é a mais cara, por isso aumentar os outputs em standby aumenta substancialmente o custo de manter o nó a funcionar. Por outro lado, as testemunhas são a parte que menos custos implica na rede, já que são apenas usadas uma vez e podem ser descartadas depois de utilizadas. Para ir de encontro a estas características, a comunidade adoptou esta melhoria ao protocolo que incentiva as transacções que reduzem o número de outputs na rede.

Estes incentivos são feitos através das taxas de transacção. As taxas são calculadas com base no tamanho dessas operações sem diferenciar que tipo de dados estão a utilizar – testemunhas ou outputs. A testemunha, na rede tradicional da Bitcoin (Legacy), representa o maior componente. Ao descartar as testemunhas, a SegWit não irá penalizar inadvertidamente o uso de múltiplos inputs. Isto abre a possibilidade para serem gastos um maior número de outputs em espera o que liberta espaço de memória RAM aos nós. Ao reduzir o recurso mais caro que os nós têm que ter disponível, reduzimos os custos para os mesmos e tornamos a rede mais atraente para todos.

A SegWit consegue alinhar as taxas de transacção com os custos de manter um nó. Os nós investem menos em memória RAM e os utilizadores gastam menos em taxas.

Além dos incentivos económicos, a SegWit impõe melhorias em mais alguns aspectos da Bitcoin:

  • Maleabilidade das Transacções – a testemunha é a única parte da transacção que pode ser alterada por alguém que não seja o seu criador. Ao retirar a testemunha, passam a ser imutáveis prevenindo ataques de maleabilidade. Permite ainda adicionar novos protocolos mais avançados como sejam canais de pagamentos ou a Lightning Network (Rede Relâmpago) – uma segunda camada da rede mais rápida e que poderá transformar a Bitcoin em algo ainda maior.
  • Identificar a Versão dos Scripts – nos scripts da SegWit, é indicada a versão utilizada pelo nó que criou aquela transacção. A capacidade de actualizar a linguagem de uma forma não disruptiva permite que sejam feitas melhorias graduais à Bitcoin. Desta forma, poder-se-à evoluir a Bitcoin de uma maneira muito mais rápida.
  • Escalabilidade da Rede e de Armazenamento – como vimos, ao reduzir o tamanho das transacções, os nós conseguem aumentar a quantidade que conseguem guardar com os mesmos recursos. Também é possível aumentar o número de operações transmitidas no mesmo período já que libertamos largura de banda. Estas condições criam uma rede menos pesada para os nós, consequentemente mais célere e expedita para os utilizadores.
  • Optimização de Verificação das Assinaturas – esta melhoria reduz a complexidade do algoritmo de validação melhorando as funções de assinatura de uma transacção. Isto reduz a capacidade computacional dedicada à rede, facilitando a operação na mesma.
  • Melhorias em Assinaturas Offline – na SegWit as assinaturas contém os valores atribuídos a cada input. Assim, um dispositivo offline não precisa das transacções anteriores para validar aquela. Se os montantes não corresponderem, a assinatura será inválida e o dispositivo não a aceitará.

Um dos maiores desafios da Bitcoin, sempre foi a escalabilidade – a capacidade de crescer a rede e receber um número cada vez maior de transacções e utilizadores. A SegWit foi a resposta da comunidade que se dedica a desenvolver esta rede para aumentar esta capacidade. No entanto, a Bitcoin continua a crescer e, com isso, a necessidade de aumentar rede. A Rede Relâmpago é o próximo passo. Nos próximos artigos vamos entender como funciona essa rede.

Deixe um comentário