Visão Geral
Uma entrada de transação é uma referência a uma saída de transação anterior não gasta (UTXO) que o remetente está consumindo em uma nova transação. Cada entrada identifica qual UTXO está sendo gasto e fornece prova criptográfica (tipicamente uma assinatura digital) de que o gastador está autorizado a fazê-lo. Uma transação pode ter uma ou muitas entradas, e o valor combinado de todas as entradas deve ser maior ou igual à soma de todas as saídas mais a taxa de transação.
Estrutura da Entrada
Entrada de Transação (txin):
┌──────────────────────────────────────────────────────┐
│ │
│ Hash TX Anterior (32 bytes) │
│ → Identifica a transação contendo o UTXO │
│ │
│ Índice de Saída (4 bytes) │
│ → Qual saída dessa transação (indexado a partir 0)│
│ │
│ ScriptSig / Testemunha (variável) │
│ → Prova de autorização para gastar │
│ → Contém assinatura + chave pública (legacy) │
│ → Ou dados de testemunha (SegWit) │
│ │
│ Número de Sequência (4 bytes) │
│ → Usado para sinalização RBF e timelocks │
│ │
└──────────────────────────────────────────────────────┘
Como as Entradas Funcionam
Transação Anterior (txid: abc123...):
┌──────────────────────────────┐
│ Saída 0: 0,5 BTC → Alice │ ← Este UTXO existe
│ Saída 1: 0,3 BTC → Bob │
└──────────────────────────────┘
Nova Transação (Alice gasta seus 0,5 BTC):
┌──────────────────────────────────────────┐
│ Entrada 0: │
│ tx_anterior: abc123... │
│ índice_saída: 0 │
│ scriptSig: <assinatura de Alice> │
│ <chave pública de Alice> │
│ │
│ Saída 0: 0,45 BTC → Carol (pagamento) │
│ Saída 1: 0,04 BTC → Alice (troco) │
│ │
│ Taxa implícita: 0,01 BTC (0,5 - 0,49) │
└──────────────────────────────────────────┘
Autorização de Entrada
O método de prova de autorização depende do tipo de script do UTXO sendo gasto:
| Tipo de Script | Método de Autorização |
|---|---|
| P2PKH | Assinatura + Chave Pública no ScriptSig |
| P2SH | Script de resgate + assinaturas no ScriptSig |
| P2WPKH | Assinatura + Chave Pública nos dados de testemunha |
| P2WSH | Script de testemunha + assinaturas na testemunha |
| P2TR | Assinatura Schnorr (caminho de chave) ou script (caminho de script) na testemunha |
Múltiplas Entradas
As transações frequentemente têm múltiplas entradas para reunir valor suficiente para o pagamento desejado:
Entrada 0: 0,1 BTC (de tx aaa...) ─┐
Entrada 1: 0,2 BTC (de tx bbb...) ─┤─► Total: 0,5 BTC
Entrada 2: 0,2 BTC (de tx ccc...) ─┘
Saída 0: 0,45 BTC (pagamento)
Saída 1: 0,04 BTC (troco)
Taxa: 0,01 BTC
O Número de Sequência
O campo de número de sequência de 4 bytes em cada entrada serve a múltiplos propósitos:
- Sinalização RBF: Um número de sequência abaixo de 0xFFFFFFFE sinaliza que a transação é substituível (opt-in Replace-By-Fee)
- Timelocks relativos: Codifica a idade mínima do UTXO referenciado antes de poder ser gasto (BIP68)
- Habilitação de nLockTime: Um número de sequência abaixo de 0xFFFFFFFF habilita o campo nLockTime da transação
Conceitos Equivocados Comuns
- As entradas não contêm bitcoin. São referências a UTXOs que contêm bitcoin. A entrada "desbloqueia" o UTXO satisfazendo suas condições de gasto.
- Um UTXO só pode ser gasto uma vez. Uma vez referenciado como entrada em uma transação confirmada, esse UTXO é consumido inteiramente. Qualquer valor restante deve ser explicitamente enviado de volta como uma saída de troco.
- Mais entradas significam taxas mais altas. Cada entrada aumenta o tamanho da transação, aumentando a taxa necessária. É por isso que o gerenciamento de UTXO e a consolidação importam.