Visão Geral
A maleabilidade de transações foi uma vulnerabilidade de longa data no Bitcoin onde um terceiro (ou mesmo o signatário da transação) poderia modificar os dados de assinatura em uma transação sem invalidá-la, fazendo o ID de transação mudar. Embora a transação modificada ainda transferisse a mesma quantia para o mesmo destinatário, o TXID alterado quebrava quaisquer transações dependentes que referenciassem o ID original.
Como Funcionava
Em transações pré-SegWit, a assinatura (scriptSig) estava incluída nos dados que eram hasheados para produzir o TXID. Como as assinaturas ECDSA têm múltiplas codificações válidas para a mesma autorização, os bytes da assinatura podiam ser alterados enquanto permaneciam criptograficamente válidos:
Transação Original:
TXID: abc123...
scriptSig: [assinatura_A] <-- Pode ser modificado
Saídas: 1 BTC para Alice
Transação Maleada:
TXID: def456... <-- TXID diferente!
scriptSig: [assinatura_A'] <-- Codificação diferente, ainda válida
Saídas: 1 BTC para Alice <-- Mesmo pagamento
Por Que Era um Problema
- Encadeamento de transações: Qualquer transação que referenciasse o TXID original como entrada se tornaria inválida se a versão maleada fosse minerada em seu lugar.
- Exploits de exchanges: Atacantes podiam sacar de exchanges, malear o TXID e afirmar que o saque nunca chegou — levando a exchange a reenviar fundos.
- Lightning Network impossível: Os canais de pagamento exigem cadeias confiáveis de transações pré-assinadas. A maleabilidade tornava isso inseguro, pois uma transação de financiamento maleada invalidaria todas as transações de compromisso subsequentes.
A Correção SegWit
O SegWit resolveu a maleabilidade de transações movendo dados de testemunha (assinaturas) para uma estrutura separada que não está incluída no cálculo do TXID:
Pré-SegWit: TXID = Hash(versão + entradas + scriptSig + saídas + locktime)
^^^^^^^^^^
Maleável!
SegWit: TXID = Hash(versão + entradas + saídas + locktime)
Dados de testemunha comprometidos separadamente (não no TXID)
Essa correção foi o pré-requisito crítico para construir a Lightning Network, que depende de cadeias de transações pré-assinadas com TXIDs previsíveis.
Importância Histórica
A exchange Mt. Gox citou famosamente a maleabilidade de transações como um fator em seu colapso em 2014, embora investigações subsequentes tenham revelado que a maleabilidade não foi a principal causa de suas perdas. No entanto, o incidente trouxe atenção generalizada para a vulnerabilidade e motivou o desenvolvimento do SegWit.