Testemunha Segregada (SegWit) refere-se a uma mudança, uma atualização, na maneira como as transações de Bitcoin são feitas.
O SegWit foi ativado no bitcoin em 23 de Agosto de 2017 e seu objetivo é deixar as transações mais rápidas e mais baratas. Para entender como ele funciona, é preciso entender como transações de Bitcoin funcionam.
Várias transações são computadas em um bloco até que ele chegue em um tamanho específico (atualmente cerca de 1 megabyte), em seguida o bloco é “selado” com um identificador. Na ciência da computação, isso é chamado de hash.
Em seguida, se tudo estiver certo, o bloco é confirmado e adicionado a “corrente de blocos” e a transação é dada como completa. É daí que vem o nome “blockchain” ou “corrente de blocos”.
Imagine o seguinte: você escreve uma carta com uma instrução (“enviar 1 Bitcoin da carteira A, da qual sou dono, para a carteira B”). Só que os carteiros juntam um malote de cartas ao invés de cuidar de uma por vez. Quando o malote está cheio o suficiente, ele é averiguado, as cartas são enviadas e as ordens executadas.
A proposta do SegWit para acelerar as transações
Obviamente, a existência de um tamanho máximo para os blocos e a necessidade de confirmar cada um deles antes de colocá-los na “corrente” acabam causando um limite no número transações que podem ser efetuadas dentro de um espaço de tempo. Em alguns casos, chegou a levar horas para confirmar a validade de uma transação.
Bom, mas como, no exemplo das cartas com instruções, é possível saber que foi você mesmo, dono da carteira A, que deu a ordem?
Através da chave-privada: um código ao qual só o dono da carteira deve ter acesso. Você pode pensar nela como se fosse um carimbo oficial.
Obviamente, não é a sua chave privada que vai aparecer registrada na blockchain. Para realizar uma transação, cria-se uma assinatura digital (witness signature, ou “assinatura de testemunha”) baseada na chave privada.
Segregar significa remover ou separar, então SegWit significa literalmente remover os dados da “assinatura de testemunha” e colocá-los em uma sidechain, onde são armazenados longe do blockchain principal.
Como a quantidade de dados armazenados por transação diminui, o SegWit apresenta-se como uma solução que aumenta a quantidade de transações que cabem em um bloco e a velocidade com que são computadas.