Gossip vytvorí neúplnú mapu
Gossip je šírenie podpísaných správ medzi uzlami a BOLT 7 určuje oznámenia uzlov aj verejných kanálov. Správa channel_update opisuje jeden smer kanála a uvádza jeho stav, poplatky aj povolené sumy HTLC. Obsahuje tiež požadovaný rozdiel CLTV.
Peňaženka si zo správ vytvorí graf, teda mapu uzlov a spojení. Verejnú kapacitu kanála možno skontrolovať na blockchaine, ale aktuálne rozdelenie zostatkov sa nezverejňuje. To sa nazýva smerová likvidita.
Súkromné kanály navyše v globálnej mape chýbajú, takže graf ukazuje iba možné cesty. Nezaručuje priechod konkrétnej sumy v danom okamihu.
Trasa sa počíta od cieľa späť
Odosielateľ pozná cieľovú sumu a konečnú expiráciu, ktorá určuje časový limit HTLC. Trasu zvyčajne počíta od príjemcu späť a pri každom kroku pripočíta poplatok ďalšieho uzla. Pridá aj jeho CLTV delta, teda časovú rezervu.
Prvý HTLC preto nesie väčšiu sumu a má neskoršiu expiráciu než posledný. Najlacnejšia cesta nemusí byť najspoľahlivejšia a peňaženka môže hodnotiť počet hopov aj časové riziko. Zohľadňuje limity aj výsledky minulých pokusov.
Výber trasy nie je konsenzuálne pravidlo Bitcoinu. Každá peňaženka môže používať vlastné skóre. Preto môžu dve peňaženky zvoliť inú cestu.
Onion odhaľuje iba ďalší krok
Onion routing znamená cibuľové, teda vrstvené smerovanie. BOLT 4 naň používa paket Sphinx. Každý medziuzol odstráni iba svoju kryptografickú vrstvu. Zistí ďalší kanál, sumu a expiráciu. Potom zmenený paket odošle ďalej.
Medziuzol automaticky nevidí celú trasu. Nečíta ani pokyny určené ostatným uzlom. Napriek tomu nejde o dokonalú anonymitu. Prvý hop pozná odosielajúceho peeru. Posledný hop pozná smer k príjemcovi.
Pozorovateľ môže porovnávať časy a sumy. Pomôcť mu môže aj topológia alebo viac kontrolovaných uzlov. Informácie môžu vytvoriť aj opakované neúspešné pokusy.
Neúspech je súčasť hľadania
Platba často zlyhá pre nedostatok smerovej likvidity. Príčinou môže byť aj vypnutý uzol. Ďalším dôvodom je zastaraný channel_update. Zlyhať môže limit HTLC, poplatok alebo časový parameter.
Chyba sa vracia v zašifrovanej správe. Odosielateľ podľa nej upraví svoj lokálny pohľad. Potom môže skúsiť inú trasu. Neúspešný pokus pritom nemá vyplatiť iba časť cesty.
MPP rozdelí jednu platbu na viac častí. Skratka znamená multi-part payment. Každá časť potrebuje vlastnú priechodnú trasu. Príjemca musí daný spôsob platby podporovať. Rozdelenie zvyšuje šancu na úspech, nie záruku.