Bits

A representação compacta do alvo no cabeçalho do bloco

O campo bits contém uma representação compacta do alvo (target).

Ele indica o valor que o hash do bloco precisa ficar abaixo para o bloco ser minerado, e precisa representar o valor de alvo correto para a altura do bloco na blockchain.

Ícone Ferramenta

Target / Bits

Converta o campo compacto bits do cabeçalho do bloco para o valor de alvo (target) completo.

0x

Estrutura

Como o campo bits representa o alvo?

O campo bits tem duas partes: um expoente (1 byte) e um coeficiente (3 bytes). O alvo é o coeficiente deslocado para a esquerda pelo número de bytes indicado pelo expoente.

Convertendo

Como converter entre alvo e bits?

Bits para Alvo

Para converter bits em um alvo, você desloca o coeficiente o número de bytes especificado para a esquerda, conforme indicado pelo expoente. Por exemplo:

Bits: 1705dd01
                          coeficiente (05dd01)
                          ------
Alvo: 00000000000000000005dd010000000000000000000000000000000000000000
                          <---------------------------------------------
                          expoente (0x17 = 23 bytes)

Alvo para Bits

Converter um alvo em um campo bits é o inverso. Você pega os 3 primeiros bytes significativos do alvo (o coeficiente) e calcula quantos bytes eles estão deslocados para a esquerda (o expoente).

Não esqueça que você está procurando o primeiro byte significativo para o coeficiente.

O primeiro byte significativo do coeficiente precisa estar abaixo de 80. Se não estiver, você tem que pegar o 00 anterior como primeiro byte.

Isso porque o Bitcoin usa uma codificação personalizada para valores uint256; se o bit 00800000 estiver setado, ele indica um valor negativo. E o alvo não pode ser negativo.

Por exemplo, o alvo completo do bloco 489.888 começava com o byte eb (maior que 7f), então foi preciso usar o byte 00 antes dele, resultando em bits 1800eb30 (em vez de 17eb304f).