55 / 691HTLC

HTLC

Hashed Timelock Contract — syarat hash dan waktu

HTLC mensyaratkan pengetahuan preimage untuk pembayaran dan menyediakan jalur pengembalian dana dengan syarat waktu. Di Lightning, HTLC menghubungkan kewajiban antarkanal; kedaluwarsa saja tidak mengembalikan pembayaran atau menonaktifkan cabang preimage.

Hashed Timelock Contract menggabungkan syarat hash dengan kunci waktu. Lightning memakai payment_hash, jumlah, dan cltv_expiry untuk setiap HTLC. payment_preimage yang cocok memungkinkan pemenuhan kembali sepanjang rute; timeout menyediakan penyelesaian alternatif. Keamanan juga bergantung pada status kanal yang telah dikomit, tanda tangan, dan tindakan tepat waktu.

Penerima menyediakan payment_preimage sepanjang 32 byte dengan SHA-256 yang cocok dengan payment_hash. BOLT 11 menempatkan hash di kolom p invoice; hash saja tidak mengungkap rahasia. Preimage yang sama menghubungkan syarat beberapa HTLC berurutan. payment_secret di kolom s adalah nilai berbeda dan tidak menggantikan preimage. [BOLT 2 — Channel state and HTLC handling] [BOLT 11 — Payment hash and invoice expiry]

cltv_expiry pada Lightning menunjukkan tinggi blok absolut, bukan Unix timestamp atau masa berlaku invoice BOLT 11 dalam detik. Setelah syarat waktu terpenuhi, pembelanjaan melalui timeout mungkin tersedia. Preimage yang valid tidak otomatis berhenti berfungsi; dua pembelanjaan yang bersaing atas output sama tidak dapat sama-sama dikonfirmasi dalam satu rantai valid. Pengembalian dana tidak otomatis. [BOLT 2 — Channel state and HTLC handling] [BOLT 11 — Payment hash and invoice expiry] [BIP 65 — CHECKLOCKTIMEVERIFY]

update_add_htlc mengusulkan penambahan; update_fulfill_htlc atau update_fail_htlc menangani pemenuhan atau kegagalan. Satu pesan saja tidak menyelesaikan perubahan status: commitment_signed dan revoke_and_ack memastikan tanda tangan status baru dan pencabutan status lama di kedua pihak. Pembayaran biasa tidak membutuhkan catatan blok baru, tetapi pendanaan dan penutupan kanal menggunakan transaksi bitcoin. [BOLT 2 — Channel state and HTLC handling]

Dasar pesan update_add_htlc berisi channel_id, id, amount_msat, payment_hash, cltv_expiry, dan onion_routing_packet. amount_msat dinyatakan dalam millisatoshi. Node memeriksa batas kanal, likuiditas tersedia, dan syarat penerusan; HTLC keluar memiliki parameternya sendiri. Node tidak boleh menawarkan HTLC terkait sebelum penambahan HTLC masuk dikomit secara tidak dapat dicabut menurut BOLT 2. [BOLT 2 — Channel state and HTLC handling]

Node mendekripsi lapisan onion miliknya dan memverifikasi integritasnya. Pada rute biasa yang tidak dibutakan, node membandingkan amt_to_forward dan outgoing_cltv_value dengan jumlah masuk, biaya, dan selisih waktu yang disyaratkan. Paket tidak mengungkap seluruh rute kepadanya. Ini tidak meniadakan korelasi lalu lintas atau penarikan kesimpulan identitas lainnya; onion routing bukan jaminan anonimitas mutlak. [BOLT 4 — Onion routing and payload validation]

HTLC masuk harus kedaluwarsa lebih lambat daripada HTLC keluar yang terkait. Selisih cltv_expiry_delta memberi perantara waktu cadangan untuk memperoleh preimage, bertindak saat pihak lawan tidak tersedia, dan mendapat konfirmasi on-chain. Selisih ini memperhitungkan keterlambatan dan reorganisasi; jumlah blok tidak menjamin jumlah menit tetap. Cadangan terlalu kecil membahayakan dana. [BOLT 2 — Channel state and HTLC handling]

BOLT 3 membedakan output offered dan received serta jalur HTLC-success atau HTLC-timeout. Mengetahui hash saja tidak cukup: tanda tangan, preimage, dan syarat waktu yang sesuai tetap berlaku. Output lokal tahap kedua memiliki penundaan CSV sebesar to_self_delay, sedangkan kunci pencabutan yang benar memungkinkan pihak lawan memakai cabang penalti tanpa penundaan itu. Script tepatnya bergantung pada jenis kanal. [BOLT 3 — HTLC transaction scripts and trimming] [BIP 112 — CHECKSEQUENCEVERIFY]

Jika jumlah setelah biaya tahap kedua yang berlaku kurang dari dust_limit_satoshis, transaksi komitmen tidak membuat output HTLC. Aturannya bergantung pada jenis yang disepakati: option_anchors dan zero_fee_commitments tidak memiliki biaya tahap kedua tersebut; zero_fee_commitments dapat mengarahkan nilai yang dipangkas ke shared_anchor. Output yang tidak ada tidak dapat diklaim tersendiri on-chain. Jumlah seluruh HTLC semacam ini membentuk dust exposure. [BOLT 3 — HTLC transaction scripts and trimming] [BOLT 2 — Channel state and HTLC handling]

Rahasia yang sama menghubungkan syarat sepanjang rute, tetapi menerima tawaran saja tidak menjamin pembayaran selesai. Likuiditas, jumlah slot HTLC yang tersedia, biaya, kedaluwarsa, dan aturan perutean dapat menghentikan pembayaran. Pemenuhan atau kegagalan yang aman memerlukan urutan pembaruan yang benar dan penyelesaian tepat waktu. Mengungkap preimage tidak sama dengan mengonfirmasi transaksi bitcoin. [BOLT 2 — Channel state and HTLC handling] [BOLT 4 — Onion routing and payload validation]

Bandingkan amount_msat, payment_hash, dan cltv_expiry masuk serta keluar; verifikasi preimage dengan SHA-256. Pantau juga commitment_signed, revoke_and_ack, dan status akhir, bukan hanya satu pesan fulfill/fail. Untuk penegakan on-chain, dekode transaksi komitmen sebenarnya, periksa keberadaan output, cabang yang dipakai, dan HTLC-success/HTLC-timeout. Periksa tanda tangan, syarat waktu, dan konfirmasi; decoding saja tidak membuktikan validitas. [BOLT 2 — Channel state and HTLC handling] [BOLT 3 — HTLC transaction scripts and trimming]

Untuk gambaran yang lebih utuh, baca entri ini bersama Lightning Network, Payment Channel, Timelock, Hash kriptografis, CHECKLOCKTIMEVERIFY, CHECKSEQUENCEVERIFY. Entri ini juga dirujuk dari Timelock, Payment Channel, Likuiditas Lightning, Lightning Routing.

DOC · 001BOLT 2 — Channel state and HTLC handlingSpesifikasi ↗DOC · 002BOLT 3 — HTLC transaction scripts and trimmingSpesifikasi ↗DOC · 003BOLT 4 — Onion routing and payload validationSpesifikasi ↗DOC · 004BOLT 11 — Payment hash and invoice expirySpesifikasi ↗DOC · 005BIP 65 — CHECKLOCKTIMEVERIFYSpesifikasi ↗DOC · 006BIP 112 — CHECKSEQUENCEVERIFYSpesifikasi ↗
Utamakan sumber · Bukan nasihat investasi