僅供教育參考,不構成交易或安全建議。替換與取消是取決於競速結果、用戶端及提交路徑的操作;在認定原交易已被取代前,請核對鏈、傳送者、nonce、已簽署承載資料、費用欄位、收據與最終性。
直接答案
以太坊交易替換是一項本機交易池策略:節點可以優先保留一筆新簽署交易,而不再保留來自同一傳送者且具有相同 nonce 的另一筆候選交易。它不是共識層的全域費用替換開關。某個節點接受新雜湊,不會從其他節點、私有中繼或建構者處刪除舊的已簽署交易;只有交易納入規範鏈後,才會決定哪一筆候選交易耗用帳戶 nonce。
錢包的「加速」操作通常保留原交易的目的地址、金額和 calldata,只提高費用欄位。公開交易池中的「取消」通常建立一筆傳送者與 nonce 相同、金額為零的自我轉帳。它是一筆競爭交易,而不是復原操作:若原交易先被納入,其轉帳或合約呼叫不會被逆轉。特定產品的私有路徑可以定義不同的取消 API;例如 Flashbots Protect 記載了一種不上鏈的身分驗證取消機制,不能將其泛化為公開以太坊交易替換。
運作方式
- 鎖定正確譜系:鏈 ID、用戶端及版本、鏈頭區塊與基礎費、提交路徑、傳送者、規範帳戶 nonce、原始已簽署位元組、交易雜湊與類型。查詢多個相關的公開或私有視圖;錢包標籤或單一 RPC 回應不是全域狀態。
- 準確劃分原交易狀態:准入前被拒絕、在本機 pending、因 nonce 缺口而 queued、已丟棄或逐出、透過私有路徑提交、成功納入、以
status = 0納入、因重組被移除,或已經最終確認。一旦 nonce 在規範鏈上被耗用,就不應再把替換視為可用方案,但重組可能重新開啟競速。 - 定義新交易意圖。加速交易應重現每個預期語意欄位;公開取消嘗試通常使用相同傳送者與 nonce,並設定
to = sender、value = 0和空 calldata。簽署前逐項比較鏈 ID、類型、目的地址、金額、calldata、存取清單、gas 上限、Blob 雜湊與授權。 - 讀取目標節點的實際替換策略。Legacy 與 type-1 交易使用
gasPrice;type-2 交易包含maxFeePerGas和maxPriorityFeePerGas;type-3 交易還包含maxFeePerBlobGas並需要 sidecar。Geth 目前普通交易池預設txpool.pricebump = 10、Blob 交易池預設blobpool.pricebump = 100,它們只是 Geth 的設定範例,並非以太坊全網常數。 - 將調升資格與資金要求分開計算。對於 type 2,實際價格為
min(maxFeePerGas, baseFeePerGas + maxPriorityFeePerGas)。候選交易仍須編碼有效、固有 gas 充足,且餘額足以涵蓋轉帳金額與最高費用曝險;提高上限不能修復無效 calldata,也不能保證 EVM 執行成功。 - 有計畫地提交並保存每項回應。公開重新廣播可能暴露意圖並招致 MEV;私有中繼各有不同的可見性、取消方式、建構者涵蓋範圍與可用性。沿每條路徑追蹤新舊雜湊,不要假定本機接受代表競爭交易已被刪除,也不要盲目送出第三筆帶有金額的候選交易。
- 依規範鏈核對勝出交易。按所需最終性層級核對收據區塊與雜湊、交易索引、
status、gas 使用量、實際 gas 價格、日誌、傳送者 nonce、餘額及合約狀態。依證據將落選雜湊記錄為已替換、已丟棄或仍可觀察;發生重組後重新分析。
計算範例
- 普通 type-2 教學調升。 舊候選交易的
maxFeePerGas = 40 gwei、maxPriorityFeePerGas = 2 gwei。在調升幅度為10%的 Geth 教學設定下,算術門檻為44 gwei與2.2 gwei。44/2.1 gwei的候選交易未達優先費門檻;44/2.2 gwei則達到兩項教學門檻。基礎費為32 gwei、gas 使用量為21,000時,實際價格為34.2 gwei,總費用為718,200 gwei = 0.0007182 ETH,其中基礎費銷毀0.000672 ETH,優先費為0.0000462 ETH。實際准入仍取決於具體實作、版本及以 wei 為單位的整數取整。 - 基礎費敏感度。 某替換交易的兩項上限為
66/4.4 gwei。基礎費為60 gwei時,實際價格為min(66, 60 + 4.4) = 64.4 gwei。基礎費為65 gwei時,實際價格為66 gwei,實際優先費僅為1 gwei。基礎費為67 gwei時,由於66 < 67,即使候選交易通過本機調升測試,該費用上限也使其無法納入該區塊。 - 取消競速。 nonce 為
20的原交易向商家傳送5 ETH。若它以21,000 * 42 gwei = 0.000882 ETH的費用率先勝出,商家會收到5 ETH,取消交易則變為 nonce 過低。若金額為零的自我轉帳以21,000 * 45 gwei = 0.000945 ETH的費用率先勝出,它會耗用 nonce20,使原交易之後無法進入同一條規範歷史。僅憑點選「取消」按鈕,無法預先確定結果。 - Blob 交易池邊界。 舊 type-3 候選交易的執行費用上限為
100 gwei、優先費上限為3 gwei、Blob 費用上限為20 gwei。在調升幅度為100%的 Geth Blob 交易池教學設定下,算術門檻為200/6/40 gwei。200/6/39 gwei的候選交易未達 Blob 上限;200/6/40 gwei達到全部三項教學門檻,但仍須具備有效 sidecar、nonce、餘額並通過交易池准入。這些數值並非普通交易或其他用戶端的規則。
風險
- 選錯鏈 ID 或網路。
- 選錯傳送者或帳戶 nonce。
- 使用過時的鏈頭區塊、基礎費或規範 nonce。
- 在原交易已納入或最終確認後仍嘗試替換。
- 將普通交易池規則用於 ERC-4337
UserOperation。 - 假定另一用戶端、服務供應商、版本或設定採用相同策略。
- 因以 wei 為單位的整數取整而未達調升門檻。
- 只提高一項必要的 EIP-1559 費用欄位。
- 將
maxFeePerGas設得低於候選區塊基礎費。 - 忽略 Blob 費用上限、sidecar 或 Blob 交易池特殊規則。
- 餘額不足以涵蓋金額與最高授權費用。
- 簽章、類型、編碼、固有 gas 或鏈域無效。
- 意外更改目的地址、金額、calldata、存取清單或 Blob 雜湊。
- 公開取消交易在納入競速中落敗。
- 舊交易仍存在於其他節點或建構者輸入中。
- 私有中繼洩漏、審查、丟棄提交或無法取消。
- 公開重新廣播將意圖暴露給搶先交易、三明治攻擊或其他 MEV。
- nonce 缺口阻塞後續交易,或引發重複轉帳。
- 替換交易雖被納入,卻回復或耗盡 gas,同時仍耗用 nonce 與費用。
- 重組、最終性或收據譜系錯誤使候選交易復活或被錯誤分類。
常見誤解
- 費用較高的候選交易會在全網刪除舊交易。
- 任何兩筆數值 nonce 相同的交易都會互相替換,即使傳送者不同。
- 錢包的「取消」按鈕可以逆轉已經納入的交易。
- 某個節點接受替換交易,就證明建構者會將其納入。
- 通用的 10% 調升規則適用於所有用戶端、Blob 交易、私有中繼及
UserOperation。
相關主題
資料來源
- Transactions - Ethereum.org(查閱日期:2026-08-13)
- EIP-1559: Fee market change for ETH 1.0 chain - Ethereum Improvement Proposals(查閱日期:2026-08-13)
- txpool Namespace - go-ethereum(查閱日期:2026-08-13)
- Command-line Options - go-ethereum(查閱日期:2026-08-13)
- eth_sendRawTransaction - Ethereum Execution APIs(查閱日期:2026-08-13)
- EIP-4844: Shard Blob Transactions - Ethereum Improvement Proposals(查閱日期:2026-08-13)
- ERC-4337: Account Abstraction Using Alt Mempool - Ethereum Improvement Proposals(查閱日期:2026-08-13)
- Cancellations - Flashbots Documentation(查閱日期:2026-08-13)