Ir para o conteúdo
Banking on Bitcoin

Tecnologia

O que é um UTXO? Como o Bitcoin registra a propriedade

O Bitcoin não tem saldos de conta. Veja o que é um UTXO, como funcionam troco e taxas em um exemplo simples e por que isso importa para a privacidade.

Por · Publicado · Atualizado

Ilustração de uma grande moeda de bitcoin laranja brilhante sobre um fundo escuro

Ideias principais

  • O Bitcoin não mantém saldos de conta. Ele acompanha UTXOs (saídas de transação não gastas), e o seu saldo é o total daquelas que as suas chaves podem gastar.
  • Um UTXO funciona como uma única nota ou moeda no bolso. Ele é gasto por inteiro, então um pagamento muitas vezes cria troco que volta para você.
  • A taxa de rede depende do tamanho da transação em dados, que cresce com o número de entradas, e não do valor que você envia.
  • Juntar muitas saídas pequenas em uma pode tornar gastos futuros mais baratos, mas custa uma taxa agora e liga essas saídas entre si no livro-razão público.
  • A sua carteira (wallet) cuida de tudo isso por você. Saber como funciona explica o troco, as taxas e parte do quadro de privacidade do Bitcoin.

O que é um UTXO?

Um UTXO, sigla de unspent transaction output (saída de transação não gasta), é um pedaço de bitcoin criado por uma transação anterior que ainda não foi gasto. Cada um tem um valor e um bloqueio, geralmente uma regra que diz que só quem tem a chave por trás de um determinado endereço pode gastá-lo. O registro do Bitcoin sobre quem possui o quê é o conjunto completo dessas saídas não gastas.

Isso é diferente de um banco, que mantém um único número para você e o aumenta ou diminui. O Bitcoin não guarda esse número. Quando a sua carteira mostra um saldo, ela procurou no livro-razão as saídas bloqueadas para chaves que você controla e as somou. Como funciona o Bitcoin? explica os blocos, os nós e as assinaturas em torno disso.

Pense no que há no seu bolso. Você não tem ali um “saldo”: tem uma nota de US$ 20, uma de US$ 5 e algumas moedas, e o que você possui é a soma deles. Cada UTXO é um desses itens.

Como funciona gastar um UTXO?

Uma transação consome um ou mais UTXOs existentes, chamados de entradas, e cria novos, chamados de saídas. Todo UTXO é gasto por inteiro e uma única vez. Veja um exemplo com valores simples e inventados, em bitcoin.

Suponha que a sua carteira tenha dois UTXOs, um de 0,5 e outro de 0,3, e você queira pagar 0,7 a um comerciante. Nenhum dos dois cobre o valor sozinho, então a carteira gasta os dois.

Parte da transaçãoValor
Entrada 1: uma saída anterior que você controla0,5
Entrada 2: uma saída anterior que você controla0,3
Saída 1: pagamento ao comerciante0,7
Saída 2: troco para você, em um novo endereço0,0999
Taxa de rede (entradas menos saídas)0,0001

As entradas somam 0,8 e as saídas somam 0,7999. Os 0,0001 que sobram vão para o minerador como taxa, e não aparecem como saída. Depois da confirmação, os seus dois UTXOs antigos desaparecem, você passa a ter um novo UTXO de 0,0999 e o comerciante tem um novo de 0,7. A taxa é inventada e não pretende se parecer com uma real.

Cada entrada aponta para uma saída anterior específica e leva uma assinatura que prova o direito de gastá-la. Os nós verificam se a saída existe, se ainda não foi gasta e se a assinatura é válida. Essa verificação é também o que impede o gasto duplo: assim que uma transação é confirmada, a saída que ela usou deixa de estar no conjunto de saídas não gastas, então uma segunda tentativa de gastá-la é rejeitada.

Por que uma transação de Bitcoin tem troco?

Uma transação tem troco porque um UTXO não pode ser gasto em parte. Se você compra um item de US$ 12 com uma nota de US$ 20, o caixa devolve US$ 8. O Bitcoin funciona do mesmo jeito, exceto que o troco é você quem faz: a sua carteira cria uma saída extra que devolve a diferença para você.

O troco costuma ir para um endereço novo da sua própria carteira. O que é um endereço Bitcoin? explica por que as carteiras geram um endereço novo a cada vez.

Um alerta decorre da aritmética. Tudo o que as entradas contêm além das saídas vira taxa, então uma transação montada sem saída de troco entrega a sobra a um minerador. O software da carteira calcula isso corretamente, o que é um bom motivo para não montar transações à mão.

Por que as taxas dependem das entradas e não do valor enviado?

As taxas são calculadas pelo tamanho da transação em dados, e cada entrada acrescenta dados, então gastar mais UTXOs geralmente custa mais. O valor de bitcoin movimentado não entra no cálculo. Cada entrada carrega uma referência a uma saída anterior e uma assinatura, o que ocupa mais espaço do que uma saída extra.

No exemplo acima, pagar 0,7 exigiu duas entradas. Se você tivesse um único UTXO de 1,0, o mesmo pagamento teria gerado uma transação menor e custado menos. Quem recebeu cinquenta pagamentos pequenos ao longo dos anos e os gasta todos de uma vez monta uma transação grande, com cinquenta entradas. É por isso que uma carteira formada por muitos UTXOs minúsculos pode sair cara para esvaziar.

Como a taxa por unidade de tamanho é definida, e como a demanda da rede a move, é explicado em Taxas do Bitcoin.

O que significa consolidar UTXOs?

Consolidar significa combinar vários UTXOs pequenos em um maior, enviando-os para você mesmo em uma única transação. A ideia é que uma saída exige uma entrada para ser gasta depois, o que é mais barato do que muitas.

Há contrapartidas. Você paga uma taxa agora e, como as taxas variam com a demanda, algumas pessoas consolidam quando a rede está calma. A transação também mostra publicamente que todas essas saídas estão ligadas ao mesmo dono, o que importa se elas vieram de fontes diferentes. A maioria das pessoas nunca precisa fazer isso deliberadamente.

O que é dust?

Dust (poeira) é um UTXO tão pequeno que gastá-lo custaria quase o mesmo em taxas do que ele contém, ou mais. Como cada entrada acrescenta dados que geram taxa, uma saída abaixo desse ponto de equilíbrio não vale a pena ser gasta até que as taxas caiam.

Os nós também aplicam uma política padrão de retransmissão que se recusa a repassar transações que criam saídas muito pequenas. Isso é uma configuração de política, não uma regra do protocolo, e o limite depende do tipo de saída, por isso este artigo não informa nenhum valor.

Às vezes o dust chega sem ter sido solicitado. Parte dele é enviada de propósito, na esperança de que você o gaste junto com as suas outras moedas e revele quais saídas são suas. Uma precaução comum é deixar quantias minúsculas inesperadas em paz, e algumas carteiras permitem marcá-las como “não gastar”.

Como os UTXOs afetam a privacidade?

Os UTXOs afetam a privacidade porque a forma como você os combina é visível para todos. Quando uma transação tem várias entradas, observadores externos costumam presumir que uma única pessoa ou carteira controla todas elas, já que normalmente é um único signatário que assina. Gastar o 0,5 e o 0,3 juntos diz a um observador que essas duas saídas provavelmente têm o mesmo dono. Consolidar faz isso em escala maior, e uma saída de troco é outra pista, porque muitas vezes leva de volta ao remetente. O Bitcoin é privado? O que as transações revelam trata de como a análise de blockchain (cadeia de blocos) usa esses padrões.

O controle de moedas (coin control) é um recurso de carteira que permite escolher quais UTXOs gastar. As pessoas o usam para manter separadas saídas de fontes diferentes, por exemplo moedas compradas em uma corretora (exchange) que tem a sua identidade versus moedas recebidas em outro lugar. Isso não torna a atividade anônima, e nem toda carteira oferece o recurso.

Quais saídas você gasta também pode importar para o controle de registros, já que cada uma tem a sua própria data de aquisição e o seu próprio custo de aquisição. As regras tributárias dependem do seu país; um profissional tributário qualificado pode dizer como isso se aplica a você.

Como isso difere de um modelo de contas?

Algumas redes mantêm saldos de conta em vez de saídas não gastas. O Ethereum, por exemplo, registra um saldo para cada conta e o atualiza quando pagamentos são enviados e recebidos, como um livro-razão bancário. Nenhum dos modelos é simplesmente melhor.

Um saldo de conta é um único número fácil de ler. O modelo de UTXO trata cada moeda como um item independente, gasto ou não gasto, de modo que checar o gasto duplo se resume a uma consulta. Bitcoin ou Ethereum: principais diferenças compara as duas redes de forma mais ampla.

Quem acompanha todas as saídas não gastas?

Todo nó completo. Cada um mantém uma lista atualizada de todas as saídas não gastas, para confirmar rapidamente que uma nova transação gasta algo real e ainda não gasto. Cada saída extra acrescenta um pouco a essa lista, e esse é um dos motivos pelos quais alguns desenvolvedores se importam com o dust. O que é um nó Bitcoin? O que significa rodar um explica esse papel.

Você pode ver UTXOs em um explorador de blocos, que marca cada saída de uma transação como gasta ou não gasta, e em carteiras que oferecem controle de moedas. A maioria das carteiras só mostra o total. Se tudo isso é novidade para você, a trilha Comece aqui apresenta as ideias centrais em ordem.

Leia a seguir

Perguntas frequentes

O que é um UTXO no Bitcoin?

Um UTXO é uma saída de transação não gasta: um pedaço de bitcoin criado por uma transação anterior que ainda não foi gasto. Cada um tem um valor e um bloqueio que só a chave certa consegue abrir. O saldo da sua carteira é o total dos UTXOs que as suas chaves podem gastar.

O Bitcoin tem saldos de conta?

Não. A rede não guarda um saldo para cada pessoa. Ela mantém um conjunto de saídas não gastas, e a sua carteira soma as que consegue gastar e mostra o total como um único número.

Por que uma transação de Bitcoin tem troco?

Um UTXO precisa ser gasto por inteiro, como uma nota que não pode ser rasgada ao meio. Se a saída que você usa é maior que o pagamento mais a taxa, a diferença volta para você como uma nova saída, chamada de troco, geralmente em um endereço novo da sua própria carteira.

As taxas do Bitcoin dependem de quanto eu envio?

Não. A taxa de rede depende do tamanho da transação em dados e da demanda por espaço nos blocos. Cada entrada que você gasta acrescenta dados, então um pagamento que reúne muitos UTXOs pequenos geralmente custa mais do que um que usa um único UTXO grande, mesmo para o mesmo valor.

O que é uma saída dust?

Dust é uma saída tão pequena que gastá-la custaria cerca do mesmo em taxas do que ela vale, ou mais. Os nós geralmente se recusam a retransmitir transações que criam saídas tão minúsculas, e o limite exato depende do tipo de saída e das configurações do nó.

Artigos relacionados