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