165 / 691BOLT12

BOLT 12

Offer berulang, invoice baru, pembayaran terpisah

BOLT 12 memisahkan offer yang dipublikasikan dari permintaan invoice tertentu. QR yang dapat digunakan ulang tidak memindahkan uang sendiri.

BOLT 12 adalah protokol negosiasi pembayaran Lightning melalui offer, invoice_request dan invoice. Offer dapat digunakan ulang, tetapi setiap pembayaran punya syarat sendiri dan hasil yang perlu diverifikasi.

Penerima menerbitkan offer; pembayar mengirim invoice_request lalu menerima invoice baru. Setelah itu barulah ia dapat membayar. Offer dapat melayani banyak orang atau pembayaran berulang. Mengambil invoice, misalnya dengan fetchinvoice, tidak membayarnya; QR publik bukan izin pendebitan tetap. [BOLT 12 — Negotiation protocol] [Core Lightning — Fetching an invoice] [BOLT 12 — Project overview]

BOLT 12 menyimpan kolom sebagai TLV. Offer teks memakai prefiks lno dan permintaan lnr; alfabetnya menyerupai Bech32 tetapi tanpa checksum akhir. Offer sendiri tidak ditandatangani. Tanda tangan Schnorr BIP340 pada permintaan dan invoice memverifikasi akar Merkle kolomnya, bukan identitas pedagang. [BOLT 12 — Negotiation protocol]

Dompet membandingkan kolom invoice_request yang disalin ke invoice, jumlah, rantai dan tanda tangan. invoice_node_id harus cocok dengan offer_issuer_id atau blinded_node_id akhir yang sesuai. Tanda tangan sah yang tidak terkait tidak cukup. Struktur Merkle memungkinkan bukti kolom selektif, bukan perubahan bebas syarat bertanda tangan. [BOLT 12 — Negotiation protocol]

invoice_amount Bitcoin memakai msat; 1000 msat adalah satu satoshi. offer_currency dapat memakai mata uang lain menurut ISO 4217; USD, misalnya, memakai sen. Kuantitas dan konversi saat penerbitan memengaruhi harga. Jika invreq_amount ditetapkan, invoice harus cocok; jika tidak, rentang yang diizinkan diperiksa. [BOLT 12 — Negotiation protocol] [Core Lightning — Fetching an invoice]

offer_paths membawa pesan permintaan, invoice_paths membawa pembayaran. Invoice saat ini wajib berisi blinded paths dan invoice_blindedpay yang sesuai, bahkan jika jalurnya langsung ke penerima. Blinding mengurangi pengungkapan topologi tanpa menjamin anonimitas penuh, ketersediaan atau likuiditas. Permintaan invoice tidak membutuhkan server pembayaran HTTPS biasa. [BOLT 12 — Negotiation protocol] [BOLT 4 — Route blinding]

offer_absolute_expiry membatasi offer. invoice_created_at bersama invoice_relative_expiry membatasi invoice tertentu; tanpa kolom kedua berlaku 7200 detik. Offer reusable tidak memberi invoice masa berlaku tak terbatas. Bit wajib genap tak dikenal ditolak; bit ganjil tak dikenal diabaikan. [BOLT 12 — Negotiation protocol]

Untuk refund, pihak yang ingin mengirim uang dapat menerbitkan invoice_request tanpa offer. Penerima uang menjawab dengan invoice miliknya; pembayar harus memverifikasi penerima yang dituju, di luar protokol bila perlu. Ini pembayaran baru, bukan pembatalan yang lama. Memindai permintaan saja tidak membuktikan hak atau persetujuan pembayaran. [BOLT 12 — Negotiation protocol]

Simpan invoice, status pembayaran dan preimage yang cocok. Preimage membuktikan penyelesaian invoice tetapi sendiri tidak menentukan orang yang membayar. Jika jawaban hilang, periksa status sebelum membayar lagi. Dukungan offer tidak berarti semua ekstensi atau pembayaran rutin otomatis didukung; periksa penerimaan, pengiriman dan izin aplikasi secara terpisah. [BOLT 12 — Negotiation protocol] [Core Lightning — Fetching an invoice]

Untuk gambaran yang lebih utuh, baca entri ini bersama BOLT 11, Lightning Network, Lightning Routing, Privasi Bitcoin, Satoshi, LNURL. Entri ini juga dirujuk dari BOLT 11, LNURL.

DOC · 001BOLT 12 — Negotiation protocolSpesifikasi ↗DOC · 002BOLT 4 — Route blindingSpesifikasi ↗DOC · 003Core Lightning — Fetching an invoiceDokumentasi ↗DOC · 004BOLT 12 — Project overviewSumber primer ↗
Utamakan sumber · Bukan nasihat investasi