Blockchain/Nível II · Mecânica/2.2 Transações/Lição 7
A vida de uma transação
Da assinatura à finalização: como uma transação percorre a rede
MateriaisO site mempool.spaceUm explorador de blocos para rastrear a profundidade de confirmação
Curiosidade
- Por que um nó precisa verificar uma transação antes mesmo de saber se ela será minerada?
- O que torna um bloco mais “real” do que outro quando dois aparecem simultaneamente?
- Por que seis confirmações se tornaram uma convenção, e quando isso é demais ou de menos?
Explorar
- A jornada começa no software da carteira. O usuário seleciona saídas de transações não gastas específicas (UTXOs) para cobrir o pagamento e a taxa. A carteira constrói um novo objeto de transação, definindo entradas que fazem referência a saídas anteriores por meio do ID e índice da transação, e saídas que atribuem valor aos endereços dos destinatários ou ao endereço de troco. Cada entrada é assinada com a chave privada correspondente ao seu script de bloqueio, gerando assinaturas digitais que comprovam a propriedade sem revelar a própria chave.
- A transação totalmente assinada é serializada em um formato binário e transmitida para os pares conectados pela rede peer-to-peer. Ao recebê-la, cada nó realiza uma validação independente de acordo com as regras de consenso: verifica se as entradas cobrem as saídas, valida as assinaturas criptográficas, garante que não haja gasto duplo dos UTXOs existentes e valida a lógica do script. Se for válida segundo as políticas, o nó adiciona a transação ao seu mempool local e a anuncia aos pares com mensagens 'inv' (inventário); os pares que não a possuem solicitam a transação completa com 'getdata'.
- Os mineradores monitoram continuamente seus mempools em busca de transações lucrativas. Eles selecionam um conjunto de transações com taxas elevadas para incluir em um modelo de bloco candidato, que também contém a transação coinbase que concede o subsídio do bloco atual e as taxas arrecadadas. O minerador então realiza o proof-of-work, calculando o hash do cabeçalho do bloco repetidamente até encontrar um hash que atenda à meta de dificuldade atual da rede. Esse trabalho torna a produção do bloco dispendiosa e sua verificação barata; uma vez encontrado, o bloco é transmitido pela rede.
- Os nós que recebem o novo bloco verificam seu proof-of-work e a validade das transações antes de adicioná-lo à sua cópia local da cadeia. As transações contidas nesse bloco são agora consideradas confirmadas na profundidade um. Suas entradas são marcadas como gastas no conjunto UTXO, e suas saídas ficam disponíveis para uso futuro após o término dos prazos de bloqueio ou períodos de maturação necessários. Se um bloco concorrente aparecer na mesma altura, os nós seguem o ramo que acumula mais trabalho; se uma reorganização curta substituir um bloco, suas transações retornam ao mempool, a menos que o novo ramo já as inclua.
- A segurança aumenta com cada bloco subsequente adicionado sobre o bloco de confirmação. As tabelas do whitepaper mostram que um atacante com 10% da capacidade de hashing tem menos de 0,1% de chance de alcançar quem está cinco blocos à frente. Seis confirmações, aproximadamente uma hora, tornaram-se uma convenção comum a partir desse tipo de análise, embora o risco real dependa da participação do atacante e do valor em jogo. Enquanto alguns comerciantes aceitam pagamentos com zero confirmações para valores pequenos, transferências maiores geralmente esperam por várias confirmações para mitigar o risco de um ataque de gasto duplo por meio da reorganização da cadeia.
- As transações coinbase, que criam novos bitcoins a partir das recompensas de mineração e taxas, têm uma restrição especial: suas saídas não podem ser gastas até obterem 100 confirmações. A regra existe porque uma saída coinbase desaparece se seu bloco for substituído em uma reorganização; o atraso impede que essas moedas se espalhem para transações posteriores, as quais então se tornariam inválidas. Para transferências padrão de usuário para usuário, não existe tal atraso; uma vez confirmadas, as saídas são tecnicamente passíveis de uso, embora esperar por mais confirmações seja uma decisão de gestão de riscos baseada no valor em jogo e nas suposições de confiança.
Fatos-chave
- Os nós validam as transações de acordo com as regras de consenso antes de adicioná-las aos seus mempools.
- A validade de um bloco depende de seu proof-of-work atender à meta de dificuldade atual.
- Seis confirmações (cerca de uma hora) é uma convenção comum, não uma regra de protocolo.
- As saídas coinbase exigem 100 blocos de maturidade antes que possam ser gastas.
- Em uma reorganização, as transações comuns do bloco substituído retornam ao mempool, a menos que entrem em conflito com o novo ramo; sua coinbase desaparece.
- Os nós anunciam novas transações com mensagens 'inv' e as enviam a pedido ('getdata').
Exercício nove, seis, três, um
9ReunirListe 9 etapas ou eventos distintos no ciclo de vida de uma transação, desde a criação até a finalização.
6AgruparAgrupe essas 9 etapas em 6 fases: construção, validação, propagação, mineração, confirmação e estados pós-confirmação.
3DestilarReduza as 6 fases para 3 pontos de verificação críticos, onde a rede aplica segurança ou consenso.
1CristalizarEscreva 1 frase explicando por que seguir a cadeia com mais trabalho resolve conflitos entre blocos concorrentes.
Verificação de fatos
Datas, números e afirmações verificados com as fontes publicadas listadas abaixo.