710 / 736SPL

Splicing

Menambah atau menarik dana dari kanal Lightning yang sudah ada

Untuk menambah bitcoin ke kanal Lightning atau menarik sebagian dananya, Anda tidak selalu perlu menutup kanal lalu membuka yang lain. Splicing memindahkan kanal yang ada ke output baru dalam transaksi Bitcoin. Kedua pihak menyepakati perubahan itu, dan kanal dapat terus beroperasi.

Splicing adalah perubahan pendanaan kanal Lightning yang dilakukan bersama: transaksi on-chain baru membelanjakan output pendanaan lama dan membuat output baru. Kedua pihak juga menyiapkan commitment transactions yang sesuai, yakni transaksi bertanda tangan untuk menutup kanal jika diperlukan. Kanal yang sama tetap berlanjut; ini bukan penutupan biasa yang diikuti pembukaan kanal lain secara terpisah.

Splice-in menambah saldo pihak yang menyetor dana, sedangkan splice-out memindahkan sebagian saldonya ke output di luar kanal. Perubahan kontribusi juga memengaruhi kapasitas total; jika penambahan dan penarikan saling menyeimbangkan, kapasitas dapat tetap sama. Namun, tempat dana kanal terkunci di Bitcoin selalu berpindah ke output pendanaan yang berbeda. Perubahan ini tidak memerlukan penutupan bersama seperti biasa lalu pembukaan kanal lagi. [1]

Kanal terlebih dahulu memasuki quiescence, yaitu penghentian singkat pembaruan yang tidak dapat berjalan bersamaan dengan operasi ini. Pihak pemrakarsa mengirim splice_init dan pihak lain membalas splice_ack. Transaksi yang disusun bersama harus memuat tepat satu input yang membelanjakan output pendanaan lama dan tepat satu output baru yang mendanai kanal ini; input dan output lain dapat digunakan untuk menambah atau menarik dana. Setelah itu, commitment_signed dan tx_signatures membawa tanda tangan yang diperlukan. [1]

Setelah tanda tangan transaksi dipertukarkan, pembayaran dapat dilanjutkan meskipun jumlah konfirmasi yang dapat diterima belum tercapai. Karena itu, node secara bersamaan menyimpan status komitmen untuk pendanaan lama, splice baru, dan kemungkinan transaksi pengganti RBF. Pembayaran harus sah dalam semua versi yang masih aktif. Jika koneksi terputus, status operasi yang belum selesai harus dipulihkan dengan benar; menyimpan transaksi terakhir saja tidak cukup. [1] [2]

Kedua node harus menegosiasikan dukungan option_splice dan menyetujui transaksi, tarif biaya, serta kontribusi masing-masing. Pihak lain dapat menolak usulan melalui tx_abort. Sampai kedua pihak mengonfirmasi splice yang sama dengan splice_locked, setiap pembaruan baru harus mencakup seluruh commitment transactions yang aktif. Saldo pihak lain tidak dapat diubah sepihak. [1] [3]

Core Lightning mengaktifkan Splicing secara bawaan pada versi 26.04. Versi ini menambahkan perintah splicein dan spliceout serta kemampuan memindahkan dana antara dua kanal, yang disebut cross-splice. Meski begitu, versi node lawan dan jenis kanal yang didukung tetap menentukan. Nama fitur yang sama di dompet berbeda belum menjamin kemampuan yang sama atau kompatibilitas antardompet. [4]

Splicing tetap membuat transaksi Bitcoin, sehingga ada biaya on-chain, penantian konfirmasi, dan kemungkinan reorganisasi. Eclair, misalnya, menyediakan rbfsplice untuk menaikkan tarif biaya splice yang belum terkonfirmasi. Cadangan kanal, syarat input terkonfirmasi, batas kontribusi, batas percobaan RBF berulang, dan kondisi cadangan data perlu diperhatikan. Mode khusus option_zeroconf mengubah asumsi kepercayaan, dan protokol melarang RBF dalam mode tersebut. [1] [5]

Setelah splice terpilih mencapai kedalaman konfirmasi yang dapat diterima dan kedua pihak bertukar splice_locked untuk txid yang sama, versi lama serta kandidat yang tidak berhasil tidak perlu lagi dipertahankan. Funding outpoint, yaitu rujukan ke output transaksi tertentu, berubah; kapasitas berubah sesuai jumlah kontribusi bersih kedua pihak. Pada kanal publik, short_channel_id yang ditentukan oleh transaksi terkonfirmasi juga berubah, dan kedua pihak dapat menyiapkan announcement_signatures baru. [1]

Periksa dukungan kedua node, channel_id, tanda positif atau negatif dan besar funding_contribution_satoshis, tarif biaya, input, output, cadangan kanal, serta tanda tangan. Pantau txid seluruh versi RBF. Setelah selesai, cocokkan splice_locked, funding outpoint baru, dan short_channel_id untuk kanal publik. Pastikan pula HTLC kembali beroperasi dan output penarikan benar-benar menjadi milik dompet yang dituju. [2] [1]

Untuk gambaran yang lebih utuh, baca entri ini bersama Payment Channel, Lightning Network, UTXO, Likuiditas Lightning, Replace-by-Fee (RBF), Price Channel. Entri ini juga dirujuk dari Likuiditas Lightning.

01Apakah Splicing sama dengan menutup lalu membuka kanal?

Tidak. Splicing juga membuat transaksi Bitcoin, tetapi kedua pihak bersama-sama memindahkan kanal yang ada ke output pendanaan baru. Dalam penutupan biasa, kanal lama berakhir dan pembukaan berikutnya membuat kanal yang terpisah.

02Apakah dana bisa ditambah maupun ditarik?

Ya. Kontribusi positif adalah splice-in, sedangkan kontribusi negatif adalah splice-out. Kedua pihak harus menyetujui perubahan, dan transaksi harus mematuhi saldo, aturan cadangan kanal, serta biaya. Kapasitas akhirnya ditentukan oleh jumlah kontribusi bersih kedua pihak.

DOC · 001BOLT 2 — Channel SplicingSpesifikasi DOC · 002BOLT 2 — Splicing Test VectorsSpesifikasi DOC · 003BOLT 9 — Assigned Feature FlagsSpesifikasi DOC · 004Core Lightning v26.04 release notesSumber primer DOC · 005Eclair API — Splice-in, Splice-out and RBF SpliceDokumentasi
Direvisi: Utamakan sumber · Bukan nasihat investasi