O que é um nonce em criptomoedas? Mineração de Bitcoin, Ethereum, Criptografia

O que é um nonce em criptomoedas? Mineração de Bitcoin, Ethereum, Criptografia

Em dezembro de 2010, no palco do Congresso de Comunicação do Caos em Berlim, um pequeno grupo chamado fail0verflow anunciou que havia extraído a chave mestra de assinatura da Sony para o PlayStation 3. A vulnerabilidade explorada não quebrava uma curva elíptica de 256 bits. Não quebrava o AES. Explorava o fato de que o sistema de assinatura de código da Sony reutilizava o mesmo número para cada assinatura produzida. Esse número era um nonce.

A mesma palavra, "nonce", aparece em três cantos do mundo das criptomoedas que praticamente não têm mais nada em comum. É a variável que um minerador de Bitcoin percorre trilhões de vezes por segundo em busca de um hash de bloco válido. É o contador que sua carteira Ethereum usa para sequenciar transações de saída e o motivo pelo qual uma transação travada bloqueia todas as transações subsequentes que você assina. É o valor único que uma cifra AES-GCM precisa para impedir que duas mensagens criptografadas revelem o conteúdo uma da outra. Uma palavra, três funções, nenhuma delas intercambiável. Confundir uma com a outra é como os novatos interpretam erroneamente os erros de "nonce muito baixo", como os mineradores criam configurações impossíveis e como sistemas como o PS3 perdem sua raiz de confiança.

Um nonce de 32 bits chamado "número usado uma vez": origem

O acrônimo está por toda parte. "Nonce significa número usado uma vez." Isso é aproximadamente verdade, mas historicamente incorreto. A palavra em inglês é anterior à criptografia em cerca de 750 anos. "For the nonce" aparece em manuscritos do inglês médio por volta de 1200. Significava "para esta ocasião específica".

A criptografia tomou emprestado o termo em 1978, com o protocolo de autenticação Needham-Schroeder. Nesse caso, a propriedade definidora não é a aleatoriedade, mas sim a unicidade, dentro de um escopo definido. A Wikipédia, baseando-se na prática, define um nonce como "um número arbitrário que pode ser usado apenas uma vez em uma comunicação criptográfica". Um contador se qualifica como tal. Assim como um carimbo de data/hora. Assim como um valor aleatório, ou qualquer combinação dos três. O que importa é que, dentro do sistema, o mesmo nonce nunca reapareça com a mesma chave ou no mesmo contexto.

Uma palavra realiza o trabalho, e o trabalho se divide em três partes. O nonce de mineração do Bitcoin varia até que o hash do bloco fique abaixo da meta de dificuldade. O nonce da conta Ethereum é um contador que a rede se recusa a permitir que se repita. Um nonce criptográfico em criptografia simétrica é um valor emparelhado com uma chave, e reutilizá-lo uma vez quebra a criptografia.

A palavra é solta. Os contextos, não.

Nonce em Criptomoedas

Como funciona o nonce na mineração de Bitcoin

No Bitcoin, o nonce ocupa um campo de 32 bits dentro do cabeçalho do bloco de 80 bytes. Quatro bytes. Os valores variam de zero a 4.294.967.295. Pouco menos de 4,3 bilhões de números possíveis, o que parecia enorme quando Satoshi escreveu o protocolo e agora é processado por um ASIC do tamanho de uma mesa em microssegundos.

A mineração é uma corrida para encontrar um valor nesse campo que produza um hash de bloco válido. Pegue o cabeçalho de 80 bytes. Passe-o pelo SHA-256, a função de hash criptográfica que a blockchain do Bitcoin utiliza, duas vezes. O resultado é um número de 256 bits. Compare esse número com o hash alvo definido pela dificuldade da rede, o mecanismo de consenso que impulsiona a prova de trabalho. Abaixo do alvo? Bloco válido, o minerador vence. Acima do alvo? Incremente o nonce em um e calcule o hash novamente. Os mineradores de Bitcoin repetem esse processo até que alguém encontre um nonce válido e o novo bloco seja adicionado à blockchain.

Por que um campo tão pequeno para uma tarefa tão grande? Razões estruturais. O nonce é a parte mais barata do cabeçalho que um minerador pode modificar. Todos os outros campos têm dependências. A raiz Merkle resume as transações do bloco, então alterá-la força toda a árvore de transações a ser recalculada antes que um novo hash possa ser tentado. O nonce contorna tudo isso. Cada tentativa de hash é independente. Incrementar o nonce não proporciona um avanço maior do que escolher um valor aleatório. Força bruta, disfarçada de linguagem de consenso.

O projeto funcionou por aproximadamente um ano. Depois, os ASICs o quebraram. Os mineradores modernos esgotam todo o espaço de 4,3 bilhões de nonces em microssegundos, não em segundos. Um Bitmain Antminer S21 Pro opera a 234 terahashes por segundo. O campo de nonces completo se esgota nesse hardware em cerca de 18 microssegundos . Em maio de 2026, o hashrate total da rede Bitcoin estava próximo de 996 EH/s, com dificuldade de 132,47 trilhões. Um único S21 Pro processa todos os valores de nonce possíveis dezenas de milhares de vezes por segundo sozinho.

Assim, o protocolo de Satoshi deixa ao minerador duas saídas limpas quando o espaço de 32 bits se esgota. A primeira é o "nonce extra", um campo inserido no scriptSig da transação coinbase. O BIP34 o codifica. De dois a cem bytes, controlado pelo minerador. Alterar o nonce extra altera o TXID da coinbase, a raiz Merkle precisa ser recalculada, o cabeçalho do bloco muda e uma nova busca por nonce de 32 bits é aberta. A segunda saída é incrementar o timestamp ou rotacionar os bits de versão dentro do intervalo permitido pelo protocolo. As pools de mineração hoje em dia realizam todos esses ciclos como parte da operação normal. Ajustar o nonce é a mutação mais barata. Ajustar o nonce extra é a segunda mais barata. As rotações de Merkle e timestamp ficam mais distantes, em ordem de custo de cada uma para recalcular.

Quando alguém acerta um hash abaixo do alvo — os mineradores chamam isso de "nonce dourado" — o novo bloco é enviado pela rede ponto a ponto, e todos os competidores abandonam sua busca atual para começar a próxima rodada.

modelo ASIC Taxa de hash Hora de esgotar o nonce de 32 bits Eficiência
Antminer S21 200 TH/s ~21 µs 17,5 J/TH
Antminer S21 Pro 234 TH/s ~18 µs 15 J/TH
Antminer S21 XP 270 TH/s ~16 µs 13,5 J/TH

Um exemplo real e recente ancora a abstração. O bloco 948.000, minerado no início de 2026, tem o hash `00000000000000000001b01841afc366a4f999b291c8563ee0d0db956fc2db44` e um valor nonce vencedor de 2.582.463.598 . Esse único inteiro, combinado com o restante do cabeçalho do bloco, produziu um hash suficientemente baixo para ser adicionado ao blockchain. Todos os outros nonces que o minerador tentou naquela rodada produziram valores muito grandes.

Isso é o que a prova de trabalho representa, mecanicamente. Não é um quebra-cabeça no sentido de enigma. É a busca por um nonce válido, pago com eletricidade.

Hash nonce vs account nonce: mesma palavra, função diferente

A palavra "nonce" é reutilizada para mais uma coisa no mundo das criptomoedas, e essa sobreposição é a maior fonte de confusão entre os novatos. O nonce de mineração do Bitcoin é uma variável de busca. O nonce da conta Ethereum é um contador. Eles compartilham o nome e quase nada mais.

Nonce de hash (Bitcoin) Nonce da conta (Ethereum)
Trabalho Procure um hash válido abaixo do alvo Sequenciar transações de saída por conta
Onde ele vive Cabeçalho de bloco (32 bits) Estado da conta (número inteiro, começa em 0)
Quem o muta? O minerador, em hardware, processa bilhões por segundo. A carteira, automaticamente, uma por envio.
O que significa "errado" O bilhete de loteria falhou, tente o próximo. A transação foi rejeitada ou está travada.
Ligado ao consenso? Sim, isso é uma prova de trabalho. Não, isso é proteção contra repetição.

Um nonce de hash é um número temporário que um minerador descarta. Um nonce de conta é um estado permanente gravado na visão da rede sobre o seu endereço. Confundir um com o outro — tratar o nonce de um bloco do Bitcoin como se fosse um contador de sequência — é como as pessoas interpretam um erro de "nonce muito baixo" no Ethereum e presumem que sua configuração de mineração está com defeito. Blockchains diferentes, funções diferentes, mesma palavra. Mesmo dentro de um único ecossistema, o papel de um nonce nas operações do blockchain depende inteiramente de se você está observando a camada de consenso ou a camada de conta.

Nonce da conta Ethereum e o problema da transação travada

Cada conta externa na Ethereum possui seu próprio nonce. O contador começa em zero, na primeira vez que o endereço envia uma transação. A partir daí, ele aumenta em um para cada transação que entra em um bloco. Quando você envia algo, sua carteira consulta a rede para obter o valor atual, anexa o próximo número da fila e assina. A rede só aceita a fila de saída em ordem estrita: nonce 0, depois 1 e, por fim, 2. Lacunas não são permitidas.

Essa ordem rigorosa é o que confere ao Ethereum sua proteção contra replays. Uma transação assinada é vinculada a um nonce específico e, desde o EIP-155, também a um chainID específico. Um atacante não pode retransmitir uma transação antiga já executada como se fosse nova. Quando a retransmissão chega, o nonce da conta já avançou além dela. O chainID impede replays entre cadeias da mesma forma. Dentro de uma mesma cadeia, uma transação confirmada reside em um ponto específico de um contador que já avançou.

A mesma ordem rígida gera o problema que as novas carteiras Ethereum enfrentam constantemente. Uma transação é enviada com uma gorjeta muito baixa. Os validadores a ignoram. O mempool a remove da fila de prioridade. A transação fica então em um limbo — não confirmada, não falhada, simplesmente abandonada. Pior ainda, todas as transações subsequentes assinadas pelo mesmo endereço recebem um nonce maior. A rede se recusa a processá-las até que a transação abandonada seja confirmada ou substituída. Uma única transação lenta paralisa toda a fila.

A solução reside em um mecanismo chamado replace-by-fee (substituição por taxa). Sua carteira retransmite uma nova transação com o mesmo nonce da transação bloqueada, mas com mais gás. O EIP-1559, o modelo de precificação de gás que opera o Ethereum desde a atualização de Londres em agosto de 2021, define a regra: a nova transação deve aumentar tanto o `maxFeePerGas` quanto o `maxPriorityFeePerGas` em pelo menos dez por cento em relação à original. Quer cancelar a transação bloqueada de vez em vez de substituí-la? Envie uma autotransferência de zero ETH com o nonce bloqueado, com uma gorjeta maior. O espaço reservado se consome e todas as transações subsequentes na fila são desbloqueadas.

Para contextualizar, vejamos os números de maio de 2026. A gorjeta média prioritária fica em torno de 1,875 Gwei. Um cancelamento padrão de 21.000 postos de gasolina custa cerca de US$ 0,05 em um dia tranquilo e sobe para valores baixos durante congestionamentos. Há uma lição que todos acabam aprendendo da maneira mais difícil: sempre substitua primeiro o nonce pendente de menor valor . Aumentar a taxa em uma transação posterior enquanto a anterior ainda está travada não resolve nada.

A abstração de contas remodela um pouco essa história. As contas inteligentes ERC-4337 usam um nonce bidimensional, dividindo o inteiro em uma "chave" de 192 bits e uma sequência de 64 bits. Chaves diferentes formam fluxos de transações paralelos. Um lote parado em uma chave não bloqueia o trabalho em outra. O nonce da conta finalmente deixou de ser um simples contador linear.

Um último mito que vale a pena desmistificar. A transição do Ethereum para o Proof of Stake (PoS) na fusão, em setembro de 2022, não removeu o nonce da conta. O que desapareceu foi o nonce de mineração dentro do cabeçalho do bloco, porque os validadores agora são escolhidos por slot em vez de por um hash. O nonce da conta permaneceu exatamente onde sempre esteve, na árvore de estado da conta.

Nonce criptográfico em criptografia: a versão catastrófica

Ao sair do blockchain, o nonce criptográfico se mostra mais preciso. Se você errar, tudo desmorona.

Toda cifra autenticada moderna combina uma chave secreta com um nonce por mensagem. O AES-GCM, o principal algoritmo do TLS 1.3, usa 96 bits. A especificação foi escrita no NIST SP 800-38D. O ChaCha20-Poly1305, a alternativa codificada na RFC 8439 (junho de 2018), copia o mesmo comprimento de nonce de 96 bits e o combina com uma chave de 256 bits. A regra em ambos os casos, em termos simples, é: cada par (chave, nonce) é executado exatamente uma vez. A reutilização não é uma degradação suave. É um precipício.

Qual é a aparência do precipício? Reutilize um nonce no AES-GCM sob uma única chave. Imagine que um atacante tenha capturado ambos os textos cifrados. Ele aplica um XOR entre os dois. O resultado é o XOR dos dois textos planos subjacentes. Confidencialidade perdida em um instante. E o pior ainda está por vir. O modo de autenticação do GCM vaza sua subchave de autenticação interna — o valor que assina cada texto cifrado sob aquela chave. Com a subchave em mãos, o atacante escreve novos textos cifrados autenticados e o destinatário legítimo os aceita como reais. Uma cifra de última geração, com um único nonce inválido, fica vulnerável a uma mudança de César.

Nada disso é hipotético. Um artigo da USENIX WOOT de 2016, "Nonce-Disrespecting Adversaries" (Adversários que Desrespeitam Nonces), analisou endpoints HTTPS de produção e identificou 184 servidores reutilizando nonces GCM. As versões com bugs incluíam imagens específicas do Cisco IOS XE e firmware Radware ADC. Esses servidores são rastreados pelas vulnerabilidades CVE-2016-0270 e várias outras CVEs relacionadas.

A vulnerabilidade do PS3 da Sony em dezembro de 2010 foi causada pela mesma doença, porém com uma criptografia diferente: ECDSA. Cada assinatura ECDSA precisa de um valor específico, representado por k , que é único e secreto. O código de assinatura da Sony ignorou a parte da unicidade. Ele inseriu um valor constante k no código e o reutilizou em todas as assinaturas. Se um atacante obtiver duas assinaturas ECDSA em mensagens diferentes com o mesmo valor de k , ele terá duas equações lineares com duas incógnitas. Resolva. A chave privada de assinatura, em formato fechado, será revelada. O grupo fail0verflow explicou isso detalhadamente no palco do 27º Congresso de Comunicação do Caos em Berlim. A chave mestra de assinatura da Sony foi exposta na internet em poucas horas. Todos os PS3 fabricados perderam sua cadeia de confiança instantaneamente.

A solução determinística, codificada como RFC 6979 em 2013, remove o gerador de números aleatórios do processo. Deriva-se k de um HMAC da mensagem e da chave privada. Mesma mensagem, mesma chave, mesmo k — sem gerador de números aleatórios para corromper. As bibliotecas Bitcoin modernas incluem ECDSA determinístico como padrão.

Duas consequências decorrem dessas histórias e frequentemente confundem os desenvolvedores. Com cifras AEAD (AES-GCM, ChaCha20-Poly1305), um nonce previsível é aceitável. Um contador funciona. A unicidade é o requisito fundamental. Com assinaturas ECDSA e Schnorr, a regra se inverte. Um k previsível é catastrófico. O nonce de assinatura precisa ser único, imprevisível e secreto simultaneamente. Misturar os dois grupos é exatamente o que faz com que bugs de reutilização de nonce continuem aparecendo em códigos de carteiras personalizadas. A auditoria de 2024 do projeto de backup Kopia registrou um risco aleatório de colisão GCM-nonce em chaves de longa duração, e relatórios de testes de penetração em SDKs mais recentes apresentam resultados semelhantes mês após mês.

Nonce vs. sal vs. IV: evitando a confusão tripla

Em relatórios de segurança, as pessoas usam três palavras como se fossem sinônimos: Sal, Nonce e IV. Elas não são sinônimos.

O salt é um recurso importante na criptografia de senhas. Você pega um valor aleatório para cada usuário, o mistura com o hash e, assim, as tabelas pré-computadas de palavras-chave como "senha123" deixam de funcionar contra o seu banco de dados. O salt fica em texto simples ao lado do hash. Ninguém o esconde. Dois usuários compartilhando o mesmo salt é problemático; isso permite que um atacante que quebre o de um deles quebre o do outro. Mas não é o fim do mundo.

O nonce é usado em mensagens e assinaturas. Em criptografia simétrica, é usado por mensagem. Em ECDSA, é usado por assinatura. Cifras AEAD, como AES-GCM, expõem o nonce em texto claro, da mesma forma que um salt fica ao lado de um hash. O ECDSA o oculta, trata-o como um segredo e exige aleatoriedade a cada vez. De qualquer forma, colisões não são apenas inconvenientes. São fatais. Toda a garantia se perde.

IV — abreviação de vetor de inicialização — é o nome antigo para o que as especificações mais recentes chamam de nonce. Os modos CBC e CTR usaram essa palavra por anos. A documentação moderna do AEAD mudou, principalmente porque "vetor" soava como um exercício de matemática e as pessoas continuavam reutilizando o termo. "Nonce" segue uma regra mais rígida.

Precisa de uma regra que caiba em um post-it? Um "sal" protege um segredo que você está guardando. Um "nonce" protege um segredo que você está enviando.

Nonce em Criptomoedas

Por que o nonce importa além das curiosidades sobre mineração de bitcoin

Um nonce é um objeto pequeno. Trinta e dois bits no Bitcoin. Um contador no Ethereum. Doze bytes no AES-GCM. Ele carrega um peso desproporcional ao seu tamanho. Para usuários comuns, cada transação Ethereum travada, cada handshake TLS com um site bancário, cada assinatura gerada por uma carteira de hardware depende do correto gerenciamento do nonce. Para desenvolvedores, o mau gerenciamento do nonce é o ponto de entrada mais comum para bugs catastróficos em código criptográfico personalizado. O incidente do PS3 foi um caso extremo, mas o mesmo modo de falha continua aparecendo em SDKs de carteiras e ferramentas de backup mais recentes. Para a economia do Bitcoin, o nonce de 32 bits combinado com o mecanismo de nonce extra é o que tornou a mineração ASIC uma loteria justa em primeiro lugar. Uma das escolhas de design mais consequentes de Satoshi, escondida à vista de todos dentro de um campo de cabeçalho comum.

Um nonce é o registro que indica que algo aconteceu uma vez, nesta ordem, exatamente desta forma . Remova-o e todo sistema que depende de unicidade se torna algo que um atacante pode reconstruir facilmente. O consenso é quebrado. A proteção contra repetição desaparece. A criptografia vaza. Assinaturas são falsificadas.

Alguma pergunta?

Sim, para ambos, de maneiras diferentes. O Solana mantém nonces em nível de conta e adiciona contas com nonce persistente para assinatura offline. O Ethereum Proof-of-Stake manteve o nonce da conta após a fusão de setembro de 2022, mas removeu o nonce de mineração dos cabeçalhos de bloco, porque os validadores agora são escolhidos por slot em vez de por quebra-cabeça de hash.

Na Ethereum, a única maneira é através do replace-by-fee, que intencionalmente troca uma transação não confirmada por outra com o mesmo nonce, pagando uma taxa de gás maior. Após a confirmação, duas transações nunca podem compartilhar o mesmo nonce na mesma conta. Em AES-GCM sob uma única chave, o compartilhamento de nonce é estritamente proibido. A reutilização quebra a confidencialidade e a autenticação simultaneamente.

Execute o comando replace-by-fee. Envie uma nova transação com o mesmo nonce da transação travada, com os valores `maxFeePerGas` e `maxPriorityFeePerGas` aumentados em dez por cento ou mais. Para cancelar em vez de substituir, envie uma transferência de valor zero para o seu próprio endereço com o nonce da transação travada, mas com uma gorjeta maior. Sempre substitua primeiro a transação pendente com o menor nonce.

Três funções, uma ideia fundamental. Um nonce garante a unicidade, impedindo a repetição da mesma operação. Ele sequencia as transações em registros contábeis. E é a variável de busca que os mineradores ajustam ao procurar um hash válido em algoritmos de prova de trabalho. Mecânicas diferentes, mesmo objetivo: tornar cada evento distinto de todos os outros.

A expressão geralmente se refere a um nonce de autenticação ou de nível de conta. Imagine um valor de uso único vinculado a uma sessão, uma transação ou uma solicitação de API, de forma que a solicitação não possa ser repetida. O "token" aqui não se refere ao sentido do ERC-20. Tanto o OAuth quanto o OpenID Connect dependem de tokens nonce durante seus fluxos de autenticação.

A palavra "nonce" significa um número usado uma única vez dentro de um escopo criptográfico específico. O Bitcoin o utiliza como o campo de busca de 32 bits que um minerador percorre para encontrar um hash válido. O Ethereum o utiliza como o contador que ordena as transações de saída para uma conta. A criptografia o utiliza como o valor por mensagem que, combinado com uma chave, nunca deve se repetir.

Ready to Get Started?

Create an account and start accepting payments – no contracts or KYC required. Or, contact us to design a custom package for your business.

Make first step

Always know what you pay

Integrated per-transaction pricing with no hidden fees

Start your integration

Set up Plisio swiftly in just 10 minutes.