Blockchain/Tahap II · Mekanisme/2.2 Transaksi/Pelajaran 6
Replace-by-fee dan child-pays-for-parent
Menaikkan yuran dan serangan pinning
BahanPeneroka blok yang menunjukkan salasilah transaksi (contohnya, mempool.space)Dompet yang menyokong fee bumping (menaikkan yuran)
Ingin tahu
- Apa yang boleh dilakukan oleh penghantar apabila transaksi terhenti kerana yuran yang terlalu rendah?
- Bagaimanakah penerima boleh membayar untuk pembayaran yang belum mereka terima?
- Apa yang berlaku apabila pihak berlawan (counterparty) sengaja menjadikan dana anda tebusan di dalam mempool?
Teroka
- Transaksi yang disiarkan dengan kadar yuran yang terlalu rendah boleh kekal tanpa pengesahan selama beberapa hari, atau tercicir sepenuhnya daripada mempool, sementara transaksi yang membayar lebih tinggi disahkan di sekelilingnya. Dua teknik dapat menaikkan yuran efektif selepas penyiaran: penghantar boleh menggantikan transaksi tersebut dengan versi yang membayar lebih tinggi, atau penerima boleh membelanjakan salah satu outputnya dengan yuran yang tinggi supaya pelombong mengambil kedua-duanya sekali.
- Replace-by-Fee (RBF) membolehkan penghantar membetulkan yuran yang dianggarkan terlalu rendah. BIP125 memperkenalkan isyarat kebolehgantian melalui medan nSequence pada input. Di bawah peraturan penggantian Bitcoin Core, transaksi pengganti mesti membayar sekurang-kurangnya jumlah yuran bagi semua transaksi yang digantikannya ditambah yuran relay tambahan untuk saiznya sendiri, serta kadar yuran yang lebih tinggi daripada transaksi yang bercanggah secara langsung dengannya. Bitcoin Core versi 24 menambah penerimaan ‘full RBF’, yang menganggap transaksi boleh diganti walaupun tanpa isyarat eksplisit, dan ini menjadi tetapan lalai dalam versi 28.
- Child-Pays-For-Parent (CPFP) membantu penerima yang tidak dapat mengubah pembayaran masuk. Penerima mencipta transaksi baharu yang membelanjakan output belum disahkan daripada transaksi induk (parent) yang tersangkut, dan meletakkan yuran yang tinggi pada transaksi anak (child) ini. Pelombong menilai pakej gabungan berdasarkan kadar yuran leluhur (ancestor fee rate); memasukkan transaksi anak memaksa transaksi induk turut dimasukkan, kerana transaksi anak hanya sah jika induknya disahkan dalam blok yang sama atau lebih awal.
- Logik ekonominya bergantung pada nilai agregat. Jika transaksi induk membayar 1 sat/vB dan transaksi anak yang besar membayar 50 sat/vB, pakej gabungan ini menawarkan peluang yang menguntungkan bagi pelombong untuk mengesahkan kedua-duanya serentak. Ini membolehkan penerima secara berkesan mensubsidi pelombong untuk memasukkan pembayaran masuk mereka yang tersangkut, walaupun mereka belum mengawal syiling yang telah disahkan; ia memerlukan pengiraan tepat bagi jumlah berat dan yuran.
- Transaction pinning merupakan kelemahan kritikal dalam sistem ini. Pihak berlawan boleh sengaja mengekalkan transaksi berkadar yuran rendah yang mempunyai banyak transaksi keturunan (descendant) di dalam mempool untuk menghalang transaksi yang sensitif masa daripada disahkan sebelum tarikh akhirnya. Dalam protokol seperti Lightning Network, di mana penutupan saluran bergantung pada kunci masa (time-lock) tertentu, penyerang yang melakukan pinning terhadap transaksi penutupan anda berpotensi mencuri dana jika anda terpaksa menunggu melepasi tetingkap keselamatan anda.
- Para pembangun telah bertindak balas dengan pengecualian dasar (carve-out), transaksi versi 3 (‘TRUC’) dan package relay dalam keluaran Bitcoin Core terkini, serta ephemeral anchor (output pay-to-anchor) yang dilancarkan dalam Bitcoin Core 28 dan 29. Mekanisme ini membolehkan transaksi induk berkadar yuran rendah bergerak bersama transaksi anak berkadar yuran tinggi sebagai satu pakej. Langkah mitigasi ini mengurangkan, tetapi tidak menghapuskan sepenuhnya, keupayaan pihak berniat jahat untuk melakukan pinning terhadap transaksi yang sensitif masa; pinning menjejaskan dasar relay, bukan konsensus.
Fakta utama
- Child-pays-for-parent membolehkan penerima mempercepatkan pembayaran masuk dengan membelanjakan outputnya bersama yuran yang tinggi.
- BIP125 membenarkan isyarat kebolehgantian melalui medan nSequence dalam input transaksi.
- Transaksi pengganti RBF mesti membayar sekurang-kurangnya yuran bagi semua yang digantikannya, ditambah tambahan untuk saiznya sendiri, pada kadar yuran yang lebih tinggi.
- CPFP berfungsi kerana pelombong menilai pakej induk-anak berdasarkan gabungan kadar yuran leluhur (ancestor fee rate).
- Bitcoin Core versi 28 menjadikan penerimaan full RBF sebagai tingkah laku lalai bagi nod.
- Versi terkini Bitcoin Core menambah package relay dan transaksi TRUC (versi 3) untuk menjadikan fee bumping lebih andal terhadap pinning.
Latihan sembilan, enam, tiga, satu
9KumpulSenaraikan 9 senario di mana kelajuan pengesahan transaksi adalah penting: daripada pembelian runcit hingga penutupan saluran Lightning. Catatkan tarikh akhir dan akibatnya jika tarikh itu terlepas.
6KelompokkanKumpulkan 9 senario tersebut kepada 6 kumpulan berdasarkan siapa yang boleh mempercepatkan transaksi: penghantar, penerima, salah seorang daripada mereka, pihak ketiga, peraturan protokol, atau tiada sesiapa.
3SaringKurangkan 6 kumpulan tersebut kepada 3 sebab asas mengapa sesuatu transaksi mungkin kekal tersangkut dalam mempool melebihi masa pengesahan yang dijangkakan.
1KristalkanTulis 1 ayat yang menerangkan bagaimana CPFP mewujudkan kebergantungan kewangan antara dua pihak yang tidak mempercayai satu sama lain.
Semakan fakta
Tarikh, angka dan dakwaan telah disemak berbanding dengan sumber yang diterbitkan yang disenaraikan di bawah.