36 / 691CHG

Saída de troco

A saída de retorno envia a parte das entradas de bitcoin selecionadas que não foram para os destinatários ou a taxa para um script controlado pelo pagador. É uma saída de transação normal: o blockchain não contém o sinalizador “change”, então a propriedade é conhecida pela carteira e apenas adivinhada por outros.

"Alterar endereço" é a notação de endereço do script desta saída, mas tecnicamente é o scriptPubKey e o novo UTXO, não o saldo da conta. Com a soma dos insumos I, dos resultados para os destinatários R e da taxa F, C = I − R − F é válido. No caso de saque exato ou saldo não econômico, a carteira pode não gerar troco algum.

Bitcoin gasta todo UTXO; apenas uma parte não pode ser subtraída de uma entrada. Se a carteira escolher entradas de 120.000 sats para um pagamento de 100.000 sats e uma taxa de 2.000 sats, ela deverá colocar os 18.000 sats restantes na próxima saída ou mantê-la como taxa. A saída e a alteração do destinatário têm a mesma posição na serialização e o pedido não tem significado de consenso. Uma vez confirmada, a mudança é um novo UTXO com seu próprio ponto final, confirmação e preço de gasto futuro. [Guia do desenvolvedor Bitcoin – Transações]

A seleção de moedas seleciona entradas, taxas e possíveis alterações em conjunto. A combinação exata não produzirá a saída; caso contrário, a carteira compara o saldo com o custo de criá-lo e gastá-lo posteriormente. O financiamento RPC Bitcoin Core pode preencher no máximo uma saída de alteração e retornar sua posição, enquanto enviar tudo não tem nenhuma. O controle de moedas altera os insumos utilizados, portanto, mudam, mas cada insumo selecionado manualmente é consumido em sua totalidade. Confira lançamentos finais, valores de beneficiários, taxa e troco. [Bitcoin Core – Implementação de seleção de moedas] [Bitcoin Core RPC – funddrawtransaction] [Bitcoin Optech – Seleção de moedas]

As carteiras HD geralmente derivam scripts de aceitação na ramificação externa e alterações na ramificação interna. BIP44 marca change=0 como externo e change=1 como interno: por exemplo m/84'/0'/0'/0/i e m/84'/0'/0'/1/i para uma conta SegWit nativa. Esta é uma convenção de aplicação, não um consenso; a carteira do descritor pode ter uma política diferente. O novo endereço interno restringe a reutilização de endereços, enquanto o retorno ao endereço original é válido, mas vincula o histórico. [BIP 32 — Carteiras Determinísticas Hierárquicas] [BIP 44 — Hierarquia de Múltiplas Contas]

O descritor de saída combina o tipo de script, chaves, origens e um curinga de derivação especificando a propriedade. O par wpkh([fingerprint/84h/0h/0h]xpub…/0/*) e …/1/* descreve receber uma alteração; BIP389 permite escrita multicaminho. O sinalizador interno seleciona o descritor para alteração, mas não altera o script em si. Uma semente sem informações de conta, tipo de script e política de derivação pode deixar alterações válidas invisíveis após uma atualização, mesmo que as chaves existam. [BIP 380 – Descritores de script de saída] [BIP 389 – Expressões de chave do descritor multipath] [Bitcoin Core – Descritores de saída]

O bloco contém valores e scriptPubKeys, não pagador, beneficiário ou rótulos de alteração. A carteira reconhece suas próprias alterações nos registros derivados, o explorador apenas adivinha. A ordem de saída ou a regra da "segunda saída" não é confiável. Uma transação não pode ter nenhuma mudança, uma, múltiplas saídas autocontroladas ou saídas de vários participantes. A mudança é, portanto, uma classificação relativa à carteira, não uma propriedade escrita pelo protocolo. [Guia do desenvolvedor Bitcoin – Transações]

As heurísticas comuns designam como alteração uma saída do mesmo tipo de script das entradas, um valor arredondado pouco lisonjeiro, um novo endereço ou um valor correspondente à aritmética das entradas. Eles geralmente trabalham com pagamento normal com duas saídas, mas cada um tem contra-exemplos. O BIP78 Payjoin quebra intencionalmente as heurísticas de entrada comum, de tipo de script e de valor redondo; CoinJoin, lote e autotransferência adicionam ainda mais ambiguidade. Pretende-se que o resultado tenha um grau de certeza e suporte, e não um status de prova de protocolo. [BIP 78 – Payjoin] [Meiklejohn et al. - Um punhado de Bitcoins]

Poeira é a política de retransmissão do nó calculada a partir do tipo de saída, do tamanho estimado de suas despesas futuras e da taxa ajustável de retransmissão de poeira; não é uma contagem universal de satoshi ou uma proibição consensual. Uma carteira pode rejeitar trocos acima da poeira quando a criação e os gastos posteriores custam mais do que seu valor. O limite econômico depende da tarifa atual e de longo prazo e do tamanho do roteiro. Suprimir as alterações aumentará a taxa de hoje, pois poucas alterações podem travar. [Bitcoin Core – Política de retransmissão de transações]

No PSBT, as derivações de saída BIP32 permitem que um signatário de hardware ou offline derive a saída proposta e verifique o retorno à mesma política de carteira. BIP174 descreve detecção para chave única e multisig; para multisig, combinar uma única chave local não é suficiente. Um coordenador mal-intencionado pode substituir a alteração por sua própria saída ou ocultar o restante mediante uma taxa exorbitante. O signatário deve verificar o destinatário, a taxa total e cada alteração declarada no display confiável. [BIP 174 — Formato de transação Bitcoin parcialmente assinado]

A substituição por taxa altera a economia da transação não confirmada. bumpfee no Bitcoin Core pode pagar uma taxa mais alta reduzindo trocos, adicionando insumos ou criando trocos; depois de cair abaixo da mudança política ou econômica, ele desaparece. Gastar trocos não confirmados cria um descendente dependente da substituição dos pais, e o CPFP usa saída controlada pela carteira para aumentar a taxa do pacote. Não considere um txid/ponto final não confirmado como final antes que as substituições sejam liquidadas. [Bitcoin Core RPC – taxa de aumento]

A recuperação completa requer chaves iniciais ou de assinatura, bem como descritores internos/de recebimento, origens de chave, conta, rede, política de script, intervalos de derivação e um início de varredura suficientemente antigo. Um /1/* ausente normalmente trunca o saldo porque a alteração não foi encontrada. Para multisig, mantenha todos os xpubs, limites e pedidos do fiador em ambas as filiais. Teste a recuperação combinando scripts de recebimento/alteração conhecidos, reconstruindo o UTXO, criando um PSBT e verificando a mudança em cada signatário. [BIP 32 — Carteiras Determinísticas Hierárquicas] [BIP 380 — Descritores de Script de Saída] [BIP 389 — Expressões Chave do Descritor Multipath]

Para ter uma visão mais completa, leia este verbete junto com Endereço Bitcoin, UTXO, Coin Control, Carteira, Coin Selection, HD Wallet. Também há referências a este verbete em Endereço Bitcoin, Coin Control, Privacidade no Bitcoin, Pseudonimidade.

DOC · 001Bitcoin Developer Guide — TransactionsDocumentação ↗DOC · 002BIP 32 — Hierarchical Deterministic WalletsEspecificação ↗DOC · 003BIP 44 — Multi-Account HierarchyEspecificação ↗DOC · 004BIP 78 — PayjoinEspecificação ↗DOC · 005BIP 174 — Partially Signed Bitcoin Transaction FormatEspecificação ↗DOC · 006BIP 380 — Output Script DescriptorsEspecificação ↗DOC · 007BIP 389 — Multipath Descriptor Key ExpressionsEspecificação ↗DOC · 008Bitcoin Core — Output DescriptorsDocumentação ↗DOC · 009Bitcoin Core — Coin Selection ImplementationDocumentação ↗DOC · 010Bitcoin Core RPC — fundrawtransactionDocumentação ↗DOC · 011Bitcoin Core RPC — bumpfeeDocumentação ↗DOC · 012Bitcoin Core — Transaction Relay PolicyDocumentação ↗DOC · 013Bitcoin Optech — Coin SelectionDocumentação ↗DOC · 014Meiklejohn et al. — A Fistful of BitcoinsDocumentação ↗
Revisado em 1º de agosto de 2026Fontes em primeiro lugar · Não é recomendação de investimento