Saídas
O que é uma saída de transação?
O sistema de transações do bitcoin envolve enviar e receber "lotes" inteiros de bitcoins, chamados de saídas (outputs).
Simples assim, mas a única forma de realmente entender como as saídas funcionam é olhar alguns exemplos de transações.
De onde vêm as saídas?
Vamos começar esta explicação sobre saídas de transação com o nascimento de um lote novo de bitcoins…
Você está minerando bitcoins por conta própria. Por algum milagre, você conseguiu minerar um bloco de transações e ganhar uma recompensa de bloco.

Todo minerador inclui o próprio endereço no topo de cada bloco, então, se conseguir minerar o bloco, a recompensa pode ser enviada ao seu endereço. Isso é reivindicado por uma transação coinbase (ou, como era chamada antigamente, a "transação de geração").
Então este é o estado atual do seu endereço de bitcoin:

A recompensa do bloco era de 25 BTC quando escrevi este artigo pela primeira vez.
Naturalmente, seu primeiro instinto é comemorar. Então vamos usar 1 desses bitcoins para comprar uma cerveja.

Cerveja.
Agora, seu outro primeiro instinto seria lascar 1 desses bitcoins (da recompensa do bloco) para pagar essa cerveja. Faria sentido, mas não é bem assim que as transações funcionam.

Não é bem assim. E essa é uma cerveja bem cara.
Em vez disso, temos que enviar o lote inteiro de 25 bitcoins na transação.
Mas, para garantir que não gastemos todos os 25 bitcoins num pagamento de "1 bitcoin", nós dividimos o lote e o enviamos para dois destinos:
- Para a loja de cerveja, como pagamento
- De volta para o nosso próprio endereço, como troco

Os lotes recém-criados são chamados de saídas.
É um jeito meio dar voltas para fazer, mas chega ao mesmo resultado final.
Enfim, é assim que ficam os endereços de bitcoin depois da transação:

A loja de cerveja tem um novo lote de 1 bitcoin, e enviamos a nós mesmos um novo lote de 24 bitcoins (como troco). O lote original de 25 bitcoins foi "consumido" e não pode ser gasto de novo.
Então, na prática, é como se tivéssemos pegado 1 bitcoin do nosso endereço e enviado para outro endereço… mas agora sabemos o que realmente acontece por baixo dos panos.
A razão de as transações usarem esse sistema de "saídas" é que é uma forma fácil de construir pagamentos do ponto de vista de programação.
Como gastar várias saídas em uma transação?
Certo, de agora em diante vamos usar a palavra saída em vez de "lote".
Enfim, alguns dias se passaram desde que a loja de cerveja nos vendeu aquela cerveja. E, a julgar pelo estado atual do endereço de bitcoin deles, o negócio de cerveja está bombando:

A loja de cerveja recebeu quatro novos pagamentos desde que compramos nossa cerveja.
Mas, como todos sabemos, cerveja não dá em árvore. Então a loja de cerveja está atrás de uma máquina de cerveja novinha.

É assim que meus amigos me chamam nas saídas à noite.
Olha só, uma adorável máquina de cerveja pelo baixíssimo preço de 4,2 bitcoins.
Vamos comprá-la…

Construindo a transação para a máquina de cerveja.
Certo, eu sei que aumentei o nível do diagrama algumas casas neste, mas não é tão difícil de entender:
- A loja de cerveja não tem uma única saída no endereço que cubra o custo da máquina de cerveja (4,2 BTC). Então, em vez disso, reunimos um punhado de saídas para chegar a um total maior que 4,2 BTC.
- Quando construímos uma transação, as saídas que reunimos para gastar são chamadas de entradas da transação.
- Usando o valor total de entrada de 4,5 BTC, a loja de cerveja cria duas novas saídas de 4,2 BTC e 0,3 BTC.
Quando você está gastando uma saída em uma transação, ela é chamada de entrada.
E aqui está o estado do endereço de bitcoin da loja de cerveja depois da transação:

A loja de cerveja consumiu 4 saídas e tem uma nova saída de 0,3 BTC (do troco).
Mais uma vez, as saídas que foram usadas como entradas foram "gastas" e não podem ser usadas de novo.
As saídas "não gastas", porém, ainda servem para gastar, então as chamamos de saídas de transação não gastas (UTXOs).
O saldo de um endereço é a soma das UTXOs do endereço.
De onde vêm as taxas de transação?
Ah sim, não incluímos uma taxa de transação em nenhuma das duas últimas transações.
Sem uma taxa de transação, essas duas transações provavelmente demorarão um bom tempo para serem incluídas em um bloco (se é que serão). Isso porque a taxa de transação dá prioridade à sua transação.
Veja bem, as taxas de transação são recolhidas pelos mineradores quando eles mineram um bloco. Então, se há muitas transações esperando no memory pool, adicionar uma taxa de transação cria um incentivo para que os mineradores incluam sua transação no próximo bloco.
De qualquer forma, finja que não enviamos aquela última transação para a rede, e vamos adicionar uma taxa de transação a ela:
Certo, então onde diabos está a saída da taxa de transação? Bom, não tem nenhuma. Mas olhe o tamanho das saídas.
O total das saídas é menor que o total das entradas, o que significa que sobram alguns bitcoins que não estão sendo consumidos. Esse valor que "sobra" é a taxa de transação.
E é só isso que as taxas de transação são — o restante de uma transação.
O valor que sobra em uma transação é sempre recolhido por um minerador. Então, se você construísse manualmente uma transação e esquecesse de criar uma saída de troco para si mesmo, o minerador recolheria o valor que você deixou para trás, não importa quanto seja. Isso não é algo com que se preocupar se você usa uma carteira para construir suas transações, já que ela sempre cuida do troco para você.