Ir para o conteúdo

Modelo UTXO

Entenda como o Bitcoin representa valor gastável com saídas de transação não gastas, valida gastos, cria troco e impõe escolhas entre seleção de moedas, taxas e privacidade.

Atualizado

Conteúdo exclusivamente educacional; não constitui recomendação de investimento. Investir pode causar perdas.

Resposta direta

O modelo de saídas de transação não gastas (UTXO) representa o valor disponível como saídas distintas, e não como um único saldo registrado em uma conta. No Bitcoin, a entrada de uma transação comum identifica uma saída anterior pelo identificador da transação e pelo índice da saída. Essa saída registra um valor e um script de bloqueio. O saldo exibido por uma carteira é a soma calculada das saídas que ela pode gastar, não um campo de saldo armazenado em um endereço.

Uma saída é gasta por inteiro. Se as entradas escolhidas superarem o pagamento e a taxa, a transação deverá criar explicitamente uma saída de troco; o protocolo não devolve troco automaticamente. Uma transação pode consumir várias UTXO existentes e criar várias novas, cada qual com seu valor e suas condições de gasto.

Como funciona

Para uma transação comum que não seja coinbase ser válida, todas as saídas referenciadas precisam existir e continuar não gastas, cada entrada deve satisfazer as condições de bloqueio da saída correspondente e o valor total das saídas não pode superar o valor total das entradas. A diferença fica disponível como taxa de transação:

fee = sum(inputs) - sum(outputs)

Ao aceitar blocos, um nó remove do conjunto UTXO atual as saídas consumidas e adiciona as recém-criadas. O histórico de blocos continua necessário para verificar e reconstruir esse estado. Uma reorganização da cadeia pode substituir blocos recentes; por isso, saídas próximas à ponta podem voltar ao estado não confirmado ou desaparecer do histórico aceito.

Em um mesmo histórico de cadeia aceito, uma saída específica só pode ser consumida uma vez. Transações não confirmadas conflitantes podem disputar a mesma saída, mas admissão e substituição no mempool são políticas do nó, não regras que tornem válido um gasto duplo na cadeia. A BIP 125 define sinalização e política de substituição opcional; portanto, receber uma transação não confirmada não é liquidação final.

O espaço em bloco do Bitcoin é precificado principalmente pelo peso da transação e pela taxa por unidade, não pelo valor transferido. A BIP 141 define virtual size = ceil(weight / 4). Entradas costumam acrescentar mais dados do que saídas, de modo que gastar muitas UTXO pequenas pode custar mais do que gastar uma maior com a mesma tarifa. O tamanho exato depende dos tipos de script e witness usados.

Transações que gastam UTXO distintas têm dependências de entrada separadas, o que pode facilitar a validação e a construção em paralelo. Elas não são automaticamente independentes em toda implementação ou aplicação: duas transações que escolham a mesma saída entram em conflito, e descendentes dependem de suas transações-pai não confirmadas. A seleção de moedas da carteira precisa coordenar essas dependências.

UTXO não garantem anonimato. Combinar entradas pode sugerir controle comum, enquanto padrões de identificação de troco ou reutilização de endereços podem vincular atividades. São heurísticas, não provas criptográficas, mas a consolidação pode revelar relações que gastos separados não mostrariam.

Em comparação ao modelo de contas, o modelo UTXO torna explícitos cada objeto gastável e seu caminho de consumo. Sistemas de contas normalmente atualizam um estado compartilhado, como saldos e nonces. Nenhum modelo é universalmente superior; eles adotam compromissos diferentes em representação do estado, programabilidade, concorrência e projeto de carteiras.

Exemplo prático

Alice controla UTXO de 0.08 BTC, 0.12 BTC e 0.50 BTC. Para pagar 0.15 BTC a Bob, sua carteira escolhe as duas primeiras entradas, totalizando 0.20 BTC, e estima uma taxa de 0.0002 BTC. Ela cria estas saídas:

  • Bob: 0.15 BTC
  • Troco de Alice: 0.0498 BTC

O cálculo é 0.20 - 0.15 - 0.0002 = 0.0498 BTC. Após a confirmação, as saídas de 0.08 BTC e 0.12 BTC estão gastas; a saída de Bob e o troco de Alice são novas UTXO; a saída de 0.50 BTC permanece intacta.

Se a transação criasse apenas a saída de Bob de 0.15 BTC, os 0.05 BTC omitidos virariam taxa, não reembolso automático. A carteira também pode escolher outro conjunto de entradas, agrupar pagamentos ou consolidar saídas pequenas quando as tarifas estiverem menores. Essas escolhas contrapõem taxas atuais e futuras, confiabilidade da confirmação e privacidade.

Riscos e controles

  • Risco de taxa: UTXO fragmentadas aumentam o peso das entradas; estime a transação assinada e sua tarifa antes de transmiti-la.
  • Risco de privacidade: consolidar entradas e produzir troco reconhecível pode vincular endereços; um endereço novo não garante desvinculação.
  • Risco de confirmação: transações conflitantes, políticas de substituição e reorganizações tornam recebimentos não confirmados reversíveis.
  • Risco de recuperação: a cadeia armazena as UTXO, enquanto a carteira guarda ou deriva as chaves e os dados de descoberta necessários para encontrá-las e gastá-las; faça backup de todos os fatores de recuperação.

Equívocos comuns

Um endereço é uma conta permanente

Um endereço codifica ou representa condições de gasto. Uma carteira pode controlar saídas enviadas a vários endereços de recebimento e de troco; portanto, um endereço isolado não representa todo o estado da carteira.

As taxas são proporcionais ao pagamento

As taxas dependem principalmente do peso da transação e da tarifa escolhida. Um pagamento de alto valor com poucas entradas pode ser menor e mais barato do que um pagamento de baixo valor formado por muitas entradas.

O protocolo cria o troco automaticamente

O troco é uma saída comum construída deliberadamente pela carteira do pagador. Qualquer valor de entrada não atribuído a saídas fica disponível ao minerador como taxa.

Não confirmada significa liquidada

Um mempool é a visão provisória de um nó, não um livro-razão de consenso. Políticas de admissão, substituição e remoção variam, e o risco de confirmação diminui com o tempo em vez de desaparecer na transmissão.

Tópicos relacionados

Fontes

Navegação

Pesquisar na wiki...