O que é um Nonce nas Blockchains Compatíveis com EVM?

2025-04-15 04:06

1. O que é um nonce na EVM?

Um nonce ("número usado uma vez") é um número inteiro que representa o número de transações iniciadas por uma conta específica (Conta de Propriedade Externa ou"EOA") – Ele acompanha quantas transações você enviou dessa conta. Um nonce começa em 0 e aumenta gradualmente em 1 a cada transação enviada. O nonce não pula números e conta cronologicamente em ordem como 0, 1, 2, 3 e assim por diante.

2. Por que o nonce importa?

Nonces são usados em protocolos como o Ethereum para acompanhar cada transação a partir de um determinado endereço, para garantir que tudo esteja funcionando sem problemas:  

  • Sem repetições: os nonces impedem que alguém reutilize sua transação (como enviar o mesmo 1 ETH duas vezes).
  • Ordem certa: Garante que suas transações aconteçam em sequência - Transação 1 antes da Transação 2.
  • Sem confusão: ajuda a rede a saber quais transações são legítimas.

3. Como lidamos com o nonce em nossa carteira agora, em comparação com o anterior?

Atualmente, verificamos o número de transações pendentes esperando na pool de transações (chamada de mempool, abreviação de memory pool) e + 1 para esse número.

No passado, usamos o nonce das "transações confirmadas" + 1, enquanto agora usamos o nonce das "transações pendentes" + 1. 

Por exemplo: Suponha que você tenha uma transação confirmada na blockchain com um nonce de 3 e outra transação pendente na mempool com um nonce de 4. 

No passado, selecionaríamos o nonce 4 para sua nova transação, permitindo que você substituísse a transação na mempool. Isso significava que apenas uma transação com o nonce 4 teria sucesso. 

Agora, escolhemos o nonce 5 para sua nova transação. Dessa forma, a nova transação permanecerá pendente na mempool por trás da transação com o nonce 4, esperando para ser enviada à blockchain até que a transação nonce 4 seja confirmada.

Observação: Se notarmos que você tem uma transação pendente há muito tempo, você receberá uma notificação pop-up perguntando se deseja substituí-la por uma nova. 

Por que essa fórmula é vantajosa:

  • Eficiência aprimorada: No método anterior, um atraso na transação pode impedir sua capacidade de prosseguir - enquanto você poderia reutilizar seu nonce, isso arriscava substituir a transação pendente, resultando na rejeição de uma transação. Nossa abordagem atualizada elimina esse problema atribuindo o próximo nonce sequencial com base em transações pendentes, permitindo envios ininterruptos de transações.
  • Resolução proativa: se uma transação permanecer não confirmada por muito tempo, fornecemos uma notificação clara, oferecendo a você a opção de substituí-la por uma nova transação (usando o mesmo nonce e uma taxa de gás mais alta). Isso garante que você possa resolver atrasos de forma rápida e eficaz.
  • Experiência aprimorada do usuário: este sistema permite um processamento de transações consecutivos, independentemente de status pendente, proporcionando uma interação mais confiável e simplificada com a carteira.

4. Preciso me preocupar com o nonce?

Os usuários não precisam se preocupar com o nonce – geramos automaticamente um nonce para suas transações com base no que está pendente na mempool. Depois de confirmar as transações, nosso sistema cuidará do resto.

Para saber mais sobre a Binance Wallet, veja o que é a Binance Wallet e como ela funciona?