Coin Control permite escolher os fundos de um pagamento concreto. O saldo em bitcoin é composto por saídas de transações anteriores ainda não gastas, chamadas UTXO. A carteira costuma selecioná-las automaticamente; Coin Control permite assumir essa escolha.
Alice recebeu 120 000 sat por um trabalho e mais 80 000 sat de presente. O sat é a menor unidade do bitcoin. A carteira mostra 200 000 sat, mas, neste exemplo, o total corresponde a dois UTXO separados. Não tem de gastar ambos para pagar. Em Coin Control pode abrir a lista e escolher apenas o pagamento pelo trabalho. Etiquetas como «trabalho» e «presente» ajudam a organizar os fundos: são notas pessoais na carteira, não provas da origem do dinheiro. Se não houver uma razão para escolher fundos específicos, pode deixar a seleção a cargo da carteira. [3]
Alice escolhe o UTXO de 120 000 sat para enviar 100 000 sat. A saída é gasta por inteiro, como quando se entrega uma nota de valor superior e se recebe troco. Suponhamos que a transação final tem um tamanho virtual de 200 vB e uma taxa de 5 sat/vB. vB é uma unidade de tamanho usada no cálculo das taxas: aqui o custo é de 1 000 sat. O destinatário recebe 100 000 sat e 19 000 sat regressam a Alice numa nova saída chamada change, ou troco. O outro UTXO, de 80 000 sat, fica intacto. Este exemplo pressupõe um tamanho e uma taxa paga pelo remetente; não representa o tamanho de todos os pagamentos. [4]
Cada UTXO utilizado torna-se uma entrada da nova transação e acrescenta dados. Com o mesmo tipo de entradas e a mesma taxa por unidade, pagar com dez pequenos recebimentos costuma custar mais do que com um grande. O custo não é uma percentagem do valor enviado: a carteira calcula-o a partir do tamanho e da taxa escolhida. Juntar vários UTXO pequenos numa única saída própria chama-se consolidação. Quando as taxas estão baixas, pode simplificar pagamentos futuros e reduzir os seus custos, mas a própria consolidação também tem um custo e liga publicamente os fundos utilizados. [1]
Se Alice usar o pagamento pelo trabalho e o presente na mesma transação, um observador da blockchain pode concluir que uma pessoa controla ambos. A blockchain é um registo público de transações. As etiquetas privadas de Alice não aparecem, mas a junção das entradas é visível. Escolhê-las separadamente pode evitar essa ligação específica. Não garante anonimato: outras relações podem já ser conhecidas. Entradas conjuntas também não provam que exista um único proprietário. Payjoin permite, por exemplo, que remetente e destinatário forneçam entradas para o mesmo pagamento. [2]
Os 19 000 sat não são devolvidos a Alice mais tarde noutra transação. O change nasce no próprio pagamento como uma nova saída para a sua carteira. Esse resto também tem uma história: vem do pagamento pelo trabalho. Se Alice o gastar depois com o presente, pode criar a ligação que antes evitou. Convém acompanhar também as saídas de troco e não assumir que um novo endereço elimina as ligações visíveis aos fundos anteriores. Um troco elevado significa que o valor escolhido excede bastante o pagamento e a taxa; não demonstra, por si só, uma escolha errada. [2]
Antes de assinar, Alice verifica as entradas realmente utilizadas, o endereço completo do destinatário, o montante, o seu change e o custo total. A assinatura autoriza uma transação concreta; marcar opções numa lista ainda não conclui o pagamento. Os fundos têm de cobrir o montante e a taxa. Ao gastar fundos ainda não confirmados, o novo pagamento fica dependente da transação que os enviou. Se essa transação anterior nunca entrar na blockchain, o pagamento que gasta a sua saída também não poderá ser confirmado. A seleção manual deve ajudar a compreender o pagamento, não incentivar alterações a definições cujas consequências se desconhecem. [4]
Depende do programa e da versão. Em Bitcoin Core v29.0, fundrawtransaction ativa add_inputs por predefinição: pode adicionar entradas quando as indicadas não chegam. Para gastar apenas os UTXO selecionados, é necessário verificar essa opção e a proposta final. listunspent permite inspecionar as saídas disponíveis. txid identifica a transação anterior e vout a posição da sua saída; em conjunto, identificam um UTXO. solvable indica que o programa sabe como a saída poderia ser gasta, não que possua as chaves privadas necessárias. Construir uma transação não fornece as assinaturas em falta. [4] [3]
Coin Control faz sentido quando sabe por que motivo quer separar certos recebimentos ou pretende compreender o custo de os gastar. Não substitui uma cópia de segurança fiável, não altera a história dos fundos nem apaga ligações publicadas. Não é preciso utilizá-lo em todos os pagamentos. O importante é perceber quando a seleção automática serve e quando deve decidir por si, verificando depois se a transação preparada corresponde à sua intenção. [3] [2]
Para ter uma visão mais completa, leia este verbete junto com UTXO, Carteira, Change Address, Privacidade no Bitcoin. Também há referências a este verbete em Change Address, CoinJoin, Privacidade no Bitcoin, Coin Selection.