Bloco Anterior

O campo que conecta os blocos na blockchain

Diagrama mostrando a localização do campo bloco anterior dentro do cabeçalho do bloco e como ele conecta o bloco atual ao bloco abaixo dele na blockchain.

O campo bloco anterior (previous block) no cabeçalho do bloco contém o hash de um bloco anterior sobre o qual o bloco se constrói.

Cada bloco aponta para um bloco anterior, e isso cria uma cadeia de blocos. Ou, como é mais conhecida, uma blockchain.

Exemplo

Abaixo estão os 5 blocos do topo da blockchain. Se você inspecioná-los, verá que cada um contém, no seu cabeçalho, o hash do bloco logo abaixo dele.

Instantâneo dos 5 blocos do topo da blockchain (altura ~953.548).
Altura Hash do Bloco
953.548 000000000000000000011767c69efb0aa71cab35e9da3f3cd7d8d631901e4411
953.547 000000000000000000018fdce894635dc822ce16a1f4cb14ad011e61def6a3b9
953.546 000000000000000000010bb82d083a09eda931c4cb715a54fefe8e70dee2c37e
953.545 00000000000000000001590571778ed722a521678c4e711323ecfd626ba6713c
953.544 00000000000000000000208cffb8cbceccce376c3819ef77271c8182a9ace40c

Você pode visitar todos os blocos da blockchain começando pela ponta (o bloco mais recente) e seguindo os campos de bloco anterior até chegar ao fundo.

Uso

Ao construir um bloco candidato, um minerador coloca o hash do bloco da ponta atual da blockchain no campo de bloco anterior.

Diagrama mostrando como um bloco candidato referencia a ponta da blockchain por meio do campo bloco anterior no cabeçalho do bloco.

Todos os mineradores querem estender a cadeia conhecida mais longa de blocos, porque a cadeia mais longa é o que todos os nós adotam como a versão canônica da blockchain, e eles só podem coletar a recompensa de bloco se o bloco chegar a 100 blocos de profundidade na cadeia mais longa.

canônico – autorizado; reconhecido; aceito
collinsdictionary.com

Você pode encontrar o bloco na ponta atual da blockchain rodando bitcoin-cli getbestblockhash.

Todo bloco precisa construir sobre um bloco anterior existente. Se você colocar no campo de bloco anterior um hash de um bloco que não existe, o bloco será inválido e rejeitado pelos nós da rede.

Propósito

Por que os blocos contêm o hash de um bloco anterior?

O campo de bloco anterior é o que conecta os blocos na blockchain.

Um hash de bloco é uma referência única para um bloco, determinada pelo conteúdo do bloco. Então, ao incluir o hash de um bloco anterior no cabeçalho, você cria uma cadeia de dados confiável, onde cada pedaço de dado (ou seja, bloco de transações) está ligado ao anterior.

Diagrama mostrando como os hashes de bloco são usados para criar uma cadeia de blocos.
A blockchain é apenas uma cadeia de blocos conectados por hashes de bloco.

Então, se você tentasse modificar o conteúdo de um bloco mais antigo (ex.: substituindo ou removendo uma transação), isso mudaria o hash daquele bloco, e ele deixaria de fazer parte da mesma cadeia de blocos, porque o bloco que se construiu sobre ele não estaria mais se referindo a ele.

Diagrama mostrando como alterar o conteúdo de um bloco muda o seu hash e, portanto, quebra o elo na blockchain.
Se você muda um dos hashes de bloco, está removendo-o da cadeia.

Então, basicamente, essa cadeia de hashes de bloco é o que impede qualquer um de voltar no tempo e mudar a blockchain. Porque, se você o fizesse, os nós ignorariam o bloco modificado, pois ele não faria parte da cadeia conhecida mais longa.

É a isso que as pessoas se referem quando chamam a blockchain de "livro-razão imutável".

imutável – algo imutável nunca muda ou não pode ser mudado.
collinsdictionary.com

Bloco Gênese

O bloco gênese é único porque o seu campo de bloco anterior contém apenas zeros. Isso porque ele é o primeiríssimo bloco da blockchain, então não há um "bloco anterior" sobre o qual ele possa se construir.

Esse é o único fato interessante que tenho sobre o campo de bloco anterior no cabeçalho do bloco.

Recursos