Bem-vindo a outro guia para iniciantes em criptografia! Hoje, vou falar sobre o que é o SegWit.
Existem centenas de criptomoedas no mercado e cada uma delas possui um conjunto de regras que orientam a maneira como funcionam. Este conjunto de regras é denominado protocolo. Então, o que tudo isso tem a ver com o SegWit? O que é SegWit?
Bem, como todos os programas de computador, as criptomoedas precisam ser atualizadas e aprimoradas. Bugs e falhas são descobertos e precisam ser corrigidos. Isso é o que acontece quando seu laptop pede para você desligar e atualizar.
Quando uma criptomoeda precisa ser atualizada ou melhorada, alterações devem ser feitas em seu protocolo. SegWit foi uma atualização feita no protocolo Bitcoin no ano passado.
Neste guia, direi tudo o que você precisa saber sobre o SegWit. Vou te dizer o que é SegWit e como funciona. Também direi quais melhorias foram feitas na rede Bitcoin e o que essas melhorias significam para seus usuários.
Ao final deste guia, você nunca terá que se perguntar: “O que é SegWit?” de novo.
Vamos começar observando de onde o SegWit veio e o que ele estava tentando alcançar ...
Índice
• 1. A história do SegWit
• 2. Os fundamentos do Blockchain
• 3. Transações para iniciantes
• 4. Transação Bitcoin Padrão
• 5. Como funciona a maleabilidade da transação
• 5.1. Patching Transaction Maleability
• 6. Escalabilidade Bitcoin SegWit
• 6.1. The Lightning Network
• 7. O que é SegWit: The Pros
• 8. O que é SegWit: os contras
• 9. Conclusão
A história do SegWit


Name:  Capturar 1.PNG
Views: 47
Size:  50.1 KB


A ideia do SegWit foi apresentada pela primeira vez por Pieter Wuille em uma conferência de Bitcoin em 2015. Wuille é um desenvolvedor de Bitcoin e co-fundador da Blockstream, uma empresa de software especializada em segurança digital para serviços financeiros.
Wuille sugeriu SegWit como uma solução para uma falha no protocolo Bitcoin. No desenvolvimento de software, as soluções para falhas são chamadas de patches. O problema que ele queria corrigir é chamado de maleabilidade da transação. A maleabilidade da transação é uma maneira nerd de dizer que o Bitcoin pode ser roubado dos usuários alterando minúsculos pedaços de informações da transação. Não se preocupe, vou cobrir tudo isso com mais detalhes na próxima seção.
A proposta do SegWit de Wuille causou um grande debate na comunidade Bitcoin e demorou quase dois anos para entrar no ar. Ele foi finalmente ativado em 23 de agosto de 2017. O mesmo patch foi aplicado ao protocolo Litecoin em 10 de maio de 2017.
Nota: Litecoin é uma criptomoeda cujo código é baseado no protocolo Bitcoin. Por serem muito semelhantes, eles compartilhavam o problema da maleabilidade da transação.
O SegWit corrigiu o problema de maleabilidade da transação e também possibilitou algumas outras melhorias no protocolo Bitcoin. No entanto, ainda tem muitas críticas e nem todos os usuários da rede Bitcoin deram as boas-vindas às mudanças. Alguns membros da comunidade Bitcoin discordam tanto do SegWit que criaram suas criptomoedas rivais!
Antes de entrarmos em qualquer assunto, vamos examinar mais de perto o problema da maleabilidade da transação. Então, o que é maleabilidade de transação e o que a SegWit está fazendo para impedi-la?
A maleabilidade da transação é bastante complicada. Para entender isso, você primeiro precisa entender como funcionam as transações de Bitcoin ...
Os fundamentos do Blockchain
Bitcoin é uma enorme rede composta por milhares de computadores chamados de nós. Cada nó mantém um registro completo de cada transação Bitcoin que já foi feita. Este registro é chamado de blockchain.
A maior parte do trabalho envolvido no processamento de novas transações é feito por nós especiais chamados mineiros. Os usuários pagam taxas de transação às mineradoras pelo trabalho que realizam. Novas transações só podem ser adicionadas ao blockchain depois que os mineiros as colocarem em grupos de transações chamados de blocos. Cada bloco no blockchain Bitcoin contém 1 MB de informações de transação.
A rede deve levar cerca de 10 minutos para processar um bloco de transações, mas pode demorar muito mais. A rede Bitcoin pode processar entre 3 a 7 transações por segundo (Tx / s). No entanto, isso pode ficar muito lento quando a rede está ocupada.
Agora vou usar dois exemplos para mostrar como funcionam as transações simples de Bitcoin. A primeira será uma transação padrão de Bitcoin. A segunda será uma transação em que um usuário aproveita a maleabilidade da transação para roubar Bitcoin de outro usuário.


Name:  Capturar 2.PNG
Views: 36
Size:  410.8 KB


Transações para iniciantes
Lucy quer enviar 10 Bitcoin (BTC) para Jude. Para fazer isso, Lucy e Jude precisam de dois tipos de informações:
• Um endereço público: é como um endereço de e-mail Bitcoin. Um endereço público é um local digital para o qual Lucy pode enviar Bitcoin. Jude tem um endereço público para receber Bitcoin. Os endereços públicos podem ser vistos por toda a rede.
• Uma chave privada: se os endereços públicos forem como endereços de e-mail, as chaves privadas serão como senhas. Eles provam que os endereços públicos - e, portanto, o próprio Bitcoin - pertencem a Lucy e Jude. Apenas Lucy pode ver a chave privada de Lucy e apenas Jude pode ver a chave privada de Jude.
Vamos ver como fica a transação na rede Bitcoin ...
Transação Bitcoin Padrão

Name:  Capturar 3.PNG
Views: 52
Size:  81.9 KB



1. Lucy transmite uma solicitação para a rede. A solicitação contém o endereço público de Jude, o valor que está sendo enviado (10BTC) e uma taxa de transação para os mineiros. Ele também contém a assinatura de chave privada de Lucy, que ela usa para provar que tem 10BTC para enviar. Essas informações de assinatura são chamadas de dados de testemunha.
2. Os mineiros processam a transação. Eles colocam as informações de Lucy junto com as de Jude e as criptografam. Isso significa que eles transformam as informações em uma linha de código de computador. Este código é denominado ID da transação.
3. As transações são enfileiradas, esperando para serem processadas. Se Lucy cobrou uma taxa de transação baixa, ela pode ficar na fila por muito tempo! É como pedir comida em um restaurante. Se você não der gorjeta ao garçom, a sua comida pode demorar muito para chegar! Lucy pode acelerar o processo enviando a transação novamente com uma taxa mais alta. O ID da transação agora é adicionado aos IDs da transação de outros usuários e criptografado novamente. Esse processo continua até que o limite de 1 MB de informações da transação seja atingido e um bloco seja formado.
4. O bloqueio é confirmado. O bloco é transmitido para a rede e se mais da metade de todos os nós concordarem que as informações nele são válidas, pode ser confirmado e adicionado ao blockchain. Jude recebe 10BTC de Lucy.
É assim que acontece a maioria das transações de Bitcoin. A seguir, quero mostrar como a maleabilidade das transações pode afetar as transações e, em seguida, podemos perguntar: o que a SegWit está fazendo a respeito?
Como funciona a maleabilidade da transação

Usando o exemplo novamente, vou mostrar como a maleabilidade da transação pode ser usada por Jude para enganar Lucy e fazê-la enviar 20BTC em vez de 10. É assim que funciona ...
A falha de maleabilidade da transação no código do Bitcoin permite que Jude altere os dados da testemunha de Lucy antes que a transação seja confirmada. Isso altera o ID da transação sem alterar a própria transação (que ainda é 10BTC sendo enviado de Lucy para Jude).
Quando esta transação alterada é confirmada pela rede, ela cancela a transação original. Agora Jude contata Lucy para reclamar que ele não recebeu 10BTC, embora ele tenha!
Lucy verifica e vê se a transação original não foi concluída. Ela agora impõe uma taxa de transação mais alta e a envia novamente. Esta nova transação é processada pela rede. Jude recebe mais 10 Bitcoins!
Lucy, os mineiros e o resto da rede não têm como saber que isso está acontecendo. Uma vez que as transações são confirmadas e adicionadas ao blockchain, elas não podem ser alteradas ou excluídas. Abaixo está um gráfico que mostra o sério problema de maleabilidade de transação para a rede Bitcoin.