Segregated Witness (SegWit) muda como transações Bitcoin carregam provas de gasto, como assinaturas. Nas entradas SegWit, essas informações ficam em uma estrutura de testemunha excluída do identificador tradicional, o txid. Os nós validadores continuam transmitindo e verificando os dados; eles não são removidos do processo de verificação.
Identificadores estáveis e compromissos de bloco
Separar a testemunha resolve formas importantes de maleabilidade: alterações em dados ligados à assinatura podiam mudar um identificador sem alterar o pagamento pretendido. A proteção depende das entradas e condições de assinatura, portanto não elimina toda modificação possível de transação.
Um identificador separado, o wtxid, inclui os dados de testemunha. Os blocos se comprometem com esses dados por meio de um compromisso de testemunha associado à transação coinbase. SegWit foi implementado como soft fork.
Peso e efeitos práticos
SegWit introduziu o peso de bloco: dados que não são de testemunha contam mais que os de testemunha. Isso pode reduzir o tamanho virtual de transações adequadas e melhorar o uso do espaço. As taxas reais continuam dependendo da estrutura da transação e da taxa por unidade vigente.
Identificadores mais estáveis apoiam protocolos que constroem transações sobre outras ainda não confirmadas, incluindo canais de pagamento Lightning. SegWit não torna transações Bitcoin privadas, gratuitas ou automaticamente confirmadas.