$BTC $BTC $BTC
VALIDANDO UM NOVO BLOCO
O terceiro passo no mecanismo de consenso do bitcoin é a validação independente de cada
novo bloco por cada nó na rede. À medida que o bloco recém-resolvido se move pela
rede, cada nó realiza uma série de testes para validá-lo antes de propagá-lo para seus
pares. Isso garante que apenas blocos válidos sejam propagados na rede. A validação
independente também garante que os mineradores que agem de forma honesta tenham
seus blocos incorporados na blockchain, assim ganhando a recompensa. Aqueles
mineradores que agem de forma desonesta têm seus blocos rejeitados e não só perdem a
recompensa, mas também desperdiçam o esforço empregado para encontrar uma solução
de Proof-of-Work, incorrendo assim no custo da eletricidade sem compensação.
Quando um nó recebe um novo bloco, ele valida o bloco verificando-o contra uma
longa lista de critérios que devem ser atendidos; caso contrário, o bloco é rejeitado.
Esses critérios podem ser vistos no cliente Bitcoin Core nas funções CheckBlock e
CheckBlock Header e incluem:
• A estrutura de dados do bloco é sintaticamente válida
• O hash do cabeçalho do bloco é menor que o alvo (impõe o Proof-of-Work)
• O timestamp do bloco é menor que duas horas no futuro (permitindo erros de
tempo)
• O tamanho do bloco está dentro dos limites aceitáveis
• A primeira transação (e apenas a primeira) é uma transação coinbase
• Todas as transações dentro do bloco são válidas usando a lista de verificação de
transações discutida em “Verificação Independente de Transações”