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

Por Kraken Learn team
10 mín.
20 de novembro de 2024

O guia para principiantes do modelo UTXO da 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 gerir saldos individuais de criptomoedas, os protocolos baseados em blockchain normalmente usam um de dois modelos de contabilidade diferentes.

Um é chamado de modelo de Conta/Saldo. Projetos como Ethereum, Tezos e EOS usam este modelo para rastrear saldos à medida que os utilizadores da blockchain executam transações. O outro é chamado de modelo 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, como funciona e quais são as vantagens da UTXO em comparação com o modelo de Conta/Saldo?

BTC icon
68 139.00
-1,60%
24H
btc

Compreender o modelo UTXO 💻

Histórico

Adam Back e o falecido Hal Finney foram dois membros do grupo de criptografia Cypherpunk que o autor do white paper da Bitcoin, Satoshi Nakamoto, frequentava. Os dois são creditados com o desenvolvimento do modelo UTXO independentemente entre 1997 e 2004, respetivamente. 

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

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

UTXO em resumo

Quando envia Bitcoin para alguém, vários passos ocorrem programaticamente. Um dos primeiros passos no processo de transação é a sua carteira de criptomoedas analisar a blockchain para verificar a quantidade de fundos que possui. Estes fundos são conhecidos como saídas de transação não gastas (UTXOs).

Pode pensar nas UTXOs como troco sobrante de transações Bitcoin anteriores.

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

Se gastar 12 $ no almoço usando uma nota de 20 $, sobraria uma nota de 8 $. Neste exemplo, os 8 $ sobrantes seriam uma saída de transação não gasta. Voltaria para a sua carteira, pronta para ser usada para comprar outra coisa.

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

Outra comparação fundamental entre transações em dinheiro físico e UTXOs é que ambas têm de ser gastas na totalidade e não podem ser subdivididas. Se tiver uma UTXO de 5 Bitcoin e quiser enviar 1 BTC a alguém, teria de enviar a UTXO inteira no valor de 5 Bitcoin e receber uma nova UTXO em troca no valor de 4 BTC menos quaisquer taxas. 

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

Quando uma UTXO é gasta, é considerada “consumida” e é tecnicamente removida da circulação. 

Qualquer troco sobrante é gerado como uma UTXO inteiramente nova. Esta parte do sistema UTXO é como a Bitcoin resolve o problema do gasto duplo

Assim como não pode dar fisicamente uma nota de 5 $ a um lojista e depois dar a mesma nota de 5 $ a outra pessoa, um utilizador 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 a mesma UTXO duas vezes, as duas transações acabam numa mempool — uma espécie de sala de espera para transações pendentes. Permanecem lá até que mineradores bem-sucedidos que vencem a competição de proof-of-work as agrupem em novos blocos.

Pode aprender mais sobre este processo no nosso artigo do Kraken Learn Center O que é a mineração de Bitcoin?

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

Transações Coinbase

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

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

Cada satoshi (as subunidades de Bitcoin) em circulação pode ser rastreado usando o registo transparente da blockchain até à sua respetiva transação coinbase.

Por que a Bitcoin usa o modelo UTXO?

Saldo da conta

Para identificar o saldo de um utilizador, também conhecido como conjunto UTXO, o software de carteira de criptomoedas analisa a blockchain para encontrar todas as UTXOs associadas ao endereço de carteira pública correspondente.

A soma total de todas as UTXOs fornece uma conta precisa de quanto cripto um proprietário de carteira controla.

Quando uma UTXO é gasta, o endereço de carteira pública do destinatário é atribuído ao valor e uma nova UTXO é registada na blockchain uma vez executada.

Armazenamento

As UTXOs de Bitcoin são registadas em várias transações que são armazenadas em blocos na blockchain da Bitcoin. No entanto, esta informação não é claramente indexada, por isso pode ser difícil pesquisar e compilar metadados rapidamente. 

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

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

UTXOs em detalhe 🚗

A um nível mais técnico, existem quatro partes principais numa transação:

  • Versão: Isto informa os nós da rede qual a versão do software cliente que está a ser usada. Diferentes versões seguem regras diferentes para verificar dados de transação.
  • Tempo de Bloqueio: Esta é a quantidade de tempo que determina a rapidez com que uma transação é adicionada à blockchain. Esta entrada dita qual é o tempo mais cedo possível para a transação ser processada pelos nós de mineração.
  • Entrada: Informação que aponta para a origem dos fundos ou transação anterior onde a UTXO foi produzida. A entrada também contém algo chamado “script de desbloqueio”.
  • Saída: Informação sobre o valor a ser transferido, a carteira para a qual a propriedade dos fundos está a ser reatribuída e novas UTXOs formadas. A saída também contém um “script de bloqueio”.

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

As principais diferenças entre a analogia das notas físicas e o modelo UTXO é que a 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, pode ter 0,0003847 BTC sobrantes de uma transação.

Esta quantidade tornar-se-ia uma nova UTXO que deve ser gasta na totalidade se usada e não pode ser dividida em quantidades menores.

Digamos que John tem um saldo de carteira de criptomoedas de 1 Bitcoin. O seu saldo e a composição desse saldo são duas coisas diferentes, da mesma forma que pode ter 100 $ na sua carteira, mas pode ser composto por quatro notas de 20 $, duas notas de 5 $ e uma de 10 $.

Digamos que a composição do saldo de 1 BTC de John é feita de 5 saídas de transação não gastas diferentes.

  • 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 esta transação mais quaisquer taxas de minerador envolvidas para processá-la.

Neste exemplo, digamos que o software da sua carteira envia automaticamente a UTXO de Bitcoin de John no valor de 0,73 BTC para Jane e devolve o valor sobrante menos as taxas de transação a John como uma nova UTXO.

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

Scripts de bloqueio e desbloqueio 🔒

Quando as UTXOs são criadas, são bloqueadas usando o endereço de carteira pública do destinatário. Para usar essa UTXO como entrada numa nova transação, ela tem de ser primeiro desbloqueada usando a assinatura digital do remetente.

Esta é outra coisa importante a entender sobre as transações Bitcoin. Quando uma transação é feita, a Bitcoin não é movida digitalmente de uma conta para outra. Em vez disso, são desbloqueadas, reatribuídas a um novo proprietário e depois bloqueadas novamente.

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

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

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

Isto impede que qualquer outra pessoa possa aceder e gastar esses fundos.

 

O que é poeira de Bitcoin?

Poeira de Bitcoin refere-se a UTXOs que contêm pequenas quantidades vestigiais de satoshis sobrantes de transações anteriores.

Por si só, estas quantidades minúsculas de BTC custariam mais em taxas de transação para processar do que o seu valor e, por isso, muitas vezes ficam em endereços de troco à espera de serem agrupadas com outras UTXOs e gastas.

O que é um ataque de dusting?

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

Um golpista observará os endereços que contêm a poeira que enviou, à espera que o proprietário faça uma transação que agrupe UTXOs de diferentes endereços ligados à sua carteira. Como as UTXOs de poeira são tão pequenas, há uma boa probabilidade de serem agrupadas com outras e usadas como entradas.

Uma vez que isso aconteça, o golpista pode ter uma ideia dos fundos que uma pessoa tem. Pode então escolher incorporar mensagens de phishing em transações, convidando o proprietário a clicar num link que descarrega 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 aos golpistas acesso aos seus fundos.

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

Para minimizar o 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 aprendeu tudo sobre o modelo de saída de transação não gasta, está pronto para continuar a sua jornada cripto e comprar Bitcoin?

Consulte o nosso guia do Kraken Learn Center para mais informações sobre Como comprar Bitcoin (BTC) e registar-se para uma conta na Kraken hoje.

Some content on this page may have been translated using AI