O que é uma saída de transação não gasta de Bitcoin (UTXO)?

Por Kraken Learn team
10 minuto
20 de nov. de 2024

O guia para iniciantes sobre o modelo UTXO do Bitcoin 📕

A saída de transação não gasta (UTXO) é a técnica que o protocolo Bitcoin usa para rastrear saldos à medida que se movem entre carteiras de criptomoedas.

Quando se trata de rastrear e gerenciar saldos individuais de criptomoedas, os protocolos baseados em blockchain geralmente usam um dos dois modelos contábeis diferentes.

Um é chamado de Modelo de Conta/Saldo. Projetos como Ethereum, Tezos e EOS usam esse modelo para rastrear saldos à medida que os usuários da blockchain executam transações. O outro é chamado de Saída de Transação Não Gasta (UTXO). 

Bitcoin e muitas outras criptomoedas, como Litecoin, Cardano e Dogecoin, usam o modelo UTXO. 

Mas o que exatamente é isso, como funciona e quais são as vantagens do UTXO em comparação com o modelo de Conta/Saldo?

BTC icon
$70.776.00
+0,08%
24H
btc

Entendendo o modelo UTXO 💻

Histórico

Adam Back e o falecido Hal Finney foram dois membros do grupo Cypherpunk criptografia que o autor do white paper do bitcoin, Satoshi Nakamoto, frequentava. Os dois são creditados por desenvolver o modelo UTXO de forma independente entre 1997 e 2004, respectivamente. 

Quando o criador do Bitcoin Satoshi Nakamoto lançou o protocolo em 2009, ele se tornou o primeiro sistema de moeda digital operacional a implementar o modelo UTXO.

Tanto Hal Finney quanto Adam Back há muito são suspeitos de serem Satoshi Nakamoto, embora isso nunca tenha sido provado com certeza.

UTXO em um relance

Quando você envia bitcoin para alguém, várias etapas ocorrem programaticamente. Uma das primeiras etapas no processo de transação é que sua carteira de criptomoeda escaneie a blockchain para o montante de fundos que você possui. Esses fundos são conhecidos como saídas de transação não gastas (UTXOs).

Você pode pensar nos UTXOs como trocados restantes de transações anteriores de bitcoin.

Os fundos são considerados "não gastos" porque estão livremente disponíveis para você enviar a alguém ou mover para outra carteira. Eles são chamados de "saídas de transação" porque foram criados a partir de transações anteriores.

Se você gastar $12 no almoço usando uma nota de $20, você terá uma nota de $8 sobrando. Neste exemplo, o restante de $8 seria uma saída de transação não gasta. Ele voltaria para sua carteira pronto para ser usado para comprar outra coisa.

É exatamente assim que funcionam os UTXOs do bitcoin. Quando você faz uma transação, as saídas de transações anteriores de bitcoin, ou seja, seu troco solto de bitcoin, são usadas como entradas para novas transações.

Outra comparação chave entre transações em dinheiro físico e UTXOs é que ambos devem ser gastos na íntegra e não podem ser subdivididos. Se você tem um UTXO de 5 bitcoins e quer enviar 1 BTC para alguém, você teria que enviar o UTXO inteiro no valor de 5 bitcoins e receber um novo UTXO em troca no valor de 4 BTC menos quaisquer taxas. 

Assim como no exemplo acima, onde você entrega uma nota de $20 inteira para pagar um almoço de $10.

Quando um UTXO é gasto, ele é considerado "consumido" e é tecnicamente removido da circulação. 

Qualquer troco restante é gerado como um UTXO totalmente novo. Esta parte do sistema UTXO é como o Bitcoin resolve o problema de gasto duplo

Assim como você não pode fisicamente dar a um comerciante uma nota de $5 e depois dar a mesma nota de $5 a outra pessoa, um usuário de bitcoin não pode usar com sucesso a mesma saída de transação não gasta em duas transações digitais separadas.

Quando uma pessoa tenta gastar o mesmo UTXO duas vezes, as duas transações acabam em um mempool — uma espécie de sala de espera para transações pendentes. Elas permanecem aqui até que mineradores bem-sucedidos que ganham a competição de prova de trabalho as agrupem em novos blocos.

Você pode aprender mais sobre esse processo em nosso artigo do Kraken Learn Center O que é mineração de bitcoin?

Mesmo que ambas as transações sejam agrupadas em dois blocos separados e processadas simultaneamente, devido ao timestamping, uma das transações seria verificada antes da outra. Depois que um número de confirmações tiver passado (novos blocos adicionados à blockchain), outros nós sinalizariam a segunda transação inválida e a rejeitariam.

transações Coinbase

A única vez que uma transação de bitcoin não tem entradas é quando BTC recém-emitido é criado a partir da mineração.

Conhecida como uma transação coinbase, isso representa a primeira transação em cada novo bloco.

Cada satoshi (as subunidades do bitcoin) em circulação pode ser rastreado usando o livro-razão transparente da blockchain até suas respectivas transações coinbase.

Por que o Bitcoin usa o modelo UTXO?

Saldo da conta

Para identificar o saldo de um usuário, também conhecido como conjunto UTXO, o software da carteira de criptomoedas escaneia a blockchain para encontrar todos os UTXOs associados ao endereço público da carteira correspondente.

A soma total de todos os UTXOs fornece uma contagem precisa de quanto cripto um proprietário de carteira controla.

Quando um UTXO é gasto, o endereço público da carteira do destinatário é atribuído ao valor e um novo UTXO é registrado na blockchain uma vez executado.

Armazenamento

Os UTXOs do Bitcoin são registrados em várias transações que são armazenadas em blocos na blockchain do Bitcoin. No entanto, essas informações não estão claramente indexadas, então pode ser difícil pesquisar e compilar metadados rapidamente. 

Ao usar software de carteira como o cliente Bitcoin Core, os metadados UTXO são armazenados e indexados usando um banco de dados LevelDB. LevelDB é um sistema de armazenamento de código aberto criado pelo Google em 2011 e torna a localização de UTXOs muito mais rápida.

O cliente Bitcoin Core é um software popular usado para se conectar à rede blockchain do Bitcoin. Originalmente criado por Satoshi Nakamoto, o Bitcoin Core agora é mantido por uma comunidade de desenvolvedores voluntários.

UTXOs por trás das cenas 🚗

Em um nível mais técnico, existem quatro partes principais em uma transação:

  • Versão: Isso informa os nós da rede qual versão do software cliente está sendo usada. Versões diferentes seguem regras diferentes para verificar os dados da transação.
  • Tempo de bloqueio: Este é o tempo que determina quão rápido uma transação é adicionada à blockchain. Esta entrada dita qual é o tempo mais cedo possível para que a transação seja processada pelos nós de mineração.
  • Entrada: Informação apontando para a fonte de fundos ou transação anterior onde o UTXO foi produzido. A entrada também contém algo chamado de "script de desbloqueio".
  • Saída: Informações sobre o valor sendo transferido, a carteira para a qual a propriedade dos fundos está sendo reatribuída e novos UTXOs formados. A saída também contém um "script de bloqueio".

Como os UTXOs são diferentes do dinheiro físico

As principais diferenças entre a analogia das notas físicas e o modelo UTXO são que o bitcoin e outros criptoativos baseados em UTXO não estão vinculados a valores fixos, ou seja, $5, $10, $15, etc. Qualquer quantidade de bitcoin (até oito casas decimais) pode ser uma saída de transação não gasta. 

Por exemplo, você pode ter 0,0003847 BTC sobrando de uma transação.

Esse valor se tornaria um novo UTXO que deve ser gasto integralmente se utilizado e não pode ser dividido em quantias menores.

Vamos supor que John tenha um saldo de carteira de 1 bitcoin. Seu saldo e a composição desse saldo são duas coisas diferentes, da mesma forma que você pode ter $100 na sua carteira, mas isso pode ser composto por quatro notas de $20, duas notas de $5 e uma nota de $10.

Vamos supor que a composição do saldo de 1 BTC de John seja composta por 5 diferentes saídas de transação não gastas.

  • 0,138 BTC
  • 0,1 BTC
  • 0,004 BTC
  • 0,73 BTC
  • 0,028 BTC

John quer enviar 0,6 BTC para Jane. Para fazer isso, o software da carteira de John agrupará automaticamente qualquer número de UTXOs que ele controla para cobrir essa transação, além de quaisquer taxas de minerador envolvidas para processá-la.

Neste exemplo, vamos supor que o software da carteira dele envie automaticamente o UTXO de bitcoin de John no valor de 0,73 BTC para Jane e retorne o valor restante menos as taxas de transação para John como um novo UTXO.

Esse valor é automaticamente enviado para um endereço de troco; um endereço separado vinculado à sua carteira de criptomoedas.

Scripts de bloqueio e desbloqueio 🔒

Quando os UTXOs são criados, eles são bloqueados usando o endereço público da carteira do destinatário. Para usar esse UTXO como uma entrada em uma nova transação, ele deve ser primeiro desbloqueado usando a assinatura digital do remetente.

Esta é outra coisa importante para entender sobre transações de bitcoin. Quando uma transação é feita, o bitcoin não é movido digitalmente de uma conta para outra. Em vez disso, eles são desbloqueados, reatribuídos a um novo proprietário e, em seguida, bloqueados novamente.

Isso significa que apenas o novo proprietário pode desbloquear os fundos usando sua assinatura digital e transferi-los para outro lugar; para outra pessoa ou para outra carteira sob seu controle.

Script é uma linguagem de programação usada pelo Bitcoin para processar transações, incluindo bloquear e desbloquear UTXOs. 

  • Script de bloqueio (ScriptPubKey): Quando um UTXO é bloqueado, o script de bloqueio (conhecido como ScriptPubKey) estabelece condições que precisam ser atendidas antes que o UTXO possa ser usado como uma entrada. Isso geralmente envolve provar que você possui a chave privada que corresponde ao endereço público da carteira usado para bloquear o UTXO, fornecendo uma assinatura digital.
  • Script de desbloqueio (ScriptSig): Para desbloquear um UTXO, você deve atender às condições estabelecidas pelo script de bloqueio, ou seja, fornecer uma assinatura digital que prove que você controla as chaves privadas correspondentes à chave pública usada para bloquear o UTXO.

Isso impede que qualquer outra pessoa possa acessar e gastar esses fundos.

 

O que é pó de Bitcoin?

O pó de Bitcoin refere-se a UTXOs contendo pequenas quantidades de satoshis restantes de transações anteriores.

Por si só, essas quantidades minúsculas de BTC custariam mais em taxas de transação para processar do que valem, e por isso muitas vezes ficam em endereços de troco esperando para serem agrupadas com outros UTXOs e gastas.

O que é um ataque de dusting?

Ataques de dusting referem-se a golpistas enviando pó para centenas de milhares de diferentes endereços de carteira. A ideia por trás disso é determinar alvos potenciais para ataques de engenharia social.

Um golpista observará endereços contendo a poeira que enviou, esperando que o proprietário faça uma transação que agrupe UTXOs de diferentes endereços vinculados à sua carteira. Como as UTXOs de poeira são tão pequenas, há uma boa chance de que sejam agrupadas com outras e usadas como entradas.

Uma vez que isso acontece, o golpista pode ter uma ideia de quais fundos uma pessoa possui. Eles podem então optar por embutir mensagens de phishing em transações convidando o proprietário a clicar em um link que baixa malware, ou visitar sites falsos que imitam páginas de destino legítimas e pedem informações pessoais.

Quão perigosos são os ataques de dusting de bitcoin?

Ataques de dusting não dão acesso aos golpistas aos seus fundos.

Eles servem apenas para restringir quais endereços são controlados por uma carteira de criptomoedas específica.

Para minimizar seu risco de ataques de dusting, é melhor nunca clicar em links ou visitar sites anexados a transações de poeira.

Comece a comprar Bitcoin

Agora que você aprendeu tudo sobre o modelo de saída de transação não gasta, está pronto para continuar sua jornada cripto e comprar bitcoin?

Confira nosso guia do Centro de Aprendizagem da Kraken para mais informações sobre Como comprar Bitcoin (BTC) e cadastre-se para uma conta na Kraken hoje mesmo.

Algum conteúdo nesta página pode ter sido traduzido usando IA