O nonce é uma parte central do algoritmo de mineração de prova de trabalho (PoW) para blockchains e criptomoedas como Bitcoin. Os mineiros competem entre si para encontre um nonce que produza um hash com um valor menor ou igual ao definido pela dificuldade da rede. Se um mineiro encontrar tal nonce, chamado de nonce dourado, então eles ganham o direito de adicionar aquele bloco ao blockchain e receber a recompensa do bloco.

O nonce é um número inteiro aleatório, único. Os mineiros testam e descartam milhões de nonces a cada segundo. Eles esperam produzir um valor de hash que atenda à meta e, assim, ganhar a recompensa do bloco. Isso é o que acontece durante a mineração PoW no nível mais básico, embora haja muito mais do que isso. Aqui, vamos explorar todo o propósito do nonce em todo o processo de mineração.

Blocos de construção com nonces

O nonce é um número de 32 bits. Ele permanece no cabeçalho do bloco junto com outros dados importantes, como o alvo de dificuldade e o carimbo de data / hora. Quando os mineiros constroem blocos, eles escolhem aleatoriamente um nonce e inserem-no no cabeçalho do bloco, criando um novo hash do cabeçalho do bloco.

O hash é um número de 256 bits e deve começar com um grande número de zeros, ou seja, ter um valor incrivelmente pequeno. Se ele não tiver o número suficiente de zeros, o minerador descarta o hash e tenta um novo nonce. Este processo é repetido até que um minerador descubra um nonce que produz um hash com um valor menor ou igual ao definido pela dificuldade.

Estrutura do Bloco

O tamanho de 32 bits do nonce significa que há quatro bilhões de combinações possíveis. Embora tecnicamente, seja muito maior devido a algo chamado de nonce extra. Este é o espaço adicional para um nonce mais longo, o que significa que você pode ter dezenas de bilhões de combinações.

O nonce é o único parâmetro que o minerador muda, todos os outros permanecem estáticos. Se o minerador encontrar o nonce dourado, ele adiciona esse bloco ao blockchain e recebe a recompensa do bloco. Atualmente, não há como acelerar o processo de localização do nonce correto. Isso significa que os mineiros estão apenas operando por tentativa e erro até encontrarem um nonce de ouro. Este processo é o que constitui o trabalhar, na prova de trabalho.

Relação com a dificuldade de mineração

Como dissemos, o minerador está tentando encontrar um nonce que produza um hash abaixo do valor definido pela dificuldade da rede. O protocolo Bitcoin define essa dificuldade de mineração. Conforme a dificuldade aumenta, o valor-alvo para o hash diminui. Isso significa que deve haver mais zeros no início do número hash. A probabilidade de encontrar um valor de hash menor diminui e, portanto, os mineradores precisam testar mais nonces. Quando um mineiro faz o hash de um bloco, o hash deve ter um valor igual ou menor que o número alvo para ter sucesso.

Ao minerar Bitcoin, a dificuldade se ajusta a cada blocos de 2016. Isso acontece a cada duas semanas. No entanto, outros blockchains PoW têm ajustes mais rápidos. Por exemplo, o Litecoin, devido ao seu tempo de bloqueio mais curto, sua dificuldade se ajusta a cada três dias e meio. O Digibyte, por outro lado, ajusta sua dificuldade a cada bloco em tempo real.

Por que o ajuste é importante

Se a dificuldade não se ajustasse, haveria uma relação linear entre o poder de hashing e as recompensas do bloco. À medida que mais mineiros se juntam à rede e aumenta o poder de hash, haveria um aumento correspondente nas recompensas do Bitcoin. Isso prejudicaria os controles de inflação no protocolo Bitcoin e, com ele, suas propriedades de moeda sólida.

Felizmente, por ter um ajuste de dificuldade, as recompensas do bloco podem ser mantidas relativamente estáveis ​​a cada duas semanas. A dificuldade também pode ser reduzida. Se a lucratividade da mineração desaparecer, as mineradoras encerrarão as operações e a taxa de hash cairá. A dificuldade será então reduzida de forma adequada. Já vimos isso há vários meses na rede Bitcoin desde o dificuldade atingiu o pico no dia 4 de outubro.

No Bitcoin, após cada bloco de 2016, o cliente Bitcoin irá comparar o tempo real para cada bloco a ser gerado em relação ao tempo objetivo. Em seguida, ajustará a dificuldade de forma adequada. O objetivo é fazer com que os mineiros produzam blocos o mais próximo possível de dez minutos.

Proteção por algoritmos de hash seguros

A resiliência do algoritmo SHA-256 impede que os mineiros sejam capazes de acelerar e trapacear o processo de tentativa e erro. SHA-256 pertence à família SHA-2 de algoritmos de hash seguros e foi lançado pela NSA em 2001. Se esse algoritmo fosse quebrado, como aconteceu com a classe SHA-1 de algoritmos de hash criptográficos, o processo PoW seria prejudicado.

Existem várias maneiras de quebrar um algoritmo de hash. Com isso queremos dizer ser capaz de contornar o método de tentativa e erro e encontrar nonces corretos muito mais rápido. Ataques de colisão são a maneira mais recente e eficiente de fazer isso.

Todo o propósito de um algoritmo de hash seguro é garantir a exclusividade de um hash. Quando os dados são hash, as entradas devem criar um número hash totalmente exclusivo. A única maneira de o mesmo número ser replicado é com as mesmas entradas, incluindo o nonce. Um ataque de colisão, entretanto, significa que o mesmo hash pode ser produzido a partir de entradas diferentes. Um ator malicioso pode fazer isso com recursos de computação suficientes. Isso prejudica completamente o propósito do algoritmo de hash seguro.

Função Hash

Agora que um ataque de colisão demonstrou ser eficaz contra os algoritmos SHA-1, não podemos mais confiar nele. O ataque foi possível em parte devido aos enormes avanços no poder do computador na última década.

Em algum ponto, quando os recursos de computação aumentarem o suficiente, o SHA-256 também ficará vulnerável a esses ataques. No entanto, os desenvolvedores de Bitcoin devem saber disso muito antes de acontecer. Isso ocorre porque esses ataques quase sempre são demonstrados como possíveis na teoria, antes de serem realmente comprovados para funcionar na vida real. A equipe Bitcoin Core deve, então, buscar um algoritmo mais novo e mais resistente.

Também é importante notar que a maioria dos protocolos de autenticação na Internet atualmente usa algoritmos SHA-2. Se eles se tornassem vulneráveis ​​durante a noite, então teríamos grandes problemas globais muito além da mineração de Bitcoin.

Valor da Prova de Trabalho

Os mineiros estão usando seu hardware para testar esses nonces, a uma taxa de milhões por segundo. O fato de não haver uma maneira rápida de encontrar o nonce mantém o PoW um sistema aberto e justo.

A característica benéfica deste sistema é que ele requer uma grande quantidade de energia, tempo e capital para resolver o valor correto e ganhar a recompensa. No entanto, ao mesmo tempo, é incrivelmente fácil para outros nós verificarem o valor correto. Essa dicotomia mantém a rede segura e fornece uma maneira simples de chegar a um consenso.

Em última análise, o nonce é apenas uma pequena parte do processo de mineração de Bitcoin. No entanto, ele desempenha um papel crucial na manutenção de sua integridade. O nonce é a única coisa que um minerador muda para encontrar um valor de hash suficiente. É realmente o acelerador, freio e embreagem para toda a configuração.

Mike Owergreen Administrator
Sorry! The Author has not filled his profile.
follow me