53 / 691CPFP

CPFP (Child Pays for Parent)

Transaksi anak membayar untuk transaksi induk

Child Pays for Parent (CPFP) meningkatkan insentif penambang untuk mengonfirmasi transaksi berbiaya rendah: transaksi baru membelanjakan output-nya dan membayar cukup biaya untuk menaikkan tarif gabungan transaksi yang saling bergantung.

CPFP tidak mengubah atau mengganti transaksi induk yang belum terkonfirmasi. CPFP menambahkan anak yang biayanya dapat mendukung penyertaan induk ke dalam blok secara ekonomi. Induk harus sudah dikonfirmasi sebelumnya atau ditempatkan sebelum anak dalam blok yang sama. Hasil bergantung pada tarif gabungan, kemampuan membelanjakan output induk, kebijakan node, dan pilihan penambang.

CPFP mempertahankan transaksi induk berbiaya rendah dan membelanjakan output-nya dalam anak dengan tarif biaya lebih tinggi. Selama induk belum terkonfirmasi, penyertaan anak juga memerlukan induk dan leluhur belum terkonfirmasi lain yang dibutuhkan. Penambang dapat memperoleh biaya gabungan mereka; induk sendiri juga dapat dikonfirmasi tanpa anak. [Bitcoin Core v31.0 — Package mempool acceptance] [Bitcoin Developer Guide — Transactions]

Untuk pasangan sederhana tanpa leluhur belum terkonfirmasi lainnya, jumlahkan biaya induk dan anak dalam satoshi, lalu bagi dengan jumlah ukuran virtual mereka dalam vB. Hasilnya adalah tarif dalam sat/vB, bukan total biaya. Biaya anak yang lebih tinggi hanya membantu jika tarif gabungannya kompetitif; leluhur tambahan yang dibutuhkan mengubah perhitungan. Penerimaan paket lokal tidak menghitung ulang transaksi yang sudah diterima di mempool dan dapat memakai biaya yang dimodifikasi, sehingga tarif yang dilaporkan tidak selalu sama dengan perhitungan penambangan sederhana ini. [Bitcoin Core v31.0 — Package mempool acceptance]

CPFP biasa memerlukan kemampuan membelanjakan sedikitnya satu output induk. Pengirim dapat memakai output kembalian, yaitu change; penerima dapat memakai output pembayaran yang diterimanya. Syarat pembelanjaan, termasuk tanda tangan yang diperlukan, harus dipenuhi. Sekadar melihat atau memeriksa output tidak memberikan kewenangan tersebut. [Bitcoin Developer Guide — Transactions]

RBF membuat pengganti yang berkonflik dan berbagi sedikitnya satu input yang dibelanjakan dengan transaksi asli; keseluruhan kumpulan input tidak harus identik. CPFP mempertahankan induk dan menambahkan anak. RBF memerlukan pemenuhan syarat input pengganti, sedangkan CPFP biasa memerlukan pemenuhan syarat pembelanjaan output induk. Keduanya mengubah graf transaksi dengan cara berbeda. [Bitcoin Core v31.0 — Package mempool acceptance]

Konsensus menentukan keabsahan transaksi dan blok. Kebijakan mempool menentukan penerimaan dan penerusan lokal; aturan penambang menentukan pilihan untuk blok kandidat. CPFP tidak mengubah konsensus. Paket yang menguntungkan secara ekonomi dapat melanggar kebijakan lokal, dan penerimaan oleh satu node tidak mengikat node atau penambang lain. [Bitcoin Core v31.0 — Package mempool acceptance] [Bitcoin Developer Guide — Transactions]

Bitcoin Core 26 menambahkan RPC submitpackage dan package CPFP: anak dapat membantu induk di bawah tarif minimum mempool yang dinamis, tetapi saat itu tidak di bawah tarif minimum penerusan. Batasan itu tidak berlaku selamanya. Core 31 mengizinkan induk di bawah minrelaytxfee, termasuk biaya nol, pada penerusan paket satu induk dan satu anak yang didukung, juga untuk transaksi non-TRUC; induk belum terkonfirmasi lainnya dari anak harus sudah berada di mempool. Penerimaan lokal tetap tidak menjamin penyebaran yang sama di seluruh jaringan. [Bitcoin Core 26.0 release notes] [Bitcoin Core 31.0 release notes]

Batas melindungi memori, CPU, dan bandwidth. Core versi lama membatasi jumlah dan ukuran leluhur serta turunan; Core 31 mengganti batas mempool itu dengan batas cluster yang terhubung. Batas paket terpisah tetap berlaku: dokumentasi Core 31 menetapkan paling banyak 25 transaksi dan bobot total 404000 WU. Bobot bukan ukuran virtual. Topologi salah, konflik, atau pelanggaran standar dapat menghalangi CPFP meskipun biayanya cukup. [Bitcoin Core 31.0 release notes] [Bitcoin Core v31.0 — Package mempool acceptance]

Bitcoin Core 31 memakai Cluster Mempool: cluster terdiri dari transaksi yang terhubung lewat hubungan induk–anak ke arah mana pun. Batas bawaan per cluster adalah 64 transaksi dan ukuran virtual 101 kB; keduanya dapat dikonfigurasi. Pengurutan memperhitungkan kelompok yang ditambang bersama, disebut chunks, dan tarif biayanya. CPFP carveout terdahulu memberi pengecualian terbatas atas batas turunan; Core 31 menghapusnya, sehingga batas jumlah transaksi cluster tidak dapat dilewati dengan cara ini. [Bitcoin Core 31.0 release notes] [Bitcoin Core v31.0 — Mempool terminology]

Tarif gabungan yang kompetitif dapat meningkatkan peluang konfirmasi, tetapi tidak memesan ruang pada blok berikutnya. Permintaan ruang blok, penyebaran transaksi, dan pilihan tiap penambang dapat berubah. CPFP meningkatkan insentif biaya, bukan menjamin waktu konfirmasi. [Bitcoin Core v31.0 — Package mempool acceptance]

Pada Core 31, RPC getmempoolentry menampilkan biaya, vsize, ketergantungan, dan data chunk; getmempoolcluster menampilkan cluster terkait. RPC testmempoolaccept menjalankan uji lokal tanpa menerima atau menyiarkan; untuk beberapa transaksi, leluhur harus mendahului turunan dan transaksi tidak boleh berkonflik satu sama lain atau dengan mempool. RPC submitpackage benar-benar mengajukan paket yang didukung untuk diterima ke mempool dan diteruskan, bukan sekadar menguji. Periksa hasil setiap transaksi, versi, dan konfigurasi; tidak ada hasil yang menjamin penambangan. [Bitcoin Core 31.0 release notes] [Bitcoin Core 31.0 — getmempoolentry RPC] [Bitcoin Core 31.0 — testmempoolaccept RPC] [Bitcoin Core 31.0 — submitpackage RPC] [Bitcoin Core v31.0 — Mempool RPC implementation]

Untuk gambaran yang lebih utuh, baca entri ini bersama Replace-by-Fee (RBF), Biaya transaksi, Fee Rate, Mempool, Transaksi, UTXO. Entri ini juga dirujuk dari Output kembalian, Konfirmasi, Pembelanjaan ganda, Fee Rate.

DOC · 001Bitcoin Core 26.0 release notesDokumentasi ↗DOC · 002Bitcoin Core 31.0 release notesDokumentasi ↗DOC · 003Bitcoin Core v31.0 — Package mempool acceptanceDokumentasi ↗DOC · 004Bitcoin Core v31.0 — Mempool terminologyDokumentasi ↗DOC · 005Bitcoin Developer Guide — TransactionsDokumentasi ↗DOC · 006Bitcoin Core 31.0 — getmempoolentry RPCDokumentasi ↗DOC · 007Bitcoin Core 31.0 — testmempoolaccept RPCDokumentasi ↗DOC · 008Bitcoin Core 31.0 — submitpackage RPCDokumentasi ↗DOC · 009Bitcoin Core v31.0 — Mempool RPC implementationSumber primer ↗
Utamakan sumber · Bukan nasihat investasi