Jak funguje Lightning Network #5: Routing, druhá část

Jak funguje Lightning Network #5: Routing, druhá část

Minule jsme přišli na to, jak využít jiného uzlu pro odeslání platby, abychom si nemuseli otevírat kanál s každým, s kým hodláme navázat platební vztah. Dnes se podíváme na celou síť vytvořenou z takových kanálů.

Zdroj: https://www.skalex.io/lightning-network/

Tvorba sítě

Cesty plateb (routy). Zdroj: https://atomicwallet.io/lightning-network

Uzly Lightning sítě jsou všem viditelné, ale transakce, které přes ně jsou – ty jsou při správné konfiguraci naprosto nevysledovatelné. Chcete-li zaplatit hodně vzdálenému uzlu, algoritmus vašeho Lightning klienta nalezne nejvhodnější cestu (routu) a uzly upozorní. Předpokládá se, že zprostředkovávající uzly přijmou výzvu s otevřenou náručí, protože existuje tzv. Lightning fee (poplatek) proti spamu.

Když jsem na začátku celého Lightning seriálu mluvil o podobnosti s internetem, měl jsem na mysli právě hledání cesty pro průchod, konkrétně transakčních, dat. U internetu jde o pakety a routery a data si také hledají tu nejrelevantnější cestičku (ony samy ne – síťové huby je posílají tak, aby to bylo co nejefektivnější). Routování Lightning sítě je totožné. Podrobně si však routing algoritmus probereme později.

Druh sítě

Zdroj: https://theripplecryptocurrency.com/bitcoin-lightning-network/

Lightning Network je síť distribuovaná, protože se neočekává, že by chtěl být směrovacím uzlem vybírajícím poplatky úplně každý. Naprostá otevřenost a necenzurovanost však dává systému naprostou volnost – nové uzly si může založit kdokoliv, čímž se zvyšuje konkurence. Co se týče decentralizace, tak ano, LN není úplně decentralizovaná síť.

Poplatky

Poplatky jsem do schémat zatím nezakomponoval, což vám nyní vynahradím. Představte si nejjednodušší verzi – tři uzly Alice, Carol a Bob. Alice platí Bobovi 1000 BTC a Carol je prostředník. Bob pošle Alici preimage. Alice vytvoří v kanálu s Carol commitment transakci s HTLC kontraktem na 1000 BTC + 1 BTC poplatek. Carol vytvoří zase HTLC s Bobem, který jí dá za 1000 BTC value. Carol si pak s pomocí value vyžádá na Alici předání 1001 BTC na její účet v kanálu. Celých 1000 BTC poslala Bobovi, takže právě vydělala 1 BTC. Stejně to funguje i v případě delšího řetězce mezičlánků (ale jak říkám, směrovací algoritmus není předmětem dnešního článku).

Úvahová odbočka – ekonomická vložka

Nyní si dovolím jednu odbočku. Tahoun ekonomiky Lightning kanálů není síťový poplatek, jež je už nyní mnohonásobně nižší než běžné on-chainové transakce, ale skutečnost, že probíhají instantní kryptoměnové platby. Síť je pouze mediátor ekonomických aktivit, které generují zisk. Sám provoz sítě zkrátka není to hlavní. Důležité je, co síť umožňuje, což jsou rychlé platby. U internetu se taky hlavní zisk netočí kolem provozu sítě, ale kolem aktivit, které zprostředkovává. Určitě o tom budu ještě mluvit v dalších článcích. Narážím na skutečnost, že není nesmysl mít třeba jednou transakce úplně „zadarmo“.

Jak vnímat Lightning Network

Vzhledem k tomu, že vše probíhá off-chain, tak Lightning Network považuji za jednu velkou směnárnu, která nikdy nevyplatí zlato. Není zkrátka třeba psát věci do blockchainu (vybírat zlato) – akorát v krajní nouzi podvodu.

Přirovnám to ke zlatému standardu – máte třicet pět dolarů a víte, že vám v centrální bance patří tolik a tolik zlata. Nikdy si ho ale nevyberete, protože papírové bankovky jsou mnohem likvidnější (tzn. obratnější při placení – lehké, skladovatelné atd.).

Připomíná mi to princip založení, o němž jsem psal v prvních dílech seriálu Řekněte mi, jak funguje Bitcoin. Něco uložíte a zamknete a poté de facto obchodujete pouze s klíčkem od toho zámku.

Zdroj: https://wallethub.com/edu/cc/credit-card-checks/41965/

Uzly

Lightning Network má principiálně podobné rozdělení uzlů jako Bitcoin.

  1. Routing node
  2. Gateway routing node

Routing node

Velký počet kanálů bude uzavřen pouze mezi koncovými uzly (mobilní telefon pro platbu) a směrovacími uzly (routing nody). Koncové uzly nemohou být aktivní součástí sítě, protože mají otevřen pouze jeden obousměrný kanál a protože nebudou vždy on-line (o kontrole podvodů – o tzv. Watchtowerech – se ještě pobavíme). Směrovací uzly budou neustále on-line v Lightning síti i v blockchainu.

Gateway routing node

Levný nenáročný uzel přímo obsluhující koncové zákazníky. Na jejich propojení bude LN stát.

Plynulost sítě

Může se stát, že váš kanál bude mít v určitém okamžiku nízkou kapacitu nebo se dokonce úplně vyčerpá, proto je třeba mít dostatečný rezervní kapitál. Pro plynulý chod sítě je proto důležitá také neustálá vyrovnanost bilancí (budu o tom mluvit v dalším bodě) nejvytíženějších kanálů – Gateway nodů, které jsou zároveň motivovány dostatečnou rezervu poskytnout, jinak se může stát, že se k nim ostatní přestanou připojovat. Říká se tomu rebalancing.

Zdroj: https://blog.lightning.engineering/posts/2018/05/30/routing.html

Channel limit

Každý kanál má limit. Bohužel, představit si ho, není vůbec nic jednoduchého. Nejlepší je zřejmě představa spojených řek a stavidel. Dívejte se na spojení uzlů kanály jako na řeky a stavidla – když jsem prostředník, voda mezi mnou a příjemcem klesá. Nakonec se přeleje k cíli a vyrovnávání HTLC mě opět naplní.

Problém příchozí kapacity

Problém příchozí kapacity se týká všech uzlů na platebních trasách, které jsou převážně jednostranně využívané, takže např. obchodníků. Na rozdíl od konkurenčních platebních systému je totiž u kanálů třeba, aby pro přijmutí platby měly dostatečnou kapacitu i na druhé straně kanálu. Na obrázku níže vidíte, jak problém vzniká.

demonstrace uzle s nevyrovnanými kanály

Uzlu zprostředkovávajícímu platbu 2 BTC se prostředky přesouvají na druhou stranu kanálu, což má za následek neschopnost stát se do budoucna směrovacím uzlem, i když uzel jako takový má dostatečnou kapacitu na provedení platby.

Slovník

  • Lokální bilance – váš podíl v kanálu
  • Vzdálená bilance – podíl druhé strany v kanálu
  • Kapacita kanálu – součet bilancí
  • Příchozí kapacita – kolik jste schopni maximálně poslat bez zavření kanálu
  • Odchozí kapacita – kolik je maximálně schopný poslat vám váš soused

Kapacitu kanálu zpravidla nelze navýšit jiným způsobem než splicingem nebo zavřením kanálu a otevřením nového.

Zdroj: https://blog.muun.com/the-inbound-capacity-problem-in-the-lightning-network/

Na tomto obrázku vám chce Angela zaplatit skrze LnTop. LnTop ale nemůže platbu vést, protože vaše vzdálená bilance je příliš nízká (nulová). V tuto chvíli je vaše příchozí kapacita omezena vzdálenou bilancí. Nemůžete obdržet více Bitcoinů, než jsou schopni vaši sousedé odeslat.

Při otevření kanálu sice můžete rozhodnout o své odchozí kapacitě, nad tou příchozí ale nemáte žádnou kontrolu. I kdybyste ale svému sousedovi kanál „dobyli“, nemusí to problém vyřešit, protože se po cestě může objevit další problém.

Zdroj: https://blog.muun.com/the-inbound-capacity-problem-in-the-lightning-network/

Sofie vám nemůže zaplatit přes LnTop, protože jeho kanál s meziuzlem má příchozí kapacitu nula.

Uzly vědí pouze celkovou kapacitu kanálů v síti, ale nikoliv distribuci bilance. Takže se případně nedozvědí, že kanál, který chtějí použít pro směrování, má nedostatečnou odchozí kapacitu.

Koho to ovlivní?

  • Směrovací uzly
  • Obchodníky v přijímání plateb
  • Uzly koncových uživatelů, aby vůbec mohli platit

Problém odchozí kapacity je pravděpodobně hlavním problémem Lightning Networku.

Řešení

Momentálně existuje jedno efektivní řešení, a to tzv. Lightning Loop Out.

Loop Out

Teprve tři měsíce stará technologie.

Bleskové kanály jsou jako trubice peněz: čím více budete posílat, tím více budete moci přijímat, a naopak. Peníze se sice v trubce pohybují, ale celkový objem prostředků zůstává konstantní. Na rozdíl od jiných platebních systémů tak Lightning Network vyžaduje „příchozí kapacitu“, aby získal finanční prostředky. Proč?

Představte si Alici a Boba, kteří mají otevřený kanál s Bilancí 2:1 BTC. Chce-li Alice přijmout od Boba 2 BTC, bude třeba si otevřít nový kanál a založit ho odpovídajícím množstvím Bitcoinů (resp. s novou bilancí, třeba 5:5).

Příchozí kapacita (inbound capacity) je schopnost příjemce přijmout od odesílatele určité množství prostředků. V našem příkladu bude příchozí kapacita Alice 1 BTC. Pokud odesílatel nemá odpovídající množství Bitcoinů pro transakci, příjemce skrz něj nemůže platbu uskutečnit. Alice má tedy na svém kanálu s Bobem 2 BTC a tento kanál dosáhl své plné kapacity (což zní zmatečně, protože si pod kapacitou představíme spíše součet bilance v něm). Je k ničemu.

Loop Out umožňuje uživatelům zvýšit jejich kapacitu příjmů vykládáním prostředků ze sítě při otevřených platebních kanálech, a to tak, že notorický příjemce uzavře se svými kanály HTLC smlouvy, v nichž jim off-chainově posílá bilanci, která se nahromadila na jeho straně kanálu, aby mohlo být spojení stále použitelné. Aby ale nebyl o tyto prostředky chudší, tak kontrakt zajišťuje vypořádání on-chain a dochází ke „smyčce“.

Obchodník přesune bilanci kanálu na stranu zákazníka, aby mohl platit, ale zákazník mu toto množství vyplatí on-chain. Jako koloběh vody. Tím je problém řízení likvidity kanálů vyřešen.

Kritika LN

1.     Centralizace

„Lidé jsou líní a připojují se spíše k velkým rozbočovacím uzlům, což povede k centralizaci a kontrole veškerého provozu.“ To není pravda. Všechny uzly jsou finančně motivovány poskytovat připojení, a to vede k distribuci.

2.     Nízká propustnost kanálů

„Nízká propustnost kanálů bude mít za následek přetížení sítě a zvyšování poplatků se dostane do stejné fáze jako na blockchainu.“ Spojení je škálovatelné (na rozdíl od velikosti bloku, které vede k centralizaci těžařů jen na ty nejvýkonnější). Uzly se přidají rády (transakční poplatky). Už dnes vzniká konkurenční trh, který vede k nízkým poplatkům.

3.     Efektivní směrování při vyšším počtu P2P uzlů

„Efektivní směrování vyššího počtu navzájem propojených uzlů je nemožné, zvlášť, když otevírání nových kanálů stojí peníze.“

To je pravda. Efektivní algoritmus je problematický, ale nevypadá to, že by šlo o nevyřešitelný problém (už v r. 2016 vznikl hybridní algoritmus Flare).

4.     Časté otvírání a zavírání kanálů

To platilo u prvních jednosměrných kanálů. Dnes už je problém vyřešen (vizte minulý díl).

5.     Potřeba být neustále online

To je pravda. Sice nepotřebujete být online pro přijímání plateb, ale potřebujete skenovat blockchain kvůli podvodu.

Závěr

To byl jen lehký začátek. Příště se podíváme na praktičtější otázky kolem uzlů a routovacího algoritmu.

Zdroje

https://blog.usejournal.com/the-bitcoin-lightning-network-a-technical-primer-d8e073f2a82f – timelocky

https://bitcoinmagazine.com/articles/understanding-the-lightning-network-part-completing-the-puzzle-and-closing-the-channel-1466178980/ – princip

https://blog.lightning.engineering/posts/2018/05/30/routing.html – provoz uzle a aspekty sítě

https://blog.muun.com/fees-proportional-to-the-amount/ – poplatky

https://blog.lightning.engineering/posts/2019/03/20/loop.html – Loop Out

https://medium.com/altcoin-magazine/lightning-loop-alpha-an-easier-way-to-receive-funds-in-lightning-network-657bf063def0 – Loop Out

https://bitcoinmagazine.com/articles/lightning-loop-lets-users-empty-lightning-channels-without-closing-them – Loop Out

https://bitcoin.stackexchange.com/questions/85912/how-can-lightning-loop-out-help-me-to-receive-more-payments – Loop Out

https://www.reddit.com/r/Bitcoin/comments/b5ksp0/lightning_loops_major_insane_lightning_network/ – Loop Out

https://blog.muun.com/the-inbound-capacity-problem-in-the-lightning-network/ – problém příchozí kapacity

Sdílet příspěvek

Napsat komentář

Tato stránka používá Akismet k omezení spamu. Podívejte se, jak vaše data z komentářů zpracováváme..