MSTR Cat

Blockchain/Nível II · Mecânica/2.2 Transações/Lição 1

O modelo UTXO

Por que o Bitcoin não tem contas e como o livro-razão sabe o que foi gasto

MateriaisUm navegador da web com acesso a um explorador de blocos (por exemplo, mempool.space)Um endereço público de Bitcoin com vários UTXOsUm caderno para registrar IDs e valores de saída

Curiosidade

  1. O que acontece com um saldo quando não há contas para atualizar?
  2. Como um nó verifica se uma entrada ainda não foi gasta sem verificar todas as transações anteriores?
  3. Por que ter todo o histórico de uma moeda torna mais difícil permanecer anônimo?

Explorar

  1. O Bitcoin não utiliza o modelo de contas dos livros-razão bancários e do Ethereum. Nesses sistemas, os saldos são armazenados em endereços e atualizados no local; ao enviar fundos, subtrai-se de um saldo e soma-se a outro. O Bitcoin não possui esse tipo de armazenamento. Em vez disso, utiliza uma estrutura semelhante à do dinheiro físico, na qual o valor existe apenas como unidades discretas e não gastas. Não há um livro-razão central que registre o “total de Alice”; existe apenas um conjunto de saídas individuais que estão atualmente disponíveis para gasto.
  2. Essas unidades são chamadas de Unspent Transaction Outputs (UTXOs). Cada UTXO contém um valor específico em satoshis e um script de bloqueio que define quem pode gastá-lo. Quando ocorre uma transação, ela consome UTXOs inteiros como entradas e cria novos UTXOs como saídas. As saídas que ela gasta deixam o conjunto de moedas disponíveis para gasto (as transações permanecem no histórico da cadeia), enquanto as novas saídas se juntam a ele. O “saldo” de uma carteira não é um número armazenado, mas a soma de todos os UTXOs cujos scripts de bloqueio podem ser atendidos por suas chaves privadas.
  3. Essa estrutura simplifica a validação dos nós de rede. Como cada entrada se refere a uma saída específica e ainda não utilizada, um nó precisa apenas verificar se essa saída em particular existe no estado atual e se ainda não foi usada antes. Não é necessário recalcular os saldos globais ou verificar históricos complexos das contas. Cada nó completo mantém o “chainstate”, que é essencialmente o conjunto completo de todas as UTXOs ativas em um determinado momento. Isso permite uma verificação rápida e determinística de tentativas de gasto duplo.
  4. O contraste com o Ethereum destaca uma escolha de design importante. O Ethereum utiliza um modelo de conta no qual cada endereço possui um saldo armazenado e um nonce (um contador de transações) para evitar ataques de replay. Atualizar uma conta requer a alteração da árvore de estado em nível global. O Bitcoin cria novas saídas em vez de editar os saldos diretamente, o que significa que as moedas carregam seu histórico, vinculando transações passadas aos ativos atuais.
  5. Esse vínculo histórico tem implicações significativas para a privacidade e a fungibilidade. Como cada entrada remete a uma saída anterior, os analistas podem rastrear o fluxo de fundos por meio de cadeias de UTXOs. Embora existam serviços de mistura e outras técnicas, a estrutura fundamental torna difícil romper completamente a ligação entre a origem de uma moeda e seu holder atual. Essa transparência é frequentemente citada em debates sobre se as moedas Bitcoin são realmente fungíveis, já que alguns participantes do mercado podem preferir moedas “limpas” com histórico menos rastreável.
  6. Para ver isso em ação, abra a visualização de controle de moedas (ou “UTXO”) de uma carteira que recebeu vários pagamentos: ela lista cada saída separadamente, com seu próprio valor e ID da transação. Em um explorador de blocos, a página do endereço mostra a mesma coisa, uma lista das saídas recebidas, algumas gastas e outras não. Essa lista de saídas individuais é a verdadeira representação on-chain da propriedade; o “saldo” exibido na interface é apenas um cálculo do lado do cliente, derivado desse conjunto.

Fatos-chave

  • O Bitcoin não possui contas ou saldos armazenados na cadeia; a propriedade consiste exclusivamente em Saídas de Transações Não Gastas (UTXOs).
  • Cada UTXO contém um valor em satoshis e um script de bloqueio que especifica as condições necessárias para gastá-lo.
  • Uma transação consome UTXOs inteiros como entradas e cria novos UTXOs como saídas; as saídas que ela gasta deixam o conjunto de UTXOs.
  • Cada nó completo mantém o ‘chainstate’, que é o conjunto completo de todas as saídas atualmente não gastas utilizadas para validação.
  • O saldo exibido na carteira é um cálculo local que soma os valores dos UTXOs controlados por suas chaves privadas, e não um valor armazenado na blockchain.
  • Diferentemente do modelo de contas do Ethereum, com nonces e saldos mutáveis, o modelo UTXO do Bitcoin trata as moedas como unidades discretas com histórico, que são substituídas em vez de atualizadas.

Exercício nove, seis, três, um

9ReunirListe 9 ativos ou moedas digitais diferentes. Indique se cada um utiliza um sistema de saldo baseado em conta (como o Ethereum) ou um sistema de saídas baseado em UTXO (como o Bitcoin).
6AgruparAgrupe os 9 em 6 categorias com base em como eles lidam com o estado: saldos mutáveis, saídas imutáveis, modelos híbridos, livros-razão centralizados ou outros.
3DestilarReduza os 6 grupos a 3 razões fundamentais pelas quais um protocolo pode escolher UTXOs em vez de contas para sua estrutura de livro-razão.
1CristalizarEscreva 1 frase explicando como a ausência de saldos armazenados muda a forma como o double-spending é prevenido no Bitcoin em comparação com os bancos tradicionais.

Verificação de fatos

Datas, números e afirmações verificados com as fontes publicadas listadas abaixo.

Abrir na academia interativa →

EN ES ZH JA KO RU DE FR MS