52 / 691BIP125

Replace-by-Fee (RBF)

Mengganti transaksi belum terkonfirmasi dengan versi berbiaya lebih tinggi

Replace-by-Fee (RBF) adalah kebijakan lokal mempool dan penyebaran transaksi Bitcoin. Kebijakan ini memungkinkan pengganti yang berkonflik dengan transaksi belum terkonfirmasi diterima jika memenuhi aturan biaya, keabsahan, dan perlindungan DoS node.

RBF menangani transaksi sebelum konfirmasi. BIP125 menjelaskan sinyal opt-in dan aturan penggantian terkait Bitcoin Core 0.12. Full-RBF tidak memerlukan sinyal itu: Core 24 membuatnya dapat dikonfigurasi, Core 28 mengaktifkannya secara bawaan, dan Core 29 menghapus sakelar mempoolfullrbf. RBF tidak mengubah konsensus atau blok terkonfirmasi; ia memengaruhi transaksi konflik sah yang belum terkonfirmasi mana yang disimpan dan disebarkan node.

RBF mengganti satu atau beberapa transaksi belum terkonfirmasi dalam mempool yang berbagi setidaknya satu input yang dibelanjakan. Transaksi yang sudah terkonfirmasi dalam blok tidak ditulis ulang. Pengganti mengubah data transaksi dan memiliki txid berbeda; ia harus memenuhi sendiri syarat pembelanjaan input, termasuk tanda tangan yang diperlukan. [BIP 125 — Opt-in Full Replace-by-Fee Signaling] [Bitcoin Core v30.0 — Mempool replacement policy]

BIP125 menjelaskan sinyal opt-in eksplisit jika setidaknya satu input memiliki nSequence di bawah 0xfffffffe, serta pewarisan sinyal dari leluhur belum terkonfirmasi. Ini kebijakan historis, bukan syarat konsensus. Full-RBF memungkinkan penilaian pengganti tanpa sinyal tersebut; ketiadaannya tidak menjamin pembayaran tak bisa diganti. [BIP 125 — Opt-in Full Replace-by-Fee Signaling] [Bitcoin Core 0.12.0 release notes]

RBF merupakan kebijakan lokal mempool dan relay, bukan aturan konsensus. Penambang dapat memilih transaksi konflik yang sah menurut konsensus meski node lain sebelumnya tidak menyimpannya dalam mempool. Full Node memvalidasi blok menurut konsensus, terlepas dari pilihan mempool sebelumnya. [BIP 125 — Opt-in Full Replace-by-Fee Signaling] [Bitcoin Core 29.0 release notes]

Kebijakan Bitcoin Core 30 untuk satu transaksi pengganti juga membatasi input baru belum terkonfirmasi dan jumlah transaksi yang dikeluarkan. Pengganti harus memenuhi aturan standar, relay, dan keabsahan, bukan sekadar membelanjakan UTXO yang sama. Batas melindungi CPU, memori, dan bandwidth; aturan penggantian paket harus dinilai terpisah sesuai versi node. [Bitcoin Core v30.0 — Mempool replacement policy]

Biaya total adalah jumlah satoshi; tarif biaya adalah jumlah per byte virtual dalam sat/vB. Untuk penggantian tunggal Core 30, biaya harus menutup jumlah biaya seluruh transaksi yang dikeluarkan, ditambah biaya menurut incrementalrelayfee untuk ukuran pengganti. Tarifnya harus melampaui tarif transaksi yang berkonflik langsung. Tarif lebih tinggi saja atau sekadar menambah satoshi tidak cukup; incrementalrelayfee bawaan Core 30 adalah 0,1 sat/vB, tetapi pengaturan node dapat berbeda. [Bitcoin Core v30.0 — Mempool replacement policy] [Bitcoin Core 30.0 release notes]

Mengganti transaksi induk dapat mengeluarkan turunannya yang membelanjakan output induk dari mempool. Jadi perbandingan tidak selalu hanya dua transaksi. Untuk penggantian tunggal, Core 30 membatasi jumlah hitungan turunan transaksi yang berkonflik langsung, termasuk masing-masing transaksi itu sendiri, hingga 100; turunan bersama bisa dihitung lebih dari sekali. Biaya dan hubungan paket dapat memengaruhi keberhasilan penggantian. [Bitcoin Core v30.0 — Mempool replacement policy]

RBF menaikkan biaya dengan mengganti transaksi pembelanjaan itu sendiri. Child Pays for Parent (CPFP) mempertahankan induk dan menambah anak dengan biaya cukup agar penambang menilai tarif gabungannya. Pilihan bergantung pada output yang dikuasai, kemampuan menandatangani input yang diperlukan, dan graf transaksi; CPFP tidak mengganti induk. [Bitcoin Core v30.0 — Mempool replacement policy]

Pembelanjaan ganda adalah upaya konflik membelanjakan UTXO yang sama. RBF adalah cara node memilih di antara transaksi belum terkonfirmasi tersebut menurut kebijakannya. Pengganti bisa menaikkan biaya secara jujur atau mengalihkan pembayaran belum terkonfirmasi. RBF tidak memberi orang lain hak membelanjakan input tanpa memenuhi syaratnya. [BIP 125 — Opt-in Full Replace-by-Fee Signaling]

Zero-conf berarti pembayaran tanpa konfirmasi, bukan tanpa konfigurasi. Bitcoin tidak menjamin transaksi pertama yang dilihat pedagang akan masuk blok. Full-RBF memperjelas batas ini: menerima zero-conf adalah keputusan risiko usaha, bukan penyelesaian Bitcoin yang final. [BIP 125 — Opt-in Full Replace-by-Fee Signaling]

getmempoolentry menampilkan keadaan transaksi belum terkonfirmasi; testmempoolaccept menguji satu calon pengganti bertanda tangan terhadap mempool dan aturan node saat ini tanpa menyiarkannya. Hasil tidak menjanjikan penerimaan node lain atau penambangan. Core 28 mengaktifkan full-RBF lewat setelan bawaan mempoolfullrbf; Core 29 menghapus opsi itu. getmempoolinfo memberikan parameter biaya, tetapi kolom fullrbf ditandai usang dalam Core 30; selalu periksa versi dan konfigurasi sebenarnya. [Bitcoin Core 28.0 release notes] [Bitcoin Core 29.0 release notes] [Bitcoin Core getmempoolinfo RPC] [Bitcoin Core testmempoolaccept RPC] [Bitcoin Core getmempoolentry RPC] [Bitcoin Core v30.0 — Mempool RPC implementation]

Untuk gambaran yang lebih utuh, baca entri ini bersama Biaya transaksi, Mempool, CPFP (Child Pays for Parent), Pembelanjaan ganda, Konfirmasi, Fee Rate. Entri ini juga dirujuk dari Output kembalian, Konfirmasi, Pembelanjaan ganda, Fee Rate.

DOC · 001BIP 125 — Opt-in Full Replace-by-Fee SignalingSpesifikasi ↗DOC · 002Bitcoin Core v30.0 — Mempool replacement policyDokumentasi ↗DOC · 003Bitcoin Core 0.12.0 release notesDokumentasi ↗DOC · 004Bitcoin Core 24.0.1 release notesDokumentasi ↗DOC · 005Bitcoin Core 28.0 release notesDokumentasi ↗DOC · 006Bitcoin Core 29.0 release notesDokumentasi ↗DOC · 007Bitcoin Core getmempoolinfo RPCDokumentasi ↗DOC · 008Bitcoin Core testmempoolaccept RPCDokumentasi ↗DOC · 009Bitcoin Core 30.0 release notesDokumentasi ↗DOC · 010Bitcoin Core getmempoolentry RPCDokumentasi ↗DOC · 011Bitcoin Core v30.0 — Mempool RPC implementationSumber primer ↗
Utamakan sumber · Bukan nasihat investasi