Skip to main content

Cabeçalho de Bloco | Bitcoin Glossary | Mapping Bitcoin

Cabeçalho de Bloco

Protocolo

Also known as: header

Cabeçalho de 80 bytes do bloco: hash anterior, raiz Merkle, timestamp, alvo e nonce. Mineradores calculam SHA-256 deste dado para buscar prova de trabalho.

Visão geral

O cabeçalho de bloco é um resumo compacto de 80 bytes do conteúdo e contexto de um bloco. É a estrutura de dados que os mineradores fazem hash bilhões de vezes por segundo na busca por uma prova de trabalho válida. Apesar de seu tamanho pequeno, o cabeçalho compromete criptograficamente todos os dados do bloco por meio da raiz Merkle.

Campos do cabeçalho

Offset  Tamanho   Campo                    Descrição
──────────────────────────────────────────────────────────────
0       4 bytes   Versão                   Versão do protocolo / bits de sinalização
4      32 bytes   Hash do bloco anterior   Hash SHA-256d do cabeçalho do bloco anterior
36     32 bytes   Raiz Merkle              Hash raiz de todas as transações do bloco
68      4 bytes   Timestamp                Tempo Unix em segundos
72      4 bytes   Bits                     Alvo de dificuldade codificado
76      4 bytes   Nonce                    Contador que os mineradores iteram
──────────────────────────────────────────────────────────────
Total: 80 bytes

O processo de mineração

A mineração envolve fazer hash repetidamente do cabeçalho do bloco com diferentes valores de nonce (e outros campos variáveis, como o extra nonce da transação coinbase) até que o hash resultante seja numericamente menor do que o alvo de dificuldade codificado no campo "Bits":

while true:
    header.nonce += 1
    hash = SHA256(SHA256(header))
    if hash < target:
        bloco válido!
        break

Por que 80 bytes importam

O tamanho fixo e pequeno do cabeçalho de bloco possibilita a verificação leve. Clientes de Verificação Simplificada de Pagamento (SPV) podem baixar apenas a cadeia de cabeçalhos (80 bytes por bloco) em vez dos blocos completos, reduzindo drasticamente os requisitos de largura de banda e armazenamento, enquanto ainda conseguem verificar se uma transação está incluída em um bloco via provas Merkle.

Campo de versão e sinalização

O campo de versão não é apenas um número de protocolo estático. Por meio do BIP9, bits individuais no campo de versão são usados pelos mineradores para sinalizar suporte a soft forks propostos. Esse mecanismo de sinalização permite que a rede coordene atualizações de protocolo sem uma autoridade central.