﻿---
title: "Sostituzione delle transazioni nel mempool di Ethereum"
description: "Guida specifica per client alla sostituzione di transazioni Ethereum dello stesso mittente e con lo stesso nonce, agli aumenti dei massimali di commissione, alle corse di annullamento, alle transazioni blob, alle rotte private, alle ricevute e alla finalità."
image: "https://wiki.fcontext.com/og.png"
---

> Documentation Index
> Fetch the complete documentation index at: https://wiki.fcontext.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Sostituzione delle transazioni nel mempool di Ethereum

> Solo a scopo educativo; non costituisce consulenza né raccomandazione d’investimento. Gli investimenti possono comportare perdite.

<a id="answer"></a>

## Risposta diretta

La sostituzione di una transazione Ethereum è una politica locale del pool di transazioni in base alla quale un nodo può preferire una nuova transazione firmata rispetto a un'altra candidata dello stesso mittente e con lo stesso `nonce`. Non è un interruttore Replace-by-Fee globale a livello di consenso. L'accettazione del nuovo hash da parte di un nodo non cancella la vecchia transazione firmata dagli altri nodi, relay privati o builder; soltanto l'inclusione canonica determina quale candidata consuma il nonce dell'account.

La funzione Accelera di un wallet conserva normalmente destinazione, valore e calldata originali, aumentando i campi di commissione. Un Annullamento nel pool pubblico crea normalmente un trasferimento a sé stessi di valore zero con lo stesso mittente e nonce. È una transazione concorrente, non un'operazione di ripristino: se viene inclusa prima l'originale, il relativo trasferimento o la chiamata al contratto non vengono annullati. Le rotte private specifiche di un prodotto possono definire API di annullamento differenti; per esempio, Flashbots Protect documenta un annullamento autenticato che non viene pubblicato onchain e che non va generalizzato alla sostituzione pubblica delle transazioni Ethereum.

<a id="mechanism"></a>

## Come funziona

1. Fissare la lineage esatta: chain ID, client e versione, blocco di testa e base fee, rotta di invio, mittente, nonce canonico dell'account, byte grezzi firmati, hash e tipo della transazione originale. Interrogare più viste pubbliche o private pertinenti; l'etichetta di un wallet o una singola risposta RPC non rappresentano lo stato globale.
2. Classificare correttamente l'originale come rifiutata, pending localmente, in coda dietro un gap di nonce, scartata o rimossa, inviata privatamente, inclusa con successo, inclusa con `status = 0`, rimossa da una riorganizzazione o finalizzata. Non considerare più disponibile la sostituzione quando il nonce è stato consumato canonicamente, anche se una riorganizzazione può riaprire la corsa.
3. Definire la nuova intenzione. Un'accelerazione deve riprodurre ogni campo semantico previsto; un tentativo pubblico di annullamento utilizza normalmente lo stesso mittente e nonce con `to = sender`, `value = 0` e calldata vuoti. Prima di firmare, confrontare chain ID, tipo, destinazione, valore, calldata, access list, gas limit, hash dei blob e autorizzazione.
4. Consultare l'effettiva politica di sostituzione del nodo destinatario. Le transazioni legacy e di tipo 1 usano `gasPrice`; quelle di tipo 2 espongono `maxFeePerGas` e `maxPriorityFeePerGas`; quelle di tipo 3 espongono anche `maxFeePerBlobGas` e richiedono il sidecar. Gli attuali valori predefiniti Geth `txpool.pricebump = 10` e `blobpool.pricebump = 100` sono esempi di configurazione Geth, non costanti valide per l'intera rete Ethereum.
5. Calcolare separatamente l'idoneità e la copertura finanziaria dell'aumento. Per il tipo 2, il prezzo effettivo è `min(maxFeePerGas, baseFeePerGas + maxPriorityFeePerGas)`. La candidata richiede inoltre codifica valida, gas intrinseco sufficiente e saldo per coprire valore ed esposizione massima alle commissioni; un massimale più elevato non corregge calldata non validi né garantisce l'esecuzione EVM con successo.
6. Inviare deliberatamente e conservare ogni risposta. La ritrasmissione pubblica può rivelare l'intenzione ed esporla al MEV; i relay privati hanno visibilità, annullamento, copertura dei builder e disponibilità propri. Tracciare hash vecchio e nuovo su ogni rotta senza presumere che l'accettazione locale abbia eliminato la concorrente e senza inviare alla cieca una terza candidata che trasferisca valore.
7. Riconciliare la vincitrice sulla chain canonica. Verificare blocco e hash della ricevuta, indice della transazione, `status`, gas utilizzato, prezzo effettivo del gas, log, nonce del mittente, saldi e stato del contratto al livello di finalità richiesto. Registrare gli hash perdenti come sostituiti, scartati o ancora osservati in base alle evidenze e ripetere l'analisi dopo una riorganizzazione.

<a id="example"></a>

## Esempi svolti

- **Aumento didattico di una normale transazione di tipo 2.** Una vecchia candidata ha `maxFeePerGas = 40 gwei` e `maxPriorityFeePerGas = 2 gwei`. Con una configurazione didattica Geth che prevede un aumento del `10%`, le soglie aritmetiche sono `44 gwei` e `2.2 gwei`. Una candidata a `44/2.1 gwei` non raggiunge la soglia della mancia; `44/2.2 gwei` raggiunge entrambe le soglie didattiche. Con una base fee di `32 gwei` e `21,000` unità di gas utilizzate, il prezzo effettivo è `34.2 gwei`, la commissione totale è `718,200 gwei = 0.0007182 ETH`, il base burn è `0.000672 ETH` e la mancia è `0.0000462 ETH`. L'accettazione effettiva dipende da implementazione, versione e arrotondamento a wei interi.
- **Sensibilità alla base fee.** Una sostituzione ha massimali `66/4.4 gwei`. Con una base fee di `60 gwei`, il prezzo effettivo è `min(66, 60 + 4.4) = 64.4 gwei`. Con una base fee di `65 gwei`, il prezzo effettivo è `66 gwei` e la mancia effettiva è solo `1 gwei`. Con una base fee di `67 gwei`, vale `66 < 67`, quindi la candidata non è idonea con quel massimale, anche se ha superato una verifica locale dell'aumento.
- **Corsa di annullamento.** La transazione originale con nonce `20` invia `5 ETH` a un commerciante. Se vince a `21,000 * 42 gwei = 0.000882 ETH`, il commerciante riceve `5 ETH` e l'annullamento ha poi un nonce troppo basso. Se vince il trasferimento a sé stessi di valore zero a `21,000 * 45 gwei = 0.000945 ETH`, consuma il nonce `20` e impedisce all'originale di entrare successivamente nella stessa storia canonica. Nessuno dei due risultati è deducibile dal solo clic su Annulla.
- **Confine del blob pool.** Una vecchia candidata di tipo 3 ha massimale della commissione di esecuzione `100 gwei`, massimale della mancia `3 gwei` e massimale della commissione blob `20 gwei`. Con una configurazione didattica del blob pool Geth che prevede un aumento del `100%`, le soglie aritmetiche sono `200/6/40 gwei`. Una candidata a `200/6/39 gwei` non raggiunge il massimale blob; `200/6/40 gwei` raggiunge tutte e tre le soglie didattiche, ma richiede comunque sidecar, nonce, saldo e ammissione al pool validi. Questi valori non sono regole per transazioni normali o altri client.

<a id="risks"></a>

## Rischi

- Selezione del chain ID o della rete errati.
- Selezione del mittente o del nonce dell'account errati.
- Utilizzo di blocco di testa, base fee o nonce canonico non aggiornati.
- Tentativo di sostituzione dopo l'inclusione o la finalizzazione dell'originale.
- Applicazione delle regole del txpool ordinario a una `UserOperation` ERC-4337.
- Presunzione che un altro client, provider, versione o configurazione utilizzi la stessa politica.
- Mancato raggiungimento della soglia di aumento a causa dell'arrotondamento a wei interi.
- Aumento di un solo campo di commissione richiesto da EIP-1559.
- Impostazione di `maxFeePerGas` sotto la base fee del blocco candidato.
- Omissione del massimale della commissione blob, del sidecar o di una regola speciale del blob pool.
- Saldo insufficiente per valore e commissioni massime autorizzate.
- Firma, tipo, codifica, gas intrinseco o dominio della chain non validi.
- Modifica involontaria di destinazione, valore, calldata, access list o hash dei blob.
- Perdita della corsa di inclusione da parte di una transazione pubblica di annullamento.
- Permanenza della vecchia transazione presso altri nodi o negli input dei builder.
- Perdita di riservatezza, censura, scarto o mancato annullamento dell'invio da parte di un relay privato.
- Esposizione dell'intenzione a frontrunning, sandwiching o altro MEV tramite ritrasmissione pubblica.
- Blocco delle transazioni successive per un gap di nonce o induzione di un trasferimento duplicato.
- Inclusione della sostituzione con successivo revert o esaurimento del gas, consumando nonce e commissioni.
- Riattivazione o classificazione errata delle candidate per errori di riorganizzazione, finalità o lineage delle ricevute.

<a id="misconceptions"></a>

## Falsi miti comuni

- Una candidata con una commissione maggiore cancella globalmente la vecchia transazione.
- Due transazioni con lo stesso nonce numerico si sostituiscono anche se hanno mittenti differenti.
- Il pulsante Annulla di un wallet revoca una transazione già inclusa.
- L'accettazione della sostituzione da parte di un nodo dimostra che i builder la includeranno.
- Una regola universale di aumento del 10% copre ogni client, transazione blob, relay privato e `UserOperation`.

<a id="related"></a>

## Argomenti correlati

- [Mempool e pool di transazioni](/it/crypto/mempool/)
- [Commissioni del gas](/it/crypto/gas-fee/)
- [Nonce dell'account](/it/crypto/nonce-crypto/)

<a id="sources"></a>

## Fonti

- [Transactions](https://ethereum.org/developers/docs/transactions/) - Ethereum.org (consultato: 2026-08-13)
- [EIP-1559: Fee market change for ETH 1.0 chain](https://eips.ethereum.org/EIPS/eip-1559) - Ethereum Improvement Proposals (consultato: 2026-08-13)
- [txpool Namespace](https://geth.ethereum.org/docs/interacting-with-geth/rpc/ns-txpool) - go-ethereum (consultato: 2026-08-13)
- [Command-line Options](https://geth.ethereum.org/docs/fundamentals/command-line-options) - go-ethereum (consultato: 2026-08-13)
- [eth_sendRawTransaction](https://ethereum.github.io/execution-apis/api/methods/eth_sendRawTransaction/) - Ethereum Execution APIs (consultato: 2026-08-13)
- [EIP-4844: Shard Blob Transactions](https://eips.ethereum.org/EIPS/eip-4844) - Ethereum Improvement Proposals (consultato: 2026-08-13)
- [ERC-4337: Account Abstraction Using Alt Mempool](https://eips.ethereum.org/EIPS/eip-4337) - Ethereum Improvement Proposals (consultato: 2026-08-13)
- [Cancellations](https://docs.flashbots.net/flashbots-protect/cancellations) - Flashbots Documentation (consultato: 2026-08-13)

Source: https://wiki.fcontext.com/it/crypto/mempool-replacement/index.mdx
