Comprar cripto
Mercados
Spot
Centro de eventos
Centro de Recompensas
Mais
0-Fee Fest
Nonce durável: O que é um nonce durável?Um nonce durável é um valor persistente armazenado em uma conta especial da Solana, que permite que uma transação continue válida além do período normal de expiração do blockhNonce durável: O que é um nonce durável?Um nonce durável é um valor persistente armazenado em uma conta especial da Solana, que permite que uma transação continue válida além do período normal de expiração do blockh

Nonce durável

2026/10/13 15:29
#Advanced
Humanity
H$0.05648+2.61%
o1.exchange
O$0.4183+3.61%
PX
PX$0.0105-7.89%
UMA
UMA$0.3689+0.95%
MemeCore
M$0.92184+6.42%

O que é um nonce durável?

Um nonce durável é um valor persistente armazenado em uma conta especial da Solana, que permite que uma transação continue válida além do período normal de expiração do blockhash recente.

As transações padrão da Solana incluem um blockhash recente, válido por apenas 150 slots.

Em geral, uma transação que não é processada antes da expiração do blockhash recente não pode ser enviada com sucesso usando a mesma mensagem assinada.

Um nonce durável substitui esse blockhash de curta duração por um valor armazenado, que continua utilizável até que a conta nonce seja avançada ou alterada de outra forma.

Isso torna os nonces duráveis úteis para assinaturas offline, envio posterior de transações, aprovação por várias partes, operações de armazenamento frio, fluxos de trabalho programados e organizações cujos signatários não conseguem aprovar uma transação dentro de um período curto.

A documentação oficial da Solana sobre nonce durável explica que esse mecanismo elimina o período de expiração padrão de 150 slots ao usar um valor nonce armazenado em uma conta on-chain.

Um nonce durável não torna uma transação permanente em todas as condições.

A transação se torna inválida se o nonce armazenado mudar, se a conta nonce for encerrada, se a autoridade exigida mudar ou se outra transação consumir com sucesso o mesmo valor nonce.

Por que as transações da Solana normalmente expiram

Uma transação padrão da Solana contém um campo chamado

recent_blockhash
.

O blockhash funciona como uma referência de validade limitada que comprova que a transação foi criada recentemente.

Ele também ajuda a impedir que uma transação já processada seja enviada repetidamente.

Os validadores comparam o blockhash da transação com a fila de blockhashes recentes da rede.

O pipeline de transações atual da Solana aceita um blockhash normal somente quando sua idade está dentro da idade máxima de processamento de 150 slots.

Quando o blockhash fica antigo demais, os validadores rejeitam a transação antes de executar suas instruções.

Essa expiração protege a rede contra reprodução indefinida e limita o tempo durante o qual os validadores precisam considerar uma transação assinada comum potencialmente executável.

Essa limitação cria um problema quando a assinatura exige mais tempo do que a validade do blockhash.

Por que os nonces duráveis são necessários

Algumas transações de criptomoedas não podem ser criadas, aprovadas e enviadas durante uma breve sessão online.

Uma empresa pode exigir assinaturas de funcionários em vários países.

Uma tesouraria pode manter suas chaves de assinatura em um computador isolado da rede, que nunca se conecta diretamente à internet.

Uma operação de alta segurança pode exigir que uma transação passe por análises técnicas, financeiras e de conformidade antes de ser transmitida.

Um fluxo de trabalho de multisig pode exigir que vários dispositivos de hardware assinem a mesma transação em momentos diferentes.

Um aplicativo de pagamentos pode preparar transações em um período operacional e enviá-las mais tarde.

Usar um blockhash recente normal exigiria reconstruir e assinar novamente a mensagem completa sempre que o blockhash expirasse.

Um nonce durável permite que as partes assinem uma única mensagem de transação estável e a enviem depois que o período normal do blockhash tiver passado.

O que é uma conta nonce?

Uma conta nonce é uma conta especial da Solana pertencente ao System Program.

Ela armazena o estado necessário para permitir transações com nonce durável.

Uma conta nonce inicializada contém uma chave pública de autoridade, um valor nonce durável e a taxa em lamports por assinatura registrada quando o nonce foi avançado pela última vez.

A autoridade identifica a conta com permissão para avançar, reautorizar ou sacar fundos da conta nonce.

O valor nonce durável é um hash derivado de um blockhash recente e armazenado para uso posterior.

O valor relacionado à taxa preserva informações necessárias para o processo de cobrança de taxas da transação.

Enquanto estiver ativa, uma conta nonce deve manter SOL suficiente para atender ao requisito de isenção de aluguel aplicável.

Os aplicativos devem consultar a rede para obter o saldo mínimo atual, em vez de codificar permanentemente um valor estimado.

Nonce durável vs. blockhash recente

Um blockhash recente é obtido da rede pouco antes de uma transação normal ser assinada.

Ele expira após o período limitado de processamento da rede.

Um nonce durável é gravado em uma conta on-chain e continua disponível depois que o blockhash do qual foi derivado deixa de ser recente.

Uma transação normal não precisa criar nem modificar uma conta nonce.

Uma transação com nonce durável precisa fazer referência à conta nonce e incluir uma instrução específica para avançá-la.

Transações normais são mais simples e, em geral, devem ser usadas quando os usuários podem assinar e enviar prontamente.

Nonces duráveis acrescentam requisitos de gerenciamento de conta, assinatura, tamanho da transação, taxas e operação.

Nonce durável vs. número sequencial da conta

A palavra nonce é usada de maneiras diferentes em vários sistemas de criptomoedas.

Algumas blockchains baseadas em contas usam um número crescente de transação da conta para ordenar transações e evitar reprodução.

Um nonce durável da Solana não é um contador de transações que aumenta continuamente e acompanha cada carteira.

É um hash armazenado em uma conta dedicada do System Program.

O valor é inserido no campo

recent_blockhash
de uma transação e substituído quando o nonce é avançado.

Os desenvolvedores não devem aplicar às contas nonce da Solana pressupostos sobre contadores de transações de outras blockchains.

Como funciona uma transação com nonce durável

O processo começa com a criação e inicialização de uma conta nonce.

O criador atribui uma autoridade nonce que controlará operações futuras com o nonce.

O aplicativo lê o valor nonce durável armazenado na conta.

Ele cria uma transação usando esse valor no campo

recent_blockhash
da mensagem da transação.

A transação coloca uma instrução

AdvanceNonceAccount
em primeiro lugar na lista de instruções.

As contas exigidas assinam a mensagem completa e serializada da transação.

As assinaturas podem ser produzidas offline, pois o nonce armazenado não expira após 150 slots.

A transação assinada é transferida para um sistema online e enviada quando a organização estiver pronta.

Um validador verifica se a conta nonce é válida, se o valor armazenado corresponde ao da transação e se a autoridade nonce assinou.

O nonce é avançado antes da execução das instruções restantes da transação.

A instrução AdvanceNonceAccount

A instrução

AdvanceNonceAccount
informa ao System Program que substitua o nonce armazenado por um novo valor.

Essa instrução é essencial para a proteção contra reprodução de transações com nonce durável.

O runtime da transação reconhece uma transação com nonce durável somente quando

AdvanceNonceAccount
é a primeira instrução.

A conta nonce deve ser fornecida na posição exigida e precisa permitir gravação.

A autoridade nonce deve assinar a transação.

Se a instrução estiver em uma posição posterior, o runtime poderá tratar a transação como uma transação padrão expirada, e não como uma transação válida com nonce durável.

As regras oficiais de identificação de nonce descrevem essa exigência de que a instrução apareça primeiro.

Por que o nonce precisa avançar

Um valor nonce durável só pode ser usado uma vez.

Sem o avanço, um invasor ou um processo acidental poderia enviar repetidamente a mesma transação assinada.

Avançar a conta substitui o nonce antigo por um novo valor derivado do estado atual da rede.

Qualquer outra transação pendente que use o valor anterior se torna inválida.

Isso significa que, em geral, várias transações assinadas não devem depender de um único valor nonce compartilhado quando se espera que todas sejam executadas.

A primeira transação aceita avança a conta e invalida as demais transações criadas com o valor antigo.

Fluxos de trabalho paralelos e atrasados devem, em geral, usar contas nonce separadas.

Autoridade nonce

A autoridade nonce é a chave pública autorizada a controlar operações importantes relacionadas à conta nonce.

A autoridade deve assinar a transação que avança o nonce.

Ela também deve autorizar uma mudança de autoridade nonce.

A autoridade é necessária para sacar fundos da conta nonce.

A interface atual de criação de conta nonce do System Program documenta esses requisitos de autoridade.

A autoridade não precisa ser a mesma conta que paga a taxa da transação.

Separar essas responsabilidades pode ajudar a cumprir as políticas de segurança organizacionais.

A autoridade nonce deve ser protegida, pois um avanço não autorizado pode invalidar uma transação que já foi assinada offline.

Pagador da taxa vs. autoridade nonce

O pagador da taxa é a conta que paga a taxa básica da transação e qualquer taxa de prioridade.

A autoridade nonce autoriza o uso do nonce durável armazenado.

Uma conta pode desempenhar as duas funções, mas elas são distintas do ponto de vista lógico.

Uma transação também pode exigir assinaturas de proprietários de ativos, autoridades de tokens, administradores de programas ou outras contas.

Todos os signatários exigidos assinam a mesma mensagem de transação.

Alterar o pagador da taxa normalmente altera a mensagem e, portanto, invalida as assinaturas existentes, a menos que o fluxo de trabalho use um formato futuro projetado especificamente para separar essas etapas.

Assinatura offline

A assinatura offline mantém as chaves privadas afastadas de dispositivos conectados à internet.

Um sistema online pode reunir informações das contas e construir uma transação com nonce durável ainda não assinada.

A mensagem serializada é transferida para um dispositivo de assinatura offline por meio de mídia controlada ou outro processo auditado.

O dispositivo offline verifica a transação e produz a assinatura exigida.

A transação assinada é transferida de volta para um sistema online para envio.

O nonce permanece válido durante esse processo, desde que a conta nonce não seja avançada nem alterada.

A assinatura offline reduz a exposição direta à rede, mas não protege contra uma transação criada de forma maliciosa.

Antes de assinar, o signatário deve verificar o destino, o valor, os endereços dos programas, o mint do token, as autoridades, as taxas e todas as instruções importantes.

Multisig e aprovação por várias partes

Nonces duráveis são úteis quando várias partes precisam assinar uma transação.

Um blockhash normal pode expirar enquanto a mensagem é enviada de um signatário a outro.

O uso de um nonce armazenado dá a cada signatário mais tempo para analisar e aprovar exatamente a mesma mensagem.

O conjunto final de assinaturas pode ser reunido e transmitido depois que todas as aprovações necessárias estiverem presentes.

O processo deve preservar a mensagem serializada exata, pois alterar uma instrução, endereço, parâmetro de taxa ou flag de conta invalida as assinaturas.

A conta nonce também deve permanecer inalterada durante todo o processo de aprovação.

As organizações devem monitorar a conta nonce para detectar um avanço inesperado ou uma mudança de autoridade antes do envio.

Execução atrasada

Um nonce durável permite o envio posterior, mas não agenda uma transação por si só.

A blockchain não executa automaticamente a transação em uma data futura escolhida apenas porque ela usa um nonce durável.

Um usuário, servidor, sistema de automação ou relayer ainda precisa enviar a transação assinada.

Por isso, aplicativos que oferecem pagamentos programados precisam de um agendador off-chain ou de um mecanismo de programação on-chain além do nonce durável.

O sistema de envio deve verificar se o nonce continua atual imediatamente antes da transmissão.

Também deve verificar se as condições comerciais pretendidas continuam válidas.

O estado da transação pode mudar antes do envio

Uma transação com nonce durável pode permanecer assinada enquanto o estado da blockchain muda ao seu redor.

Os saldos das contas podem aumentar ou diminuir.

Uma conta de token pode ser congelada ou encerrada.

Um contrato inteligente pode ser atualizado.

O preço de um oráculo pode mudar.

Uma decisão de governança pode alterar parâmetros do programa.

Uma conta de destinatário pode deixar de ter o estado esperado.

As assinaturas da transação comprovam a aprovação da mensagem serializada, mas não congelam todo o estado externo de contas ou programas usado na execução futura.

Quando o aplicativo oferece suporte, transações atrasadas devem incluir limites adequados, valores esperados, prazos ou verificações no nível do programa.

Proteção contra reprodução

A proteção contra reprodução impede que o mesmo conjunto de instruções assinadas seja executado repetidamente.

Uma transação normal da Solana depende, em parte, da expiração do blockhash recente e do rastreamento de transações processadas pela rede.

Uma transação com nonce durável depende do valor armazenado de uso único na conta nonce.

Quando um validador aceita e avança esse valor, a mensagem assinada antiga deixa de corresponder ao estado da conta.

Por isso, reenviar a mesma transação falhará na validação do nonce.

Essa proteção depende do posicionamento correto da instrução de avanço e da exigência de uma assinatura válida da autoridade nonce.

O que acontece quando uma transação com nonce durável é bem-sucedida?

O validador confirma que o nonce armazenado corresponde ao campo

recent_blockhash
da transação.

Ele verifica se a conta nonce está inicializada e pertence ao System Program.

Ele verifica se a autoridade nonce assinou a transação.

O runtime avança o nonce para um novo valor.

As instruções restantes são executadas em ordem.

Se todas as instruções exigidas forem bem-sucedidas, as alterações de estado e o nonce avançado são confirmados.

A taxa da transação é descontada do pagador da taxa.

A transação assinada antiga não pode ser executada novamente, pois seu nonce foi consumido.

O que acontece quando a execução falha?

O comportamento de falha de um nonce durável apresenta uma diferença importante em relação à regra simplificada de que todas as alterações de estado de uma transação malsucedida são revertidas.

Se a transação passar pela validação do nonce e do pagador da taxa, mas uma instrução posterior falhar, as alterações comuns das instruções serão revertidas.

O avanço do nonce ainda será confirmado.

A taxa da transação também será cobrada.

A documentação oficial da Solana sobre o comportamento em caso de falha explica que isso impede a reprodução da mesma transação assinada até que ela seja finalmente bem-sucedida.

Portanto, uma transação com nonce durável que falhar consome seu nonce.

O usuário precisa buscar o novo nonce, reconstruir a transação e coletar novas assinaturas antes de tentar novamente.

O que acontece quando a validação falha?

Uma transação pode falhar antes que o nonce seja considerado válido.

Entre as causas possíveis estão a ausência da conta nonce, um nonce já consumido, um valor armazenado diferente do valor da transação ou a falta da assinatura da autoridade.

Quando a validação do nonce falha nessa etapa, a transação é descartada sem executar suas instruções.

De acordo com o comportamento documentado atualmente, nenhuma taxa é cobrada e nenhuma alteração de estado é confirmada nesse caso de falha de validação.

O aplicativo deve identificar o erro específico em vez de transmitir repetidamente a mesma transação inutilizável.

Riscos de confirmação e novas tentativas

Um aplicativo que envia transações precisa determinar se a transação com nonce durável foi processada com sucesso, processada com erro de execução ou nunca foi aceita.

Reconstruir e enviar cegamente uma transação substituta pode duplicar involuntariamente uma operação comercial caso a transação original tenha sido bem-sucedida.

Também não adianta reenviar cegamente a transação original depois que seu nonce foi consumido.

Os aplicativos devem consultar o status da transação e inspecionar a conta nonce.

O sistema deve distinguir a finalização da transação da execução bem-sucedida das instruções.

Um registro de transação finalizada pode conter um erro de execução.

Os sistemas operacionais devem reconciliar as alterações esperadas de saldo e de contas, em vez de confiar apenas na existência de uma assinatura de transação.

Taxas de transação

Toda transação da Solana exige uma taxa paga em SOL.

A documentação atual de taxas da Solana descreve uma taxa básica de 5,000 lamports por assinatura, além de uma taxa de prioridade opcional.

Uma transação com nonce durável exige a instrução de avanço do nonce e as referências às contas pertinentes, mas não elimina as taxas normais de assinatura.

Signatários adicionais aumentam a taxa básica.

Depois de passar pela etapa de validação pertinente, uma transação malsucedida ainda pode consumir o nonce e cobrar a taxa.

Os aplicativos devem manter SOL suficiente na conta pagadora da taxa e saldo suficiente, isento de aluguel, na conta nonce.

Taxas de prioridade

Uma taxa de prioridade pode aumentar a chance de uma transação ser programada durante períodos de alta demanda na rede.

Ela não garante a inclusão nem a execução bem-sucedida.

Transações com nonce durável têm um requisito especial de ordem das instruções quando incluem instruções de orçamento de computação.

A instrução

AdvanceNonceAccount
precisa continuar em primeiro lugar.

As instruções de preço e limite de unidades de computação não devem aparecer antes dela.

As orientações oficiais de integração da Solana alertam que colocar as instruções de orçamento de computação em primeiro lugar pode impedir que o runtime identifique corretamente a transação com nonce durável.

Financiamento da conta nonce e isenção de aluguel

Uma conta nonce contém dados e deve manter o saldo exigido pela rede para isenção de aluguel enquanto estiver ativa.

O valor mínimo exato deve ser obtido por meio da consulta de rede apropriada ao tamanho dos dados da conta nonce.

Um saque parcial não pode deixar a conta nonce com saldo positivo abaixo do mínimo exigido para isenção de aluguel.

Uma transação que tente criar essa situação falhará.

Sacar com sucesso o saldo integral encerra a conta nonce.

A interface atual de saque de nonce documenta essas regras de saldo.

Encerramento de uma conta nonce

Uma conta nonce pode ser encerrada com o saque de todo o seu saldo em SOL por meio de uma instrução autorizada.

A autoridade nonce deve aprovar o saque.

Encerrar a conta invalida todas as transações ainda não enviadas que dependem do nonce armazenado.

Por isso, as organizações devem verificar se há transações assinadas pendentes antes de sacar o saldo integral.

Os registros devem identificar quais contas nonce estão ativas, quais transações as utilizam e quais contas podem ser encerradas com segurança.

Alteração da autoridade nonce

A autoridade nonce atual pode designar uma nova autoridade por meio de uma instrução autorizada do System Program.

A rotação da autoridade pode ser útil após a saída de um funcionário, a migração de chaves, uma mudança na política de custódia ou um incidente de segurança.

Uma transação pendente que exija a autoridade antiga pode se tornar inválida depois que ela for alterada.

A nova autoridade deve ser verificada cuidadosamente antes que a alteração seja enviada.

Designar uma chave pública incorreta ou inacessível pode impedir o uso futuro da conta nonce.

As mudanças de autoridade devem ser documentadas e coordenadas com todos os fluxos de trabalho pendentes de assinatura offline.

Uma transação pendente por valor nonce

Tecnicamente, várias transações podem ser preparadas com o mesmo valor nonce armazenado.

Somente uma dessas transações conflitantes pode consumir esse valor com sucesso.

A primeira transação aceita avança o nonce e invalida as demais.

Um fluxo de trabalho que espera executar várias transações atrasadas de forma independente deve criar várias contas nonce.

Usar uma conta para muitas transações pendentes cria concorrência entre elas, não uma fila.

Uma conta nonce não armazena uma lista de transações futuras.

Nonces duráveis e armazenamento frio

O armazenamento frio mantém chaves privadas importantes afastadas de sistemas normalmente conectados à internet.

Um nonce durável permite que um signatário offline aprove uma transação sem correr contra a expiração padrão do blockhash.

O sistema online de criação deve ser tratado como não confiável, pois pode preparar uma transação que transfira ativos ou altere autoridades.

O ambiente frio deve decodificar e exibir o significado completo da transação antes da assinatura.

As organizações devem verificar endereços de programas, permissões de contas, configurações de taxas, mints de tokens, endereços de destinatários e valores das transações.

A transferência de transações serializadas por mídia removível também exige controles contra malware e procedimentos de integridade de arquivos.

Nonces duráveis e operações de tesouraria

Tesourarias de cripto podem usar nonces duráveis para saques que exigem vários níveis de aprovação.

Uma transação pode ser preparada após uma solicitação interna e assinada por pessoas autorizadas em locais diferentes.

O operador final pode enviá-la depois de confirmar que todas as aprovações foram concluídas.

Procedimentos sólidos de tesouraria devem associar cada conta nonce a uma única solicitação de transação documentada.

A organização deve impedir que um departamento avance ou encerre a conta nonce inesperadamente.

Também deve definir o que fazer quando a transação falhar depois de consumir o nonce.

Nonces duráveis e pagamentos programados

Um nonce durável pode dar suporte a um pagamento programado ao preservar uma transação assinada até o horário escolhido para o envio.

Por si só, ele não impõe a programação on-chain.

Um relayer poderia enviar a transação antes do horário previsto, a menos que outro mecanismo impeça a execução antecipada.

Quando o horário de execução for importante, os signatários não devem entregar uma transação com nonce durável totalmente autorizada a uma parte não confiável.

Um programa on-chain pode oferecer condições temporais mais sólidas quando verifica o relógio da rede ou outra condição aprovada antes de liberar os fundos.

O projeto escolhido deve considerar o que acontece se o agendador ficar indisponível.

Nonces duráveis e transações com contratos inteligentes

Um nonce durável pode ser usado em transações que chamam programas da Solana, não apenas em transferências simples de SOL.

A execução atrasada de contratos inteligentes introduz riscos adicionais relacionados ao estado.

O preço de uma swap pode mudar entre a assinatura e o envio.

Uma posição de empréstimo pode se tornar insegura.

Uma conta esperada pelo programa pode ser alterada ou encerrada.

Um programa atualizável pode executar um código diferente quando a transação for executada.

Os aplicativos devem usar, quando disponíveis, limites mínimos de saída, valores máximos de entrada, estados de conta esperados e outras proteções explícitas.

Os usuários devem evitar assinar uma transação durável sem limites claros fornecida por um aplicativo não confiável.

Nonces duráveis e simulação de transações

A simulação estima como uma transação se comportaria em determinado estado observado da blockchain.

Uma simulação bem-sucedida não garante que uma transação com nonce durável será bem-sucedida mais tarde.

As contas pertinentes e a lógica do programa podem mudar antes do envio.

O nonce também pode ser consumido entre a simulação e a execução.

Quando viável, os aplicativos devem simular perto do horário de envio pretendido e ainda depender dos limites de segurança no nível do programa.

Os resultados da simulação não substituem a verificação da mensagem realmente assinada.

Riscos de segurança

Os principais riscos dos nonces duráveis são o comprometimento de chaves, o avanço não autorizado do nonce, a ordem incorreta das instruções, o estado desatualizado das contas, a execução atrasada insegura e o tratamento inadequado do status da transação.

Uma chave da autoridade nonce roubada pode invalidar transações pendentes ou autorizar alterações na conta.

Um criador de transações malicioso pode usar o longo período de validade para obter uma assinatura de uma ação que será executada em condições futuras diferentes.

Um operador pode consumir acidentalmente um nonce por meio de uma transação que falhe.

Um sistema de novas tentativas pode criar operações comerciais duplicadas se não confirmar corretamente o resultado original.

A segurança depende tanto da criptografia quanto do processo operacional em torno dela.

Monitoramento de uma conta nonce

Antes de criar uma transação, um aplicativo deve ler a conta nonce.

Deve registrar o endereço da conta, a autoridade, o nonce armazenado, a transação pretendida e o estado das aprovações.

O nonce deve ser verificado novamente antes do envio.

Um valor inesperado indica que a transação pendente não é mais válida.

Uma autoridade inesperada indica um possível evento operacional ou de segurança grave.

As organizações devem emitir alertas para avanços de nonce, mudanças de autoridade, saques de saldo e encerramento de contas.

O monitoramento deve usar um nível de compromisso adequado e levar a finalização em conta.

Status atual do protocolo

Os nonces duráveis continuam documentados e têm suporte no sistema atual de transações da Solana.

No entanto, a página oficial sobre nonce durável alerta que o mecanismo pode ser descontinuado em uma versão futura.

Uma discussão sobre melhorias da Solana explorou um formato de transação substituto que poderia preservar fluxos de trabalho de nonce offline e, ao mesmo tempo, reduzir o processamento especial pelos validadores.

Uma discussão ou proposta não equivale a uma alteração ativada na rede.

Desenvolvedores que usam nonces duráveis devem acompanhar especificações oficiais, versões de clientes, avisos de ativação e orientações de migração.

Sistemas institucionais de longa duração não devem presumir que o formato atual das transações permanecerá inalterado para sempre.

Como desenvolvedores devem implementar nonces duráveis

Os desenvolvedores devem usar as interfaces mantidas do SDK da Solana e do System Program, em vez de codificar manualmente o estado da conta nonce.

O aplicativo deve consultar a conta nonce e verificar seu proprietário, estado de inicialização, autoridade e nonce atual.

O nonce armazenado deve ser inserido no campo

recent_blockhash
da transação.

AdvanceNonceAccount
deve ser a primeira instrução.

A autoridade nonce e todos os demais signatários exigidos devem assinar a mensagem exata.

O sistema deve armazenar a transação serializada e as assinaturas sem modificá-las.

Antes do envio, o aplicativo deve confirmar que a conta ainda contém o nonce e a autoridade esperados.

Depois do envio, deve verificar o status da transação, os erros de execução, o avanço do nonce, as taxas e as alterações esperadas nas contas.

Como os usuários podem usar nonces duráveis com segurança

Os usuários devem preferir uma transação com blockhash recente normal quando não houver necessidade de assinatura atrasada.

O nonce durável deve ser usado por meio de um software que identifique claramente a conta nonce e a autoridade.

Os signatários offline devem verificar cada instrução, em vez de aprovar uma mensagem serializada ilegível.

Quando for necessário cancelar uma transação pendente, o cancelamento deve ocorrer pelo avanço intencional do nonce.

Os usuários devem entender que o cancelamento consome o valor antigo e invalida todas as transações criadas com ele.

As chaves da autoridade nonce devem ser armazenadas em backup e protegidas de acordo com o valor e a função operacional da conta.

Os usuários devem verificar a execução bem-sucedida, em vez de presumir que o avanço do nonce significa que a transferência pretendida foi concluída.

Erros comuns com nonces duráveis

Um erro comum é tratar um nonce durável como um número crescente de transação da carteira.

Outro erro é colocar uma instrução de orçamento de computação antes de

AdvanceNonceAccount
.

Um terceiro erro é preparar várias transações com um nonce e esperar que todas sejam executadas.

Um quarto erro é presumir que um nonce durável agenda automaticamente uma execução futura.

Um quinto erro é ignorar as mudanças no estado da blockchain entre a assinatura e o envio.

Um sexto erro é presumir que uma transação malsucedida deixa o nonce disponível para outra tentativa.

Um sétimo erro é encerrar ou reautorizar uma conta nonce enquanto ainda há transações assinadas pendentes.

Um oitavo erro é reenviar ou reconstruir transações sem verificar o status da transação original.

Um nono erro é codificar permanentemente o saldo exigido para isenção de aluguel da conta nonce.

Um décimo erro é presumir que o comportamento atual dos nonces duráveis nunca mudará em versões futuras da Solana.

Perguntas frequentes

O que é um nonce durável na Solana?

Um nonce durável é um hash persistente armazenado em uma conta do System Program e usado no lugar de um blockhash recente de curta duração.

Por que as transações normais da Solana expiram?

Elas contêm um blockhash recente que só é aceito dentro do período de idade de processamento de 150 slots da rede.

Um nonce durável expira após 150 slots?

Não. Ele continua utilizável além desse período até que a conta nonce seja avançada, encerrada ou alterada de uma forma que invalide a transação.

Um nonce durável torna uma transação válida para sempre?

Não. A transação se torna inválida quando o nonce armazenado é consumido ou quando as condições exigidas para a conta e a autoridade deixam de corresponder.

O que é uma conta nonce?

É uma conta pertencente ao System Program que armazena a autoridade nonce, o valor nonce durável e o estado relacionado às taxas.

Quem controla uma conta nonce?

A autoridade nonce designada aprova o avanço, as mudanças de autoridade e os saques.

A autoridade nonce precisa pagar a taxa da transação?

Não. A autoridade nonce e o pagador da taxa podem ser contas signatárias diferentes.

Qual instrução precisa aparecer primeiro?

A instrução

AdvanceNonceAccount
precisa ser a primeira instrução da transação com nonce durável.

As instruções de orçamento de computação podem aparecer primeiro?

Não. Em uma transação com nonce durável, elas não devem ser colocadas antes de

AdvanceNonceAccount
.

Uma transação com nonce durável pode ser assinada offline?

Sim. A assinatura offline é um dos principais usos desse mecanismo.

Um nonce durável agenda um pagamento?

Não. Outro sistema precisa enviar a transação assinada no horário pretendido.

Várias transações podem usar um nonce?

Várias transações podem ser preparadas, mas somente a primeira aceita pode consumir o nonce com sucesso.

Como várias transações atrasadas podem ser executadas de forma independente?

Em geral, elas devem usar contas nonce separadas e valores nonce armazenados separados.

O que acontece depois que o nonce é usado?

A conta nonce armazena um novo valor, e as transações assinadas com o valor antigo se tornam inválidas.

O que acontece se uma instrução posterior falhar?

As alterações comuns de estado são revertidas, mas o nonce ainda avança e a taxa da transação ainda é cobrada.

Uma transação com nonce durável malsucedida pode ser reenviada?

Não depois que seu nonce tiver sido consumido, pois a transação precisa ser reconstruída e assinada com o novo valor.

Como cancelar uma transação pendente com nonce durável?

A autoridade pode avançar o nonce por meio de outra transação válida, tornando inutilizável a transação assinada antiga.

Alterar a autoridade pode invalidar uma transação pendente?

Sim. Uma transação assinada sob a autoridade anterior pode falhar depois que a autoridade da conta for alterada.

Uma conta nonce precisa de SOL?

Sim. Enquanto estiver ativa, ela deve manter o saldo aplicável para isenção de aluguel.

É possível sacar fundos de uma conta nonce?

Sim, mas um saque parcial precisa preservar a isenção de aluguel, enquanto o saque do saldo integral encerra a conta.

Um nonce durável é um token de criptomoeda?

Não. É um estado de transação armazenado em uma conta do System Program da Solana.

Um nonce durável é secreto?

Não. A conta nonce e seu valor armazenado podem ser consultados publicamente on-chain.

Saber o nonce permite que alguém roube fundos?

Não. A transação ainda exige assinaturas válidas da autoridade nonce e de todos os demais signatários necessários.

Um invasor pode invalidar uma transação assinada?

Um invasor que controle a autoridade nonce pode avançar ou alterar a conta nonce e invalidar transações pendentes.

Uma simulação bem-sucedida garante a execução posterior?

Não. O estado das contas, os programas, os saldos, os preços e o próprio nonce podem mudar antes do envio.

Nonces duráveis são mais caros do que transações normais?

Eles exigem estado adicional de conta e uma instrução de avanço, enquanto as taxas normais de assinatura e de prioridade continuam aplicáveis.

Nonces duráveis têm suporte atualmente?

Sim, mas a documentação oficial alerta que o mecanismo atual pode ser descontinuado em uma versão futura.

Conclusão

Um nonce durável permite que uma transação da Solana continue utilizável além do período padrão de 150 slots do blockhash recente.

Ele funciona por meio de uma conta nonce pertencente ao System Program, que contém uma autoridade, um hash armazenado e informações relacionadas às taxas.

O nonce armazenado substitui o blockhash recente normal na mensagem assinada da transação.

A transação precisa colocar

AdvanceNonceAccount
em primeiro lugar e incluir a assinatura da autoridade nonce.

Depois que a transação é aceita, o nonce avança e a mensagem assinada antiga não pode ser reproduzida.

Se uma instrução posterior falhar, as alterações de estado pretendidas são revertidas, mas o nonce ainda é consumido e a taxa continua sendo cobrada.

Nonces duráveis são especialmente úteis para assinaturas em ambientes isolados da rede, aprovações de tesouraria, autorização por várias partes e envio posterior.

Eles não agendam transações automaticamente nem protegem os signatários contra instruções maliciosas e mudanças no estado da blockchain.

Uma implementação segura exige monitoramento do nonce, preservação exata da mensagem, exibição clara da transação, verificações confiáveis de status e gestão cuidadosa de autoridades.

Como o projeto atual pode mudar em uma versão futura da Solana, os desenvolvedores devem acompanhar as orientações oficiais do protocolo e preparar os sistemas operacionais para uma migração, se necessário.

Você também pode gostar

BTC ETFs See $679M in Outflows
BTC ETFs See $679M in OutflowsBTC ETFs See $679M in Outflows
Citi sees BTC at $113K. What do institutions see?