Como os mineradores usam o nonce?
Um minerador monta o cabeçalho de um bloco, define o nonce como 0 e calcula o hash. Se o hash ficar acima do alvo, define o nonce como 1 e tenta de novo, depois 2, e assim por diante. O nome é uma abreviação de “número usado uma única vez”.
Nenhum nonce é melhor que outro. Não dá para prever o hash, então cada tentativa tem a mesma chance minúscula de vencer. É isso que torna a mineração justa: mais tentativas por segundo significam mais chances, e nada mais ajuda.
O que acontece quando o nonce se esgota?
Quatro bytes comportam apenas 4.294.967.296 valores. Uma máquina moderna testa todos eles em bem menos de um milésimo de segundo. Por isso, os mineradores mudam outra coisa no bloco e recomeçam a contagem do nonce.
O laço do minerador
- 01
Tente todo nonce
0, 1, 2 e assim por diante até 4.294.967.295. Esses são todos os valores que 4 bytes conseguem guardar.
- 02
Se esgotam, rápido
Uma única máquina de 100 TH/s passa por todos eles em cerca de 43 milionésimos de segundo.
- 03
Mude o nonce extra
O minerador edita um campo sobrando na própria transação de recompensa (a coinbase).
- 04
Nova raiz de Merkle
Aquela transação mudou, então a raiz de Merkle muda e todo nonce dá novos hashes de novo.
A opção mais comum é o nonce extra, um campo adicional na transação coinbase. Mudá-lo altera a raiz de Merkle, criando um conjunto totalmente novo de cabeçalhos para testar. Os mineradores também podem ajustar um pouco o timestamp e, em muitas máquinas atuais, alterar alguns bits do campo de versão.
Fontes
- Nonce · Bitcoin Wiki
- Algoritmo de hash do bloco · Bitcoin Wiki
- Referência sobre blockchain: cabeçalhos, árvores de Merkle, alvo · Documentação para desenvolvedores do Bitcoin
Os dados em tempo real desta página vêm da API da CloudMineCrypto e de dados públicos da blockchain, são atualizados regularmente e identificados onde aparecem. Apenas para fins educativos, não são aconselhamento financeiro.