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.

Diagrama mostrando a recompensa do bloco sendo enviada a um endereço pela transação coinbase.

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:

Diagrama mostrando uma única saída de 25 BTC travada a um endereço.

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.

Um chope mal desenhado.

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.

Diagrama mostrando 1 BTC sendo incorretamente lascado de uma entrada maior de 25 BTC.

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:

  1. Para a loja de cerveja, como pagamento
  2. De volta para o nosso próprio endereço, como troco
Diagrama mostrando uma transação em que uma única entrada de 25 BTC é dividida em uma saída de 1 BTC e outra de 24 BTC.

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:

Diagrama mostrando um saldo de 24 BTC em um endereço e 1 BTC em outro.

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:

Diagrama mostrando um endereço com 5 saídas não gastas totalizando 7,5 BTC.

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.

Uma máquina imaginária de fazer cerveja, mal desenhada.

É 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…

Diagrama mostrando uma transação gastando várias entradas e criando várias saídas.

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:

  1. 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.
  2. Quando construímos uma transação, as saídas que reunimos para gastar são chamadas de entradas da transação.
  3. 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:

Diagrama mostrando um endereço com 4 saídas gastas e 2 saídas não gastas totalizando 3,3 BTC.

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:

Diagrama mostrando uma transação com um restante que é usado como taxa.

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ê.