O que é um nonce em cripto?

O que é um nonce em cripto?

O que é um nonce?

Um nonce em cripto é uma abreviação de “number used once”, ou seja, um número que, no mundo cripto, é utilizado apenas uma vez. Este valor único garante que os resultados de cálculos ou verificações mudem a cada vez. Os nonces são utilizados dentro das blockchains como uma ferramenta para prevenir fraudes, proteger transações e tornar possível o consenso dentro de uma rede.

Na prática, um nonce em cripto tem duas funções principais:

  • No processo de mineração em blockchains Proof of Work
  • Em transações e mecanismos de segurança

Embora estas duas aplicações sejam semelhantes, o papel do nonce varia conforme o contexto.


Pontos principais

  • Um nonce é um número único (“number used once”) utilizado para evitar repetição e manipulação dentro das blockchains.
  • Nas redes Proof of Work, os mineradores ajustam continuamente o nonce para encontrar um hash válido.
  • No Bitcoin, o nonce é limitado a 32 bits, razão pela qual os mineradores utilizam variações adicionais como um extra nonce e timestamps.
  • O nonce contribui para a segurança ao tornar extremamente dispendiosa a modificação ou falsificação de blocos.
  • No Ethereum, o nonce funciona como um número de sequência de transações por conta e é independente do consenso.

O que é o nonce no Proof of Work (como o Bitcoin)?

Nas blockchains Proof of Work (PoW), os mineradores devem demonstrar que realizaram trabalho computacional antes de poderem adicionar um novo bloco. Esta prova é fornecida ao encontrar um hash válido.

Um hash é o resultado de uma função hash criptográfica. Trata-se de uma função matemática que converte dados de entrada numa cadeia fixa de caracteres. Esta função hash, frequentemente SHA-256, é unidirecional. Isto significa que não é possível reconstruir a entrada original a partir do hash. Como resultado, existe apenas uma forma de encontrar um hash válido: realizar um grande número de cálculos.

O nonce é o número variável que os mineradores ajustam para gerar um hash diferente a cada tentativa. Ele está armazenado no cabeçalho do bloco. Ao alterar o nonce, um minerador pode testar um novo hash a cada vez. Os mineradores continuam a ajustar o nonce até encontrarem um hash válido. Além disso, o hash deve cumprir a regra de dificuldade da rede, por exemplo, estar abaixo de um determinado limite.

Porque é que os mineradores continuam a alterar o nonce?

A rede cripto define o nível de dificuldade de modo que, em média, seja necessário um block time fixo para encontrar um novo bloco (por exemplo, cerca de 10 minutos no Bitcoin). Por esse motivo, os mineradores tentam constantemente gerar um hash diferente ajustando o nonce. Este processo pode envolver milhões ou até milhares de milhões de tentativas por segundo.

Nos primeiros anos do Bitcoin, este processo era relativamente simples e os mineradores precisavam de realizar muito menos tentativas. Naquela altura, era até possível minerar Bitcoin com um computador portátil, enquanto atualmente isso é praticamente impossível e são utilizados principalmente computadores ASIC especializados.

Quando um minerador encontra um hash que cumpre a regra de dificuldade, o bloco é partilhado com a rede. Outros nós verificam então se o bloco é válido e adicionam-no à blockchain. Em seguida, o mesmo processo começa novamente para o bloco seguinte.

Qual é o limite do nonce e a variação extra no Bitcoin?

No Bitcoin, o nonce é limitado a 32 bits, o que corresponde a pouco mais de 4 mil milhões de valores possíveis. Os mineradores modernos conseguem percorrer este espaço muito rapidamente e, por isso, utilizam métodos adicionais para continuar a alterar a entrada. Por exemplo, adicionam um extra nonce na transação coinbase (uma variável adicional dentro da recompensa do minerador) e ajustam o timestamp, ou seja, o momento em que o bloco é registado. O objetivo continua a ser o mesmo: gerar novos resultados de hash.

Como é que um nonce contribui para a segurança?

O nonce torna o Proof of Work prático e seguro:

Torna a falsificação de blocos extremamente dispendiosa. Para falsificar um bloco, alguém teria de encontrar novamente um hash válido. Para isso, normalmente é necessária pelo menos tanta potência computacional quanto a do resto da rede em conjunto (o chamado ataque de 51%), o que torna a fraude praticamente inviável.

  • Qualquer pessoa pode verificar facilmente se um bloco é válido. Outros nós apenas precisam de verificar se o hash do bloco cumpre as regras. Isto requer muito pouco tempo ou energia e, por isso, é altamente eficiente.
  • Garante concorrência justa entre os mineradores. Como todos os mineradores seguem as mesmas regras e só podem ter sucesso realizando trabalho computacional real, surge uma competição aberta e transparente.
  • Quanto maior a blockchain se torna, mais difícil é manipular blocos antigos. Se alguém quisesse alterar um bloco antigo, teria de minerar novamente esse bloco e todos os blocos seguintes, o que exigiria uma quantidade enorme de tempo e energia.

Como funciona um nonce no Ethereum e noutras altcoins?

Um nonce funciona de forma diferente no Ethereum e noutras altcoins em comparação com a mineração de Bitcoin. No Ethereum, que utiliza Proof of Stake (PoS), um nonce atua como um número sequencial crescente por conta. Cada transação recebe um nonce, garantindo que as transações são sempre processadas na ordem correta e que a mesma transação não pode ser executada duas vezes. No Ethereum, o nonce é um mecanismo de transação e não uma ferramenta utilizada para alcançar consenso.

Quais são as desvantagens dos nonces?

Os nonces em si não representam uma desvantagem, mas a forma como são utilizados nas redes Proof of Work acarreta alguns inconvenientes:

  • O ajuste contínuo do nonce para encontrar um hash válido exige trabalho computacional intensivo e conduz a um elevado consumo de energia.
  • À medida que a rede cresce e mais mineradores participam, a dificuldade aumenta e são necessários cada vez mais cálculos.
  • As economias de escala associadas a hardware especializado e energia barata podem beneficiar os grandes pools de mineração.

Estes inconvenientes desempenham um papel importante na comparação entre Proof of Work e Proof of Stake.

Considerações finais

Um nonce é uma ferramenta técnica essencial dentro da tecnologia blockchain, garantindo unicidade, segurança e fiabilidade. Nas redes Proof of Work, o nonce constitui um componente crucial do processo de mineração e da segurança da blockchain, enquanto em blockchains como o Ethereum é utilizado principalmente para ordenar corretamente as transações e evitar execuções duplicadas. Embora os nonces não apresentem desvantagens intrínsecas, a sua utilização no Proof of Work conduz a elevados custos energéticos e a economias de escala para grandes mineradores, o que constitui uma razão importante para que cada vez mais redes optem por mecanismos de consenso alternativos como o Proof of Stake.

Sobre a Finst

A Finst é um dos principais prestadores de serviços de criptoativos nos Países Baixos e oferece uma plataforma de investimento de excelência com padrões de segurança de nível institucional e taxas de transação super baixas. A Finst é liderada pela antiga equipa principal da DEGIRO e está autorizada como prestador de serviços de criptoativos pela Autoridade Holandesa para os Mercados Financeiros (AFM). A Finst oferece uma gama completa de serviços de criptomoedas, incluindo negociação, custódia, fiat on/off ramp e staking, tanto para pequenos investidores como também para investidores institucionais.

A plataforma de criptomoedas que vai adorar

Estamos aqui para lhe fornecer as ferramentas, a inspiração, e o apoio que precisa para se tornar num melhor investidor.