Submarine Swap umožňuje zaplatit přes Lightning Network pomocí bitcoinů, které máte na blockchainu. Blockchain je veřejná historie bitcoinových transakcí; Lightning slouží k rychlým platbám, při nichž se každá platba nemusí zapisovat do této historie samostatně. Obrácený směr se nazývá Reverse Submarine Swap. Nekupujete jinou měnu: po odečtení poplatků přesouváte hodnotu mezi těmito dvěma způsoby placení. Obě platby spojují kryptografické a časové podmínky. Aplikace je musí ověřit a výměnu včas dokončit, případně zajistit vrácení peněz.
Anna drží bitcoin v běžné peněžence a obchod jí vystaví Lightning fakturu, tedy žádost o platbu. Běžný swap umožní uzamknout bitcoin na blockchainu pod dohodnutými podmínkami a služba za něj zaplatí fakturu. Opačná situace nastane, když chce Anna část zůstatku z Lightningu převést na blockchainovou adresu: to je Reverse Submarine Swap, například Loop Out. Nemusí kvůli tomu zavírat své platební kanály. Výměna sama ale nevytváří peníze a dostupná cesta pro Lightning platbu zůstává nutná. [1] [4]
Představme si tajemství, jehož digitální otisk lze ověřit, ale z otisku jej nelze prakticky dopočítat. Tajná hodnota se zde jmenuje preimage a její digitální otisk je hash. Vypočítá se funkcí SHA256. Podmíněné platby HTLC používají tento otisk a časový limit. U obráceného swapu tajemství vytvoří Annina aplikace. Služba zatím drží Lightning platbu jako čekající a uzamkne odpovídající bitcoin na blockchainu. Když Anna prostředky vyzvedává, při operaci zvané claim odhalí tajemství na řetězci nebo je při spolupráci předá službě. Ta pak může dokončit navázanou platbu. Čekání samo není zaplacení. [1] [4]
Zpráva služby a peníze v cílové peněžence nejsou totéž. Dokumentace Boltz uvádí, že stav invoice.settled u obráceného swapu může přijít po předání preimage a vypořádání Lightning faktury. Služba přitom nesleduje, zda Annina aplikace skutečně odvysílala claim transakci. Je proto potřeba ověřit cílový výstup, tedy konkrétní část bitcoinů určenou její peněžence, a potřebná potvrzení v blocích. Blok je skupina transakcí přidaná do blockchainu. Zařazení transakce do bloku je jejím prvním potvrzením; každý další blok navázaný za ním přidává další potvrzení. Nejasný stav není dobrý důvod hned poslat stejnou platbu znovu. [1] [2]
U běžného swapu už může být Annin bitcoin uzamčený na blockchainu, i když faktura zaplacená není. Vrácení, označované refund, pak vyžaduje transakci připravenou a odeslanou její aplikací. Bez spolupráce služby se čeká na timelock, předem stanovenou časovou podmínku. U nevyřízené Lightning platby v obráceném směru se naopak mohou čekající HTLC zrušit a zůstatek uvolnit bez Anniny blockchainové refund transakce. To ale neznamená, že se po odhalení preimage už dokončená platba sama vrátí. Směr a aktuální fáze rozhodují. [1] [3]
Anna porovnává částku, kterou odešle, s částkou, která skutečně dorazí. Rozdíl mohou tvořit poplatky služby, směrování v Lightningu a transakcí na blockchainu. Neúspěšný běžný swap může přidat cenu refund transakce. Důležitý je i čas: zveřejněný claim může odhalit preimage dřív, než jej potvrdí blok. Dokumentace Loop upozorňuje, že před blížícím se timeoutem může klient zvýšit poplatek za sweep, transakci vyzvedávající prostředky, i nad původní limit. Kryptografické propojení tedy není slib okamžité, bezplatné či bezrizikové výměny. [5] [6]
Obnovovací slova jiné peněženky nemusejí obnovit rozpracovaný swap. Podle aplikace jsou potřeba refund klíč či rescue key a údaje o konkrétní výměně, včetně uzamčeného výstupu a časové podmínky. Boltz Swap Restore umí z vlastní zálohy odvodit klíče a dohledat příslušné swapy. K vyhledání používá xpub, rozšířený veřejný klíč: ten může odhalit historii, ale sám neumí podepisovat ani utrácet. Soukromý klíč je tajná hodnota, kterou aplikace používá k podpisu transakce podle příslušných podmínek. Tyto klíče zůstávají v zařízení. Co záloha obnoví a kde se uchovává, má být jasné před odesláním peněz. [7] [3]
Uživatel nemá ručně počítat kryptografické podmínky, ale aplikace je musí zkontrolovat za něj. Nestačí důvěřovat adrese vrácené rozhraním API, kterým si programy vyměňují data. Klient ověřuje síť, částky a poplatky, hash, klíče i časové podmínky. Musí sedět také skript, tedy pravidla utracení, nebo strom těchto pravidel v Taproot, a adresa z nich odvozená. Lightning faktura musí odpovídat dohodnutému otisku a částce. Správný mechanismus nezachrání program, který pošle peníze jinam. [2]
Taproot umožňuje při spolupráci vytvořit pomocí MuSig2 společný podpis obou stran. Tato key-path cesta může být levnější a nemusí veřejně odhalit podmínky swapu. Aplikace však potřebuje i script-path cestu, která příslušné podmínky použije přímo, pokud partner odmítne spolupracovat: podle směru pro claim nebo refund. U neúspěšného běžného swapu může společně podepsaný refund vrátit peníze dříve. Pokud je však Anna chce získat zpět bez spolupráce služby, musí počkat, až vrácení dovolí sjednaný timelock. Menší množství údajů na blockchainu navíc neznamená anonymitu vůči poskytovateli, který výměnu zprostředkoval. [3] [4]
Pro nejúplnější obraz čtěte toto heslo společně s Lightning Network, HTLC, Inbound Liquidity, Taproot, MuSig2, CLTV. Opačným směrem na něj odkazují také Lightningová likvidita, Inbound Liquidity, Boltz, Lightning Service Provider.