Somente para fins educacionais; não constitui recomendação nem aconselhamento de investimento. Investir pode causar perdas.
Resposta direta
A substituição de uma transação Ethereum é uma política local do pool de transações pela qual um nó pode preferir uma transação recém-assinada a outra candidata do mesmo remetente e com o mesmo nonce. Não é um mecanismo global de Replace-by-Fee no nível de consenso. A aceitação do novo hash por um nó não apaga a transação assinada anterior de outros nós, relays privados ou builders; somente a inclusão canônica determina qual candidata consome o nonce da conta.
A ação Acelerar de uma carteira normalmente preserva destino, valor e calldata originais e eleva os campos de comissão. Um Cancelamento no pool público normalmente cria uma transferência de valor zero para a própria conta, com o mesmo remetente e nonce. Trata-se de uma transação concorrente, não de uma operação de desfazer: se a original for incluída primeiro, sua transferência ou chamada de contrato não será revertida. Rotas privadas específicas podem definir outras APIs de cancelamento; por exemplo, o Flashbots Protect documenta um cancelamento autenticado que não é publicado onchain e que não deve ser generalizado para a substituição pública de transações Ethereum.
Como funciona
- Fixe a linhagem exata: chain ID, cliente e versão, bloco de ponta e base fee, rota de envio, remetente, nonce canônico da conta, bytes brutos assinados, hash e tipo da transação original. Consulte várias visões públicas ou privadas relevantes; um rótulo da carteira ou uma única resposta RPC não representa o estado global.
- Classifique corretamente a original como rejeitada, pendente localmente, em fila atrás de uma lacuna de nonce, descartada ou removida, enviada em particular, incluída com sucesso, incluída com
status = 0, removida por uma reorganização ou finalizada. Pare de considerar a substituição disponível quando o nonce tiver sido consumido canonicamente, embora uma reorganização possa reabrir a corrida. - Defina a nova intenção. Uma aceleração deve reproduzir todos os campos semânticos pretendidos; uma tentativa pública de cancelamento normalmente usa o mesmo remetente e nonce com
to = sender,value = 0e calldata vazio. Compare chain ID, tipo, destino, valor, calldata, lista de acesso, limite de gas, hashes de blob e autorização antes de assinar. - Consulte a política real de substituição do nó de destino. Transações legacy e tipo 1 usam
gasPrice; as de tipo 2 expõemmaxFeePerGasemaxPriorityFeePerGas; as de tipo 3 também expõemmaxFeePerBlobGase exigem o sidecar. Os padrões atuais do Gethtxpool.pricebump = 10eblobpool.pricebump = 100são exemplos de configuração do Geth, não constantes do Ethereum. - Calcule separadamente a elegibilidade e o financiamento do aumento. Para o tipo 2, o preço efetivo é
min(maxFeePerGas, baseFeePerGas + maxPriorityFeePerGas). A candidata também precisa de codificação válida, gas intrínseco suficiente e saldo para cobrir o valor mais a exposição máxima a comissões; um limite maior não corrige calldata inválido nem garante execução bem-sucedida pela EVM. - Envie deliberadamente e preserve cada resposta. A retransmissão pública pode revelar a intenção e expô-la a MEV; relays privados têm visibilidade, cancelamento, cobertura de builders e disponibilidade próprios. Acompanhe os hashes antigo e novo em cada rota sem supor que a aceitação local eliminou a concorrente ou enviar às cegas uma terceira candidata que transfira valor.
- Reconcilie a vencedora na cadeia canônica. Verifique bloco e hash do recibo, índice da transação,
status, gas usado, preço efetivo do gas, logs, nonce do remetente, saldos e estado do contrato no nível de finalidade exigido. Registre os hashes perdedores como substituídos, descartados ou ainda observados conforme a evidência e reinicie a análise após uma reorganização.
Exemplos resolvidos
- Aumento didático de uma transação comum tipo 2. Uma candidata antiga tem
maxFeePerGas = 40 gweiemaxPriorityFeePerGas = 2 gwei. Em uma configuração didática do Geth com aumento de10%, os limiares aritméticos são44 gweie2.2 gwei. Uma candidata de44/2.1 gweinão atinge o limiar da gorjeta;44/2.2 gweiatinge ambos os limiares didáticos. Com base fee de32 gweie21,000unidades de gas usadas, o preço efetivo é34.2 gwei, a comissão total é718,200 gwei = 0.0007182 ETH, a queima base é0.000672 ETHe a gorjeta é0.0000462 ETH. A aceitação real depende da implementação, da versão e do arredondamento para wei inteiros. - Sensibilidade à base fee. Uma substituição tem limites
66/4.4 gwei. Com base fee de60 gwei, o preço efetivo émin(66, 60 + 4.4) = 64.4 gwei. Com base fee de65 gwei, o preço efetivo é66 gweie a gorjeta efetiva é apenas1 gwei. Com base fee de67 gwei, vale66 < 67, portanto a candidata não é elegível sob esse limite, ainda que tenha satisfeito um teste local de aumento. - Corrida de cancelamento. A transação original de nonce
20envia5 ETHa um comerciante. Se vencer a21,000 * 42 gwei = 0.000882 ETH, o comerciante recebe5 ETHe o cancelamento fica com nonce baixo demais. Se a transferência de valor zero para a própria conta vencer a21,000 * 45 gwei = 0.000945 ETH, ela consome o nonce20e impede a original de entrar posteriormente no mesmo histórico canônico. Nenhum resultado pode ser conhecido apenas ao clicar em Cancelar. - Limite do blob pool. Uma candidata antiga tipo 3 tem limite de comissão de execução de
100 gwei, limite de gorjeta de3 gweie limite de comissão de blob de20 gwei. Em uma configuração didática do blob pool do Geth com aumento de100%, os limiares aritméticos são200/6/40 gwei. Uma candidata de200/6/39 gweinão atinge o limite de blob;200/6/40 gweiatinge os três limiares didáticos, mas ainda precisa de sidecar, nonce, saldo e admissão no pool válidos. Esses valores não são regras para transações comuns nem para outros clientes.
Riscos
- Selecionar o chain ID ou a rede errados.
- Selecionar o remetente ou nonce da conta errados.
- Usar bloco de ponta, base fee ou nonce canônico desatualizados.
- Tentar substituir depois que a original foi incluída ou finalizada.
- Aplicar regras do txpool comum a uma
UserOperationERC-4337. - Supor que outro cliente, provedor, versão ou configuração usa a mesma política.
- Não atingir o limiar de aumento por arredondamento para wei inteiros.
- Elevar apenas um campo de comissão exigido pelo EIP-1559.
- Definir
maxFeePerGasabaixo da base fee do bloco candidato. - Ignorar limite de comissão de blob, sidecar ou regra específica do blob pool.
- Não ter saldo para o valor mais as comissões máximas autorizadas.
- Assinatura, tipo, codificação, gas intrínseco ou domínio de cadeia inválidos.
- Alterar acidentalmente destino, valor, calldata, lista de acesso ou hashes de blob.
- Uma transação pública de cancelamento perder a corrida de inclusão.
- A transação antiga permanecer em outros nós ou entradas de builders.
- Um relay privado vazar, censurar, descartar ou não cancelar o envio.
- A retransmissão pública expor a intenção a frontrunning, sandwiching ou outro MEV.
- Uma lacuna de nonce bloquear transações posteriores ou provocar transferência duplicada.
- A substituição ser incluída, mas reverter ou esgotar o gas, consumindo nonce e comissões.
- Erros de reorganização, finalidade ou linhagem de recibos reativarem ou classificarem mal as candidatas.
Equívocos comuns
- Uma candidata com comissão maior apaga globalmente a transação antiga.
- Duas transações com o mesmo nonce numérico se substituem mesmo com remetentes diferentes.
- O botão Cancelar de uma carteira reverte uma transação já incluída.
- A aceitação da substituição por um nó prova que os builders a incluirão.
- Uma regra universal de aumento de 10% abrange todos os clientes, transações blob, relays privados e
UserOperation.
Tópicos relacionados
Fontes
- Transactions - Ethereum.org (acessado em: 2026-08-13)
- EIP-1559: Fee market change for ETH 1.0 chain - Ethereum Improvement Proposals (acessado em: 2026-08-13)
- txpool Namespace - go-ethereum (acessado em: 2026-08-13)
- Command-line Options - go-ethereum (acessado em: 2026-08-13)
- eth_sendRawTransaction - Ethereum Execution APIs (acessado em: 2026-08-13)
- EIP-4844: Shard Blob Transactions - Ethereum Improvement Proposals (acessado em: 2026-08-13)
- ERC-4337: Account Abstraction Using Alt Mempool - Ethereum Improvement Proposals (acessado em: 2026-08-13)
- Cancellations - Flashbots Documentation (acessado em: 2026-08-13)