MSTR Cat

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

Entradas e saídas

A anatomia de uma transação: outpoints, scripts e a taxa implícita

MateriaisUm explorador de blocos como mempool.space ou blockchain.comUma calculadora para somar valores de satoshi

Curiosidade

  1. Como uma transação prova que tem o direito de gastar um valor criado por outra transação?
  2. Se não houver um campo explícito para as taxas, como os mineradores sabem exatamente quanto estão sendo pagos?
  3. Por que a primeira transação em cada bloco é estruturalmente incomum?

Explorar

  1. Uma transação de Bitcoin é uma estrutura de dados com um número de versão e um nLockTime, mas seu núcleo consiste em entradas e saídas. Uma entrada não contém valor; ela aponta para um valor. Cada entrada faz referência a uma saída específica anterior usando um outpoint: o txid de 32 bytes da transação de origem, mais um índice de 4 bytes que identifica qual saída dessa transação está sendo utilizada. Essa referência conecta as transações em uma cadeia.
  2. Cada entrada também carrega dados de desbloqueio e um campo nSequence. O nSequence controla os bloqueios temporais (time-locks) e os sinais de replace-by-fee (RBF). Os dados de desbloqueio, armazenados em scriptSig para transações legadas ou na seção witness para SegWit, fornecem a prova criptográfica necessária para satisfazer as condições da saída referenciada. É aqui que fica a assinatura da chave privada.
  3. As saídas são onde reside o valor. Cada saída especifica um montante em satoshis usando um inteiro de 8 bytes e um script de bloqueio (scriptPubKey) que define quem pode gastá-lo posteriormente. Uma única transação pode ter várias entradas e saídas, mas a soma das entradas deve ser pelo menos igual à soma das saídas.
  4. A taxa não é armazenada em lugar algum. Ela é derivada: a diferença entre o valor total consumido pelas entradas e o valor total criado pelas saídas. Esse restante vai para o minerador que inclui a transação em um bloco. Se as somas fossem iguais, a taxa seria zero; se as saídas excedessem as entradas, a transação seria inválida.
  5. A transação coinbase é a exceção que prova a regra. Ela possui uma entrada especial sem outpoint anterior, criando efetivamente novo valor do nada. Suas saídas contêm o subsídio do bloco (atualmente 3,125 BTC) mais todas as taxas coletadas de outras transações naquele bloco. O txid de qualquer transação é o hash duplo SHA-256 de seus dados serializados, excluindo as informações de witness.
  6. Abra um explorador de blocos e procure pelo bloco 170, minerado em 12 de janeiro de 2009. Além da sua coinbase, ele contém uma transação: Satoshi Nakamoto enviando 10 BTC para Hal Finney. Sua única entrada utiliza a saída de 50 BTC da coinbase do bloco 9. Ele tem duas saídas: 10 BTC para Finney e 40 BTC de volta para Satoshi. Tanto as entradas quanto as saídas totalizam 50 BTC, portanto a taxa é zero; as transações iniciais costumavam não custar nada, pois os blocos tinham espaço suficiente.

Fatos-chave

  • Uma entrada faz referência a uma saída anterior por meio de um outpoint que consiste em um txid e um índice de saída.
  • A taxa de transação é a diferença entre a soma dos valores de entrada e a soma dos valores de saída.
  • As saídas contêm um valor de 8 bytes em satoshis e um script de bloqueio (scriptPubKey).
  • As entradas contêm dados de desbloqueio (assinatura) e um campo nSequence para time-locks ou sinalização RBF.
  • A transação coinbase cria novos bitcoins por meio de uma entrada especial sem outpoint anterior.
  • O txid é o hash duplo SHA-256 da transação serializada, excluindo os dados de testemunha.

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

9ReunirExamine 9 transações recentes em um explorador de blocos. Para cada uma delas, anote o número de entradas, o número de saídas e a taxa em satoshis.
6AgruparAgrupe as 9 em 6 por estrutura: uma-entrada-uma-saída, uma-entrada-duas-saídas, muitas-entradas-uma-saída (consolidação), uma-entrada-muitas-saídas (pagamento em lote), muitas-entradas-muitas-saídas ou outro.
3DestilarReduza os 6 para 3 motivos pelos quais uma transação tem várias entradas ou várias saídas.
1CristalizarEscreva 1 frase sobre por que o Bitcoin pode deixar a taxa implícita em vez de declará-la explicitamente.

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