165 / 691BOLT12

BOLT 12

Opakovaná nabídka, čerstvá faktura, samostatná platba

BOLT 12 odděluje zveřejněnou nabídku od vyžádání konkrétní faktury. Znovupoužitelný QR sám žádné peníze nepřevádí.

BOLT 12 je protokol vyjednání Lightning platby přes nabídku offer, požadavek invoice_request a fakturu invoice. Nabídku lze použít opakovaně, ale každá platba má vlastní podmínky a ověřený výsledek.

Příjemce zveřejní offer; plátce odešle invoice_request a obdrží čerstvou invoice. Teprve potom může zaplatit. Nabídka tak může sloužit více lidem či opakovaným platbám. Získání faktury, například přes fetchinvoice, není její zaplacení a zveřejněný QR není trvalé oprávnění k inkasu. [BOLT 12 — Negotiation protocol] [Core Lightning — Fetching an invoice] [BOLT 12 — Project overview]

BOLT 12 ukládá pole jako TLV. Textová nabídka má prefix lno, požadavek lnr; znaková sada připomíná Bech32, ale nemá jeho koncový kontrolní součet. Samotná offer není podepsaná. Podpisy BIP340 Schnorr v požadavku a faktuře ověřují Merkle kořen příslušných polí, nikoli totožnost obchodníka. [BOLT 12 — Negotiation protocol]

Peněženka porovná převzatá pole invoice_request s invoice, částku, síť a podpis. Klíč invoice_node_id musí odpovídat offer_issuer_id, nebo příslušnému koncovému blinded_node_id. Platný cizí podpis nestačí. Merkle struktura umožňuje selektivní důkazy polí, ne libovolnou změnu podepsaných podmínek. [BOLT 12 — Negotiation protocol]

Bitcoinová invoice_amount je v msat; 1000 msat je jeden satoshi. Offer může uvádět jinou měnu přes offer_currency podle ISO 4217; například USD používá centy. Do ceny vstupuje množství a případný přepočet při vystavení faktury. Je-li určeno invreq_amount, faktura se musí shodovat; jinak se kontroluje autorizovaný rozsah. [BOLT 12 — Negotiation protocol] [Core Lightning — Fetching an invoice]

offer_paths vede zprávu s žádostí; invoice_paths vede platbu. Současná invoice musí obsahovat blinded paths a odpovídající invoice_blindedpay, i když cesta vede jen přímo k příjemci. Skrytí trasy omezuje zveřejnění topologie, ale neslibuje úplnou anonymitu, dostupnost ani likviditu. Vyžádání faktury nepotřebuje běžný HTTPS platební server. [BOLT 12 — Negotiation protocol] [BOLT 4 — Route blinding]

offer_absolute_expiry omezuje používání nabídky. invoice_created_at spolu s invoice_relative_expiry omezuje konkrétní fakturu; bez druhého pole platí 7200 sekund. Opakovaná nabídka tedy neznamená nekonečnou platnost faktury. Neznámé sudé bity povinných funkcí se odmítají, neznámé liché se ignorují. [BOLT 12 — Negotiation protocol]

U refundace může ten, kdo chce peníze poslat, zveřejnit invoice_request bez offer. Příjemce peněz odpoví vlastní invoice; plátce musí ověřit zamýšleného příjemce, případně mimo protokol. Jde o novou platbu, ne zrušení původní. Pouhé naskenování žádosti nepředstavuje důkaz nároku ani schválení platby. [BOLT 12 — Negotiation protocol]

Uchovejte invoice, stav platby a odpovídající preimage. Preimage dokládá vypořádání faktury, sám neurčuje, který člověk platil. Po ztrátě odpovědi ověřte stav před dalším placením. Podpora nabídek neznamená podporu každého rozšíření či automatických opakovaných plateb; zvlášť ověřte příjem, odesílání a oprávnění aplikace. [BOLT 12 — Negotiation protocol] [Core Lightning — Fetching an invoice]

Pro nejúplnější obraz čtěte toto heslo společně s BOLT 11, Lightning Network, Lightning Routing, Soukromí v Bitcoinu, Satoshi, LNURL. Opačným směrem na něj odkazují také BOLT 11, LNURL, Rusty Russell.

DOC · 001BOLT 12 — Negotiation protocolSpecifikaceDOC · 002BOLT 4 — Route blindingSpecifikaceDOC · 003Core Lightning — Fetching an invoiceDokumentaceDOC · 004BOLT 12 — Project overviewPrimární zdroj
Primární zdroje · Nejde o investiční doporučení