Glossário / Transações e taxas
Saída de transação
Outros nomes: Saída, TxOut.
- O que é uma saída de transação?
- Uma saída de transação é uma quantia de bitcoin mais o bloqueio que decide quem poderá gastá-la em seguida, e é o único lugar onde o bitcoin existe de fato.
Dois campos formam uma só coisa: um valor de oito bytes em satoshis e um script que declara a condição para gastá-lo. O endereço que você cola em um formulário de saque não é nada mais do que esse script em uma codificação legível por humanos, e é por isso que escolher bech32 em vez de um formato mais antigo é, na verdade, uma escolha sobre o bloqueio atrás do qual seus bitcoins ficarão. As saídas são baratas de criar e caras de desbloquear depois.
Como funciona
Uma saída é um pequeno registro sem nenhum dono nomeado em lugar algum.
O campo valor tem 8 bytes e contém um número inteiro de satoshis. Sessenta e quatro bits é generoso para uma moeda com oferta máxima próxima de 2.100.000.000.000.000 satoshis, e usar números inteiros em vez de decimais é a razão pela qual a contabilidade do bitcoin não tem erros de arredondamento. Depois vêm um prefixo de comprimento e o script de bloqueio, chamado scriptPubKey no código-fonte, que é um programa curto que quem for gastar a saída no futuro precisará satisfazer.
Scripts diferentes produzem tamanhos diferentes e custos diferentes. Um bloqueio pay-to-public-key-hash tem 25 bytes de script, o que faz a saída inteira ter 34 bytes. Um bloqueio SegWit nativo tem 22 bytes, o que faz a saída ter 31 bytes. Um bloqueio Taproot tem 34 bytes de script e 43 bytes no total. As codificações de endereço que você reconhece correspondem diretamente a esses bloqueios: um prefixo 1, um bc1q, um bc1p.
A palavra “bloqueio” é mais exata que “dono”. O script não registra uma pessoa. Registra um teste, e qualquer um que consiga passar no teste pode gastar o bitcoin, que é exatamente a razão pela qual uma chave privada precisa ser protegida, e não apenas um login.
Mais duas propriedades importam. As saídas são numeradas por posição, começando em zero, então a segunda saída de uma transação é o índice 1. E uma saída abaixo do limite de poeira, aproximadamente 546 satoshis para um bloqueio legado e 294 para um SegWit nativo, não será retransmitida por padrão, porque gastá-la custaria mais do que ela contém.
Onde você a vê
As saídas são a coluna da direita de qualquer página de explorador de blocos, e quase sempre há duas delas em um gasto.
Uma é o pagamento e a outra é o troco, e nada na transação diz qual é qual. Essa suposição é a matéria-prima da análise de blockchain, e é por isso que uma carteira que reutiliza seu endereço de troco é mais fácil de seguir do que uma que não reutiliza.
As saídas são também a memória da rede. Todo nó completo mantém um banco de dados de todas as saídas não gastas, porque esse conjunto é exatamente aquilo com que uma nova transação precisa ser conferida. Uma saída que você cria fica nesse banco de dados, em dezenas de milhares de máquinas, até que alguém a gaste. Criar muitas saídas minúsculas é, portanto, levemente antissocial além de caro, e consolidá-las é uma cortesia tanto quanto uma economia.
A única exceção é deliberadamente impossível de gastar. Uma saída OP_RETURN carrega dados e nunca pode ser resgatada, então os nós a removem do conjunto de saídas não gastas imediatamente, em vez de guardá-la para sempre.
Para quem compra bitcoin, a versão prática é curta. Saque para um formato de endereço que você vai gostar de ter no futuro, prefira poucos saques grandes a muitos pequenos, e lembre-se de que o saldo que sua carteira mostra é apenas a soma das saídas atualmente bloqueadas para chaves que ela controla.
Saída de transação vs UTXO
Uma saída é um registro; um UTXO é um status que esse registro tem apenas enquanto ninguém o gastou. Toda saída já criada fica gravada permanentemente em um bloco e pode ser lida ali anos depois, mas no momento em que uma transação posterior faz referência a ela, deixa de ser não gasta e sai do conjunto que os nós acompanham. Assim, todo UTXO é uma saída, enquanto a maioria das saídas não é mais um UTXO. A distinção tem uma consequência prática: o saldo da sua carteira é a soma dos seus UTXO, não a soma de tudo o que já foi pago aos seus endereços, e um explorador de blocos que mostra um total grande recebido em um endereço descreve o histórico, não o dinheiro que você ainda tem.