﻿---
title: "Penggantian transaksi di mempool Ethereum"
description: "Panduan dalam lingkup klien untuk penggantian transaksi Ethereum dari pengirim dan nonce yang sama, kenaikan batas biaya, perlombaan pembatalan, transaksi blob, jalur privat, tanda terima, dan finalitas."
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.

# Penggantian transaksi di mempool Ethereum

> Hanya untuk tujuan edukasi; bukan merupakan nasihat investasi atau rekomendasi investasi. Investasi dapat mengakibatkan kerugian.

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

## Jawaban langsung

Penggantian transaksi Ethereum adalah kebijakan lokal pool transaksi yang memungkinkan sebuah node memilih transaksi yang baru ditandatangani daripada kandidat lain dari pengirim yang sama dengan `nonce` yang sama. Ini bukan sakelar Replace-by-Fee global pada tingkat konsensus. Penerimaan hash baru oleh satu node tidak menghapus transaksi lama yang telah ditandatangani dari node lain, relay privat, atau masukan pembuat blok. Hanya inklusi di rantai kanonis yang menentukan kandidat mana yang memakai nonce akun.

Tindakan Percepat pada dompet biasanya mempertahankan tujuan, nilai, dan calldata asli sambil menaikkan kolom biaya. Tindakan Batalkan melalui pool publik biasanya membuat transfer bernilai nol ke alamat sendiri dengan pengirim dan nonce yang sama. Transaksi ini adalah pesaing, bukan operasi pembatalan yang membalik keadaan: jika transaksi asli masuk lebih dahulu, transfer atau pemanggilan kontraknya tidak dibatalkan. Jalur privat tertentu dapat mendefinisikan API pembatalan berbeda; misalnya, Flashbots Protect mendokumentasikan pembatalan autentikasi yang tidak dimasukkan ke rantai. Mekanisme itu tidak boleh digeneralisasi sebagai penggantian transaksi Ethereum publik.

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

## Cara kerja

1. Tetapkan seluruh riwayat kandidat secara tepat: chain ID, klien dan versinya, blok kepala dan biaya dasar, jalur pengiriman, pengirim, nonce akun kanonis, byte mentah bertanda tangan dari transaksi asli, hash, dan jenis transaksi. Periksa beberapa tampilan publik atau privat yang relevan; label dompet atau satu respons RPC bukan keadaan global.
2. Klasifikasikan transaksi asli secara tepat sebagai ditolak, tertunda secara lokal, mengantre di belakang celah nonce, dibuang atau dikeluarkan, dikirim secara privat, masuk dan berhasil, masuk dengan `status = 0`, dihapus oleh reorganisasi, atau sudah final. Jangan menganggap penggantian masih tersedia setelah nonce dipakai secara kanonis, walaupun reorganisasi dapat membuka kembali perlombaan.
3. Tentukan maksud baru. Percepatan harus mereproduksi setiap kolom semantik yang dimaksud; upaya pembatalan publik biasanya memakai pengirim dan nonce yang sama dengan `to = sender`, `value = 0`, dan calldata kosong. Bandingkan chain ID, jenis, tujuan, nilai, calldata, daftar akses, batas gas, hash blob, serta otorisasi sebelum menandatangani.
4. Baca kebijakan penggantian aktual dari node sasaran. Transaksi lama dan jenis 1 memakai `gasPrice`; jenis 2 memiliki `maxFeePerGas` dan `maxPriorityFeePerGas`; jenis 3 juga memiliki `maxFeePerBlobGas` serta memerlukan sidecar. Nilai bawaan Geth saat ini, `txpool.pricebump = 10` untuk pool biasa dan `blobpool.pricebump = 100` untuk pool blob, adalah contoh konfigurasi Geth, bukan konstanta seluruh Ethereum.
5. Hitung kelayakan dan pendanaan secara terpisah dari kenaikan biaya. Untuk jenis 2, harga efektif adalah `min(maxFeePerGas, baseFeePerGas + maxPriorityFeePerGas)`. Kandidat tetap memerlukan enkode yang valid, gas intrinsik yang cukup, serta saldo untuk menutup nilai ditambah eksposur biaya maksimum. Batas yang lebih tinggi tidak memperbaiki calldata yang tidak valid atau menjamin eksekusi EVM berhasil.
6. Kirim secara terencana dan simpan setiap respons. Penyiaran ulang ke publik dapat mengungkap niat dan MEV; relay privat memiliki cakupan visibilitas, pembatalan, pembuat blok, dan ketersediaannya sendiri. Lacak hash lama dan baru pada setiap jalur tanpa menganggap penerimaan lokal telah menghapus pesaing, serta jangan mengirim kandidat ketiga yang memindahkan nilai secara membabi buta.
7. Rekonsiliasi pemenang dengan rantai kanonis. Verifikasi blok dan hash tanda terima, indeks transaksi, `status`, gas terpakai, harga gas efektif, log, nonce pengirim, saldo, dan keadaan kontrak pada tingkat finalitas yang dibutuhkan. Catat hash yang kalah sebagai digantikan, dibuang, atau masih teramati sesuai bukti, lalu ulangi analisis setelah reorganisasi.

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

## Contoh terhitung

- **Kenaikan pembelajaran untuk jenis 2 biasa.** Kandidat lama memiliki `maxFeePerGas = 40 gwei` dan `maxPriorityFeePerGas = 2 gwei`. Dalam konfigurasi pembelajaran Geth dengan kenaikan `10%`, ambang aritmetisnya adalah `44 gwei` dan `2.2 gwei`. Kandidat `44/2.1 gwei` tidak mencapai ambang tip; `44/2.2 gwei` mencapai kedua ambang pembelajaran. Dengan biaya dasar `32 gwei` dan gas terpakai `21,000`, harga efektifnya `34.2 gwei`, biaya total `718,200 gwei = 0.0007182 ETH`, pembakaran biaya dasar `0.000672 ETH`, dan tip `0.0000462 ETH`. Penerimaan aktual bergantung pada implementasi, versi, dan pembulatan wei bilangan bulat.
- **Sensitivitas biaya dasar.** Penggantian memiliki batas `66/4.4 gwei`. Pada biaya dasar `60 gwei`, harga efektifnya `min(66, 60 + 4.4) = 64.4 gwei`. Pada biaya dasar `65 gwei`, harga efektifnya `66 gwei` dan tip efektif hanya `1 gwei`. Pada biaya dasar `67 gwei`, berlaku `66 < 67`, sehingga kandidat tidak layak di bawah batas tersebut meskipun lolos uji kenaikan lokal.
- **Perlombaan pembatalan.** Transaksi asli dengan nonce `20` mengirim `5 ETH` ke pedagang. Jika transaksi asli menang dengan biaya `21,000 * 42 gwei = 0.000882 ETH`, pedagang menerima `5 ETH` dan transaksi pembatalan menjadi nonce-terlalu-rendah. Jika transfer bernilai nol ke alamat sendiri menang dengan biaya `21,000 * 45 gwei = 0.000945 ETH`, transaksi itu memakai nonce `20` dan mencegah transaksi asli masuk kemudian ke riwayat kanonis yang sama. Hasilnya tidak dapat diketahui hanya dari klik tombol Batalkan.
- **Batas pool blob.** Kandidat lama jenis 3 mempunyai batas biaya eksekusi `100 gwei`, batas tip `3 gwei`, dan batas biaya blob `20 gwei`. Dalam konfigurasi pembelajaran pool blob Geth dengan kenaikan `100%`, ambang aritmetisnya `200/6/40 gwei`. Kandidat `200/6/39 gwei` tidak mencapai batas blob; `200/6/40 gwei` mencapai ketiga ambang pembelajaran, tetapi tetap memerlukan sidecar, nonce, saldo, dan penerimaan pool yang valid. Angka ini bukan aturan transaksi biasa atau klien lain.

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

## Risiko

- Memilih chain ID atau jaringan yang salah.
- Memilih pengirim atau nonce akun yang salah.
- Memakai blok kepala, biaya dasar, atau nonce kanonis yang usang.
- Mencoba mengganti setelah transaksi asli masuk atau menjadi final.
- Menerapkan aturan txpool biasa pada `UserOperation` ERC-4337.
- Menganggap klien, penyedia, versi, atau konfigurasi lain memakai kebijakan yang sama.
- Gagal memenuhi ambang kenaikan akibat pembulatan wei bilangan bulat.
- Menaikkan hanya satu kolom biaya EIP-1559 yang diwajibkan.
- Menetapkan `maxFeePerGas` di bawah biaya dasar blok kandidat.
- Mengabaikan batas biaya blob, sidecar, atau aturan khusus pool blob.
- Saldo tidak cukup untuk nilai dan biaya maksimum yang diotorisasi.
- Tanda tangan, jenis, enkode, gas intrinsik, atau domain jaringan tidak valid.
- Tidak sengaja mengubah tujuan, nilai, calldata, daftar akses, atau hash blob.
- Transaksi pembatalan publik kalah dalam perlombaan inklusi.
- Transaksi lama tetap berada pada node lain atau masukan pembuat blok.
- Relay privat membocorkan, menyensor, membuang, atau gagal membatalkan pengiriman.
- Penyiaran ulang publik mengungkap niat kepada frontrunning, serangan sandwich, atau MEV lain.
- Celah nonce memblokir transaksi kemudian atau memicu transfer duplikat.
- Penggantian masuk tetapi revert atau kehabisan gas sambil memakai nonce dan biaya.
- Kesalahan reorganisasi, finalitas, atau riwayat tanda terima menghidupkan kembali atau salah mengklasifikasikan kandidat.

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

## Kesalahpahaman umum

- Kandidat berbiaya lebih tinggi menghapus transaksi lama secara global.
- Dua transaksi dengan angka nonce sama saling menggantikan meski pengirimnya berbeda.
- Tombol Batalkan pada dompet membalik transaksi yang sudah masuk.
- Penerimaan penggantian oleh satu node membuktikan pembuat blok akan memasukkannya.
- Aturan kenaikan 10% universal mencakup semua klien, transaksi blob, relay privat, dan `UserOperation`.

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

## Topik terkait

- [Mempool dan pool transaksi](/id/crypto/mempool/)
- [Biaya gas](/id/crypto/gas-fee/)
- [Nonce akun](/id/crypto/nonce-crypto/)

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

## Sumber

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

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