Transações

O que é uma transação de bitcoin?

Uma transação de bitcoin é só um monte de dados.

Ela contém informações sobre o valor que está sendo enviado, a conta de onde está sendo enviado e a conta para onde está sendo enviado.

Diagrama mostrando uma transação como o movimento de uma quantidade de bitcoins de um endereço para outro.

Isso é só informação, então pode ser facilmente representada em uma única linha de dados:

Diagrama mostrando uma transação como uma linha de dados.

E quando você "faz uma transação", você só envia esses dados da transação para a rede bitcoin.

Diagrama mostrando uma transação sendo enviada para a rede bitcoin.

Em algum momento, um dos nós da rede vai minerar sua transação em um bloco, e esse bloco (com sua transação dentro) será adicionado ao arquivo permanente de transações (chamado de blockchain).

Diagrama mostrando uma transação sendo minerada em um bloco na blockchain.

E é só isso que uma transação de bitcoin é — uma simples linha de dados que é enviada para a rede bitcoin para que possa ser minerada na blockchain.

Como funciona uma transação de bitcoin?

Um endereço de bitcoin é como um número de conta que guarda bitcoins.

Porém, quando você faz uma transação, não é como tirar uma quantidade exata de moedas de um pote e movê-las para outro.

Diagrama mostrando como uma transação não move uma quantidade exata de moedas de um pote (endereço) para outro.

Em vez disso, um endereço mantém o registro de cada pagamento individual que recebeu:

Diagrama mostrando um endereço guardando valores de pagamentos individuais (saídas).

Então, quando você quer enviar bitcoins para outra pessoa, você pega valores inteiros que já recebeu e os usa para enviar um novo valor para um novo endereço:

Diagrama mostrando como uma transação gasta saídas de um endereço e envia novas saídas para um endereço diferente.

E quando essa outra pessoa quiser enviar bitcoins para mais alguém, ela usará valores inteiros que recebeu da mesma forma:

Diagrama mostrando uma transação seguinte gastando saídas e enviando-as para outro endereço.

Então, na prática, você recebe bitcoins em lotes, e usa esses lotes para criar novos lotes para enviar a outras pessoas.

É assim que as transações funcionam.

E se os lotes somarem mais do que o valor que eu quero enviar?

Boa pergunta, Senhor/Senhora.

Nesse caso (que é frequente), você simplesmente adiciona outra saída à transação e envia a diferença de volta para você mesmo:

Diagrama mostrando uma saída de troco em uma transação.

Isso pode parecer estranho no início, eu sei, mas é uma forma precisa de fazer do ponto de vista de programação.

Resumo

  1. Sua carteira te dá um endereço de bitcoin. Os bitcoins chegam nesse endereço em lotes, chamados de saídas (outputs).
  2. Uma transação de bitcoin é o processo de usar essas saídas (como entradas) para criar novas saídas que pertencem ao endereço de outra pessoa.
  3. Tudo isso pode ser representado por uma única linha de dados.
Diagrama mostrando uma transação de bitcoin completa representada como uma única linha de dados.

Para mais detalhes de como esse sistema de saídas funciona, confira saídas.

O que impede outras pessoas de gastarem meus bitcoins?

Ou, em outras palavras…

Pergunta: "Se fazer uma transação é simplesmente uma questão de alimentar a rede bitcoin com uma linha de dados, por que alguém não pode construir uma transação que inclua o meu endereço e usá-la para enviar bitcoins para o endereço dele?"

Resposta: Porque cada saída de transação tem uma trava:

Diagrama mostrando uma trava sobre uma saída de transação.

E se você criar uma transação sem destravar essas saídas, os nós da rede bitcoin vão rejeitar a transação:

Diagrama mostrando um nó rejeitando uma transação em que as entradas não foram destravadas.

Mas, felizmente para você, cada endereço vem com uma chave privada única:

Diagrama mostrando um endereço com sua chave privada correspondente.

Então, se você quer enviar bitcoins em uma transação, você usa essa chave privada para criar uma assinatura única que pode destravar as saídas localizadas no seu endereço.

Diagrama mostrando uma chave privada sendo usada para destravar saídas que foram travadas para um endereço.

Depois de destravar todas as saídas que você quer usar, a transação será aceita pelos nós e propagada pela rede Bitcoin.

Diagrama mostrando uma transação com entradas destravadas sendo aceita por um nó e propagada pela rede.

E é assim que as transações de bitcoin funcionam.