name: Teoretický úvod do Lightning Network goal: Objevte Lightning Network z technické perspektivy objectives:


Cesta k druhé vrstvě Bitcoinu

Ponořte se do jádra Lightning Network, zásadního systému pro budoucnost transakcí s Bitcoinem. LNP201 je teoretický kurz o technickém fungování Lightning. Odhaluje základy a mechanismy této druhé vrstvy sítě, navržené k tomu, aby platby Bitcoinem byly rychlé, ekonomické a škálovatelné.

Díky své síti platebních kanálů umožňuje Lightning rychlé a bezpečné transakce bez nutnosti zaznamenávat každou výměnu na blockchainu Bitcoinu. V průběhu kapitol se naučíte, jak funguje otevírání, správa a zavírání kanálů, jak jsou platby směrovány přes prostředníkové uzly bezpečně a s minimální potřebou důvěry a jak spravovat likviditu. Objevíte, co jsou závazné transakce, HTLCs, revokační klíče, mechanismy trestání, cibulové směrování a faktury.

Ať už jste začátečník v Bitcoinu nebo zkušenější uživatel, tento kurz poskytne cenné informace k pochopení a používání Lightning Network. Ačkoli se v prvních částech budeme věnovat některým základům fungování Bitcoinu, je nezbytné ovládnout základy Satoshiho vynálezu, než se ponoříme do LNP201.

Užijte si objevování!

Úvod

Přehled kurzu

Vítejte v kurzu LNP201!

Tento kurz si klade za cíl poskytnout vám technické pochopení Lightning Network, což je nadstavbová síť navržená pro rychlé a často levnější transakce v bitcoinech. Postupně objevíte základní koncepty, které tento systém řídí, od otevření platebních kanálů až po techniky směrování a správu likvidity.

Sekce 1: Základy
Začneme obecným úvodem do Lightning Network, přičemž si zopakujeme základní pojmy o Bitcoinu, jeho adresách, UTXO a fungování transakcí. Tento základní přehled je nezbytný pro pochopení, jak Lightning Network využívá mechanismy základní blockchainové sítě k bezpečnému fungování.

Sekce 2: Otevření a uzavření kanálů
V této části prozkoumáme proces otevírání kanálů, který je základním kamenem Lightning Network. Naučíte se, jak jsou vytvářeny závazkové transakce, jakou roli hrají klíče pro odvolání pro zabezpečení a jak mohou být kanály uzavírány buď společně, nebo jednostranně. Každý krok bude vysvětlen přesně a technicky, aby vám umožnil pochopit všechny jeho jemnosti.

Sekce 3: Síť likvidity
Lightning Network není jen o jednotlivých kanálech; jedná se o skutečnou platební síť. Ukážeme si, jak mohou být transakce směrovány prostřednictvím mezilehlých uzlů pomocí HTLC. Tato část vás také seznámí s problematikou příchozí a odchozí likvidity.

Sekce 4: Nástroje Lightning Network
Tato sekce představuje praktické nástroje Lightning Network, jako jsou Invoices, LNURL a Keysend. Naučíte se také, jak spravovat likviditu svých kanálů, což je důležité pro zajištění plynulosti plateb a maximalizaci efektivity vašich transakcí v Lightning Network.

Sekce 5: Jděte dál
Nakonec uzavřeme kurz shrnutím probraných pojmů a otevřením cesty k pokročilejším tématům pro ty, kteří chtějí dále prohlubovat své znalosti o Lightning Network.

Připraveni objevit technické mechanismy Lightning Network? Pojďme na to!

Základy

Porozumění Lightning Network

df6230ae-ff35-56ea-8651-8e65580730a8 :::video id=ba99951f-81d2-418f-b5e7-4b8c9f8b8cc8:::

Lightning Network je síť platebních kanálů postavená na protokolu Bitcoinu, která má umožnit rychlé a nízkonákladové transakce. Umožňuje vytváření platebních kanálů mezi účastníky, v rámci kterých mohou být transakce prováděny téměř okamžitě a s minimálními poplatky, aniž by bylo nutné zaznamenávat každou transakci jednotlivě na blockchainu. Tímto způsobem se Lightning Network snaží zlepšit škálovatelnost Bitcoinu a učinit jej použitelným pro platby nízké hodnoty.

Před prozkoumáním aspektu "sítě" je důležité pochopit koncept platebního kanálu na Lightning, jak funguje a jeho specifika. To je předmětem této první kapitoly.

Koncept platebního kanálu

Platební kanál umožňuje dvěma stranám, zde Alice a Bob, vyměňovat si prostředky přes Lightning Network. Každý protagonista má uzel, symbolizovaný kruhem, a kanál mezi nimi je reprezentován úsečkou.

LNP201

V našem příkladu má Alice na své straně kanálu 100 000 satoshi a Bob 30 000, což dává dohromady 130 000 satoshi, což představuje kapacitu kanálu.

Ale co je satoshi?

Satoshi (nebo "sat") je jednotka účtu na Bitcoinu. Podobně jako cent pro euro, satoshi je prostě zlomek Bitcoinu. Jedno satoshi je rovno 0.00000001 Bitcoinu, nebo jedné sté milionté Bitcoinu. Používání satoshi se stává stále praktičtější, jak hodnota Bitcoinu roste.

Rozdělení prostředků v kanálu

Vraťme se k platebnímu kanálu. Klíčovým pojmem zde je "strana kanálu". Každý účastník má na své straně kanálu určité prostředky: Alice 100 000 satoshi a Bob 30 000. Jak jsme viděli, součet těchto prostředků představuje celkovou kapacitu kanálu, číslo, které je nastaveno při jeho otevření.

LNP201

Vezměme si příklad transakce v Lightning Network. Pokud Alice chce poslat 40 000 satoshi Bobovi, je to možné, protože má dostatek prostředků (100 000 satoshi). Po této transakci bude mít Alice na své straně 60 000 satoshi a Bob 70 000.

LNP201

Kapacita kanálu, která činí 130 000 satoshi, zůstává konstantní. To, co se mění, je rozdělení prostředků. Tento systém neumožňuje posílat více prostředků, než kolik máte. Například, pokud by Bob chtěl poslat zpět 80 000 satoshi Alici, nemohl by, protože má pouze 70 000.

Další způsob, jak si představit rozdělení prostředků, je představit si posuvník, který ukazuje, kde se prostředky v kanálu nacházejí. Původně, s 100 000 satoshi pro Alici a 30 000 pro Boba, je posuvník logicky na straně Alice. Po transakci 40 000 satoshi se posuvník mírně posune na stranu Boba, který nyní má 70 000 satoshi.

LNP201

Toto znázornění může být užitečné pro představu o rovnováze prostředků v kanálu.

Základní pravidla platebního kanálu

První bod, který si je třeba zapamatovat, je, že kapacita kanálu je pevná. Je to trochu jako průměr potrubí: určuje maximální množství prostředků, které lze v jednom okamžiku přes kanál poslat. Vezměme si příklad: pokud má Alice na své straně 130 000 satoshi, může maximálně poslat 130 000 satoshi Bobovi v jedné transakci. Bob však může tyto prostředky poslat zpět Alici, částečně nebo celé.

Důležité je pochopit, že pevná kapacita kanálu omezuje maximální množství jedné transakce, ale ne celkový počet možných transakcí, ani celkový objem vyměněných prostředků v rámci kanálu.

Co si odnést z této kapitoly?

Toto je konec této první kapitoly, kde jsme položili základy pro Lightning Network. V nadcházejících kapitolách se podíváme, jak otevřít kanál a prozkoumáme hlouběji koncepty zde diskutované.

Bitcoin, Adresy, UTXO a Transakce

0cfb7e6b-96f0-508b-9210-90bc1e28649d :::video id=75323eef-ea03-45ac-9a6e-46d73ca255de:::

Tato kapitola je trochu speciální, protože nebude přímo věnována Lightning Network, ale Bitcoinu. Skutečně, Lightning Network je vrstva postavená na Bitcoinu. Je tedy zásadní pochopit určité základní koncepty Bitcoinu, aby bylo možné správně chápat fungování Lightning Network v následujících kapitolách. V této kapitole si projdeme základy Bitcoinových přijímacích adres, UTXO, stejně jako fungování Bitcoinových transakcí.

Bitcoinové Adresy, Soukromé a Veřejné Klíče

Bitcoinová adresa je řada znaků odvozených z veřejného klíče, který je sám vypočítán z soukromého klíče. Jak jistě víte, používá se k uzamčení bitcoinů, což je ekvivalentní jejich přijetí do naší peněženky.

Soukromý klíč je tajný prvek, který by nikdy neměl být sdílen, zatímco veřejný klíč a adresa mohou být sdíleny bez rizika pro bezpečnost (jejich zveřejnění představuje pouze riziko pro vaše soukromí). Zde je běžná reprezentace, kterou budeme v průběhu tohoto školení používat:

Bitcoinové Transakce: Odesílání Fondů a Skripty

Na Bitcoinu transakce zahrnuje odeslání fondů z jedné adresy na druhou. Vezměme si příklad Alice, která posílá 0.002 Bitcoinu Bobovi. Alice použije soukromý klíč spojený s její adresou k podepsání transakce, čímž prokáže, že je skutečně schopna tyto fondy utratit. Ale co přesně se děje za touto transakcí? Fondy na Bitcoinové adrese jsou uzamčeny skriptem, jakýmsi mini-programem, který klade určité podmínky pro utrácení fondů.

Nejběžnější skript vyžaduje podpis soukromým klíčem spojeným s adresou. Když Alice podepíše transakci svým soukromým klíčem, odemkne skript, který blokuje fondy, a ty pak mohou být převedeny. Převod fondů zahrnuje přidání nového skriptu k těmto fondům, který stanoví, že pro jejich utrácení tentokrát bude vyžadován podpis Bobova soukromého klíče.

LNP201

UTXO: Nevyužité Transakční Výstupy

Na Bitcoinu ve skutečnosti neobchodujeme přímo bitcoiny, ale UTXO (Unspent Transaction Outputs), což znamená "nevyužité transakční výstupy".

UTXO je kus bitcoinu, který může mít jakoukoliv hodnotu, například 2,000 bitcoinů, 8 bitcoinů, nebo dokonce 8,000 satoshi. Každé UTXO je uzamčeno skriptem a pro jeho utrácení je nutné splnit podmínky skriptu, často podpisem soukromým klíčem odpovídajícím dané přijímací adrese.

UTXO nelze dělit. Při každém použití k utracení množství bitcoinů, které reprezentují, musí být utraceno v celku. Je to trochu jako s bankovkou: pokud máte bankovku v hodnotě 10 € a dlužíte pekaři 5 €, nemůžete bankovku prostě rozpůlit. Musíte mu dát bankovku 10 €, a on vám dá 5 € zpět. Tento princip platí přesně stejně pro UTXO na Bitcoinu! Například, když Alice odemkne skript svým soukromým klíčem, odemkne celé UTXO. Pokud si přeje poslat Bobovi pouze část fondů reprezentovaných tímto UTXO, může jej "rozfragmentovat" na několik menších. Poté pošle 0.0015 BTC Bobovi a zbytek, 0.0005 BTC, na změnovou adresu.

Zde je příklad transakce se 2 výstupy:

LNP201

Multi-podpisové adresy

Kromě jednoduchých adres generovaných z jednoho veřejného klíče je možné vytvořit multi-podpisové adresy z více veřejných klíčů. Zvláště zajímavý případ pro Lightning Network je 2/2 multi-podpisová adresa, generovaná ze dvou veřejných klíčů:

LNP201

Pro utrácení prostředků uzamčených touto 2/2 multi-podpisovou adresou je nutné podepsat oběma soukromými klíči spojenými s veřejnými klíči.

LNP201

Tento typ adresy je přesně reprezentací platebních kanálů na Lightning Network na Bitcoin blockchainu.

Co si odnést z této kapitoly?

Tato kapitola o Bitcoinu nám umožnila probrat některé základní pojmy pro následující obsah. V další kapitole se konkrétně podíváme na to, jak funguje otevírání kanálů na Lightning Network.

Otevírání a zavírání kanálů

Otevírání kanálu

96243eb0-f6b5-5b68-af1f-fffa0cc16bfe :::video id=6098fee1-735e-4d8d-9f57-0faf5fef6d76:::

V této kapitole se podrobněji podíváme na to, jak otevřít platební kanál na Lightning Network a pochopíme spojení této operace s podkladovým systémem Bitcoinu.

Platební kanály na Lightningu

Jak jsme viděli v první kapitole, platební kanál na Lightningu lze přirovnat k "potrubí" pro výměnu prostředků mezi dvěma účastníky (Alicí a Bobem v našich příkladech). Kapacita tohoto kanálu odpovídá součtu dostupných prostředků na každé straně. V našem příkladu má Alice 100 000 satoshi a Bob 30 000 satoshi, což dává celkovou kapacitu 130 000 satoshi.

LNP201

Úrovně výměny informací

Je zásadní jasně rozlišovat různé úrovně výměny na Lightning Network:

LNP201 Je důležité poznamenat, že Lightning node může komunikovat prostřednictvím P2P protokolu bez otevření kanálu, ale pro výměnu finančních prostředků je kanál nezbytný.

Kroky k otevření Lightning kanálu

LNP201 LNP201 LNP201 LNP201 LNP201 LNP201

Kdy je kanál otevřen?

Kanál je považován za otevřený, jakmile je transakce vkladu zahrnuta do Bitcoinového bloku a dosáhne určité hloubky potvrzení (počet následujících bloků).

Co si z této kapitoly máte zapamatovat?

V další kapitole prozkoumáme technické fungování transakce uvnitř kanálu na Lightning Network, tj. když jsou prostředky přesunuty z jedné strany kanálu na druhou.

Připomenutí životního cyklu kanálu

Jak bylo viděno dříve, Lightning kanál začíná otevřením prostřednictvím Bitcoinové transakce. Kanál může být kdykoliv uzavřen, také prostřednictvím Bitcoinové transakce. Mezi těmito dvěma okamžiky může být v rámci kanálu proveden téměř nekonečný počet transakcí, aniž by procházely Bitcoinovým blockchainem. Podívejme se, co se děje během transakce v kanálu. LNP201

Počáteční stav kanálu

V okamžiku otevření kanálu Alice vložila 130 000 satoshi na multisignaturní adresu kanálu. Takže v počátečním stavu jsou všechny prostředky na straně Alice. Před otevřením kanálu Alice také nechala Boba podepsat transakci pro výběr, která by jí umožnila získat zpět své prostředky, pokud by si přála kanál uzavřít.

LNP201

Nepublikované transakce: Commitment transakce

Když Alice provede v kanálu transakci k odeslání prostředků Bobovi, vytvoří se nová Bitcoinová transakce, která odráží tuto změnu v rozdělení prostředků. Tato transakce, nazývaná commitment transakce, není publikována na blockchainu, ale reprezentuje nový stav kanálu po Lightning transakci.

Vezměme si příklad, kdy Alice posílá 30 000 satoshi Bobovi:

Proces převodu: Faktura

Když Bob chce přijmout prostředky, pošle Alice fakturu na 30 000 satoshi. Alice poté zaplatí tuto fakturu zahájením převodu v rámci kanálu. Jak jsme viděli, tento proces závisí na vytvoření a podepsání nové commitment transakce.

Každá commitment transakce reprezentuje nové rozdělení prostředků v kanálu po převodu. V tomto příkladu, po transakci, má Bob 30 000 satoshi a Alice 100 000 satoshi. Pokud by se kterýkoliv z účastníků rozhodl publikovat tuto commitment transakci na blockchainu, mělo by to za následek uzavření kanálu a prostředky by byly rozděleny podle tohoto posledního rozdělení.

LNP201

Nový stav po druhé transakci

Vezměme si další příklad: po první transakci, kdy Alice poslala Bobovi 30 000 satoshi, se Bob rozhodne poslat 10 000 satoshi zpět Alice. To vytváří nový stav kanálu. Nová commitment transakce bude reprezentovat toto aktualizované rozdělení:

LNP201

Opět, tato transakce není publikována na blockchainu, ale může být kdykoliv v případě uzavření kanálu.

Shrnutí, když jsou prostředky převáděny v rámci Lightning kanálu:

Avšak tento systém má potenciální nedostatek, který řešíme v následující kapitole. Uvidíme, jak se každý účastník může chránit proti pokusu o podvod ze strany druhé strany.

Revokační klíč

f2f61e5b-badb-5947-9a81-7aa530b44e59 :::video id=1d850f23-eff1-4725-b284-ce12456a2c26::: V této kapitole se podrobněji podíváme na to, jak transakce fungují na Lightning Network tím, že probereme mechanismy zajišťující ochranu proti podvodům, čímž zajistíme, že každá strana dodržuje pravidla v rámci kanálu.

Připomenutí: Transakce závazku

Jak jsme již viděli, transakce na Lightningu spoléhají na nepublikované transakce závazku. Tyto transakce odrážejí aktuální rozdělení prostředků v kanálu. Když je provedena nová Lightning transakce, vytvoří se nová transakce závazku, která je oběma stranami podepsána, aby odrážela nový stav kanálu.

Pojďme si vzít jednoduchý příklad:

LNP201

Kdykoliv mohou obě strany publikovat poslední transakci závazku podepsanou k uzavření kanálu a získání svých prostředků.

Nedostatek: Podvod publikováním staré transakce

Potenciální problém nastává, pokud se jedna ze stran rozhodne podvádět publikováním staré transakce závazku. Například Alice by mohla publikovat starší transakci závazku, kde měla 100 000 satoshi, i když nyní ve skutečnosti má pouze 60 000 satoshi. To by jí umožnilo ukrást 40 000 satoshi od Boba.

LNP201

Ještě hůře, Alice by mohla publikovat úplně první výběrovou transakci, tu před otevřením kanálu, kde měla 130 000 satoshi, a tím ukrást celé prostředky kanálu.

LNP201

Řešení: Revokační klíč a časový zámek

Aby se zabránilo tomuto druhu podvodu ze strany Alice, na Lightning Network jsou do transakcí závazku přidány bezpečnostní mechanismy:

Podívejme se podrobněji na fungování tohoto mechanismu.

Proces aktualizace transakce

Když Alice a Bob aktualizují stav kanálu novou Lightning transakcí, vymění si předem své příslušné tajemství pro předchozí závazný transakční záznam (ten, který se stane zastaralým a mohl by umožnit jednomu z nich podvádět). To znamená, že v novém stavu kanálu:

Pojďme si vzít příklad, abychom tento proces dobře pochopili:

LNP201 LNP201 LNP201

I když v tomto případě Bob nemá ekonomický zájem na pokusu o podvod, pokud by to přesto udělal, Alice také těží ze symetrické ochrany, která jí nabízí stejné záruky.

Co si odnést z této kapitoly?

Závazné transakční záznamy na Lightning Network zahrnují bezpečnostní mechanismy, které snižují jak riziko podvodu, tak motivaci k němu. Před podepsáním nového závazného transakčního záznamu si Alice a Bob vymění svá příslušná tajemství pro předchozí závazné transakční záznamy. Pokud se Alice pokusí zveřejnit starý závazný transakční záznam, Bob může použít revokační klíč k získání všech prostředků dříve, než to stihne Alice (protože je zablokována časovým zámkem), což ji trestá za pokus o podvod.

Tento bezpečnostní systém zajišťuje, že účastníci dodržují pravidla Lightning Network, a nemohou profitovat zveřejněním starých závazných transakčních záznamů. V tomto bodě školení již víte, jak jsou otevírány kanály Lightning a jak fungují transakce v rámci těchto kanálů. V další kapitole objevíme různé způsoby, jak kanál uzavřít a získat zpět vaše bitcoiny na hlavním blockchainu.

Uzavření kanálu

29a72223-2249-5400-96f0-3756b1629bc2 :::video id=4d8ad4e6-32ff-46d3-bd17-343929aa863b:::

V této kapitole budeme diskutovat o uzavření kanálu na Lightning Network, které se provádí prostřednictvím Bitcoinové transakce, stejně jako otevření kanálu. Po pochopení, jak fungují transakce v rámci kanálu, je nyní čas zjistit, jak kanál uzavřít a získat zpět prostředky na Bitcoin blockchainu.

Připomenutí životního cyklu kanálu

Životní cyklus kanálu začíná jeho otevřením, prostřednictvím Bitcoinové transakce, poté se v něm provádějí Lightning transakce a nakonec, když strany chtějí získat zpět své prostředky, je kanál uzavřen prostřednictvím druhé Bitcoinové transakce. Mezilehlé transakce provedené na Lightningu jsou reprezentovány nepublikovanými commitment transakcemi.

LNP201

Tři typy uzavření kanálu

Existují tři hlavní způsoby, jak tento kanál uzavřít, které lze nazvat dobrý, hrubý a záškodník (inspirováno Andreasem Antonopoulosem v Mastering the Lightning Network):

Pojďme si vzít příklad:

LNP201

Dobrý: kooperativní uzavření

Při kooperativním uzavření se Alice a Bob dohodnou na uzavření kanálu. Takto to probíhá:

LNP201

Kooperativní uzavření je preferovanou metodou uzavření, protože je rychlé (bez timelock) a transakční poplatky jsou upraveny podle aktuálních tržních podmínek Bitcoinu. To zabrání placení příliš malé částky, což by mohlo zablokovat transakci v mempoolech, nebo zbytečnému přeplácení, což vede k zbytečné finanční ztrátě pro účastníky.

Špatné: nucené uzavření

Když Alicein uzel pošle zprávu Bobovu uzlu s žádostí o kooperativní uzavření, pokud neodpoví (například kvůli výpadku internetu nebo technickému problému), Alice může pokračovat v nuceném uzavření publikováním poslední podepsané závazné transakce. V tomto případě Alice jednoduše publikuje poslední závaznou transakci, která odráží stav kanálu v okamžiku, kdy poslední Lightning transakce proběhla s správným rozdělením prostředků.

LNP201

Tato transakce zahrnuje timelock pro prostředky Alice, což zpomaluje uzavření.

LNP201

Také poplatky za závaznou transakci mohou být v době uzavření nevhodné, protože byly nastaveny v době vytvoření transakce, někdy několik měsíců předtím. Obecně klienti Lightningu přeceňují poplatky, aby se vyhnuli budoucím problémům, ale to může vést k nadměrným poplatkům, nebo naopak příliš nízkým.

Shrnutí, nucené uzavření je poslední možností, když druhá strana již neodpovídá. Je pomalejší a méně ekonomické než kooperativní uzavření. Proto by se mělo vyhnout, pokud je to možné.

Podvod: podvádění

Nakonec, uzavření s podváděním nastane, když jedna ze stran se pokusí publikovat starou závaznou transakci, často kde držela více prostředků, než by měla. Například, Alice by mohla publikovat starou transakci, kde vlastnila 120 000 satoshi, zatímco nyní vlastní pouze 100 000.

LNP201

Bob, aby zabránil tomuto podvodu, sleduje Bitcoin blockchain a jeho mempool, aby zajistil, že Alice nepublikuje starou transakci. Pokud Bob zjistí pokus o podvod, může použít revokační klíč k získání prostředků Alice a potrestat ji tím, že vezme celé prostředky kanálu. Jelikož je Alice blokována timelockem na jejím výstupu, Bob má čas jej utratit bez timelocku na své straně, aby získal celou sumu na adresu, kterou vlastní.

LNP201

Samozřejmě, podvod může potenciálně uspět, pokud Bob nejedná v čase uloženém timelockem na Aliceině výstupu. V tomto případě je Alicein výstup odemčen, což jí umožňuje jej spotřebovat k vytvoření nového výstupu na adresu, kterou kontroluje.

Co si odnést z této kapitoly?

Existují tři způsoby, jak uzavřít kanál:

Síť likvidity

Lightning Network

45a7252c-fa4f-554b-b8bb-47449532918e :::video id=38419c23-5592-4573-b0a7-84824a5bfb77:::

V této kapitole prozkoumáme, jak mohou platby na Lightning Network dosáhnout příjemce, i když nejsou přímo spojeni platebním kanálem. Lightning je skutečně síť platebních kanálů, která umožňuje posílání prostředků na vzdálený uzel prostřednictvím kanálů ostatních účastníků. Zjistíme, jak jsou platby směrovány napříč sítí, jak se likvidita pohybuje mezi kanály a jak se vypočítávají transakční poplatky.

Síť platebních kanálů

Na Lightning Network odpovídá transakce převodu prostředků mezi dvěma uzly. Jak bylo vidět v předchozích kapitolách, je nutné otevřít kanál s někým, aby bylo možné provádět Lightning transakce. Tento kanál umožňuje téměř nekonečný počet transakcí mimo hlavní řetězec, než se uzavře a znovu získá zůstatek na hlavním řetězci. Tato metoda však má nevýhodu vyžadování přímého kanálu s druhou osobou pro příjem nebo odeslání prostředků, což znamená otevírací a zavírací transakci pro každý kanál. Pokud plánuji provést velké množství plateb s touto osobou, stává se otevření a zavření kanálu nákladově efektivním. Naopak, pokud potřebuji provést jen několik Lightning transakcí, otevření přímého kanálu není výhodné, protože by mě to stálo 2 transakce na hlavním řetězci pro omezený počet transakcí mimo hlavní řetězec. Tento případ by mohl nastat například při platbě Lightningem u obchodníka, aniž bych plánoval návrat.

K vyřešení tohoto problému umožňuje Lightning Network směrování platby přes několik kanálů a prostředníků, čímž umožňuje transakci bez přímého kanálu s druhou osobou.

Představte si například, že:

LNP201

Pokud Alice chce poslat prostředky Bobovi bez otevření přímého kanálu s ním, musí to udělat přes Suzie, a každý kanál bude muset upravit likviditu na každé straně. Poslané satoshi zůstávají v rámci jejich příslušných kanálů; ve skutečnosti "nepřekračují" kanály, ale převod se uskuteční úpravou vnitřní likvidity v každém kanálu.

Předpokládejme, že Alice chce poslat 50 000 satoshi Bobovi:

LNP201 Takto je platba směrována Bobovi prostřednictvím pohybu likvidity v každém kanálu. Na konci operace má Alice 50 000 satoshi. Skutečně převedla 50 000 satoshi, protože původně měla 100 000. Bob, na své straně, skončí s dalšími 50 000 satoshi. Pro Suzie (prostřední uzel) je tato operace neutrální: původně měla 30 000 satoshi ve svém kanálu s Alicí a 250 000 satoshi ve svém kanálu s Bobem, celkem 280 000 satoshi. Po operaci drží 80 000 satoshi ve svém kanálu s Alicí a 200 000 satoshi ve svém kanálu s Bobem, což je stejná suma jako na začátku. Tento přenos je tedy omezen dostupnou likviditou ve směru přenosu.

Výpočet trasy a limitů likvidity

Pojďme si vzít teoretický příklad jiné sítě s:

LNP201

Maximální množství, které Alice může poslat Bobovi v této konfiguraci, je 90 000 satoshi, jelikož je omezena nejmenší dostupnou likviditou v kanálu od Suzie k Carol. V opačném směru (od Boba k Alici) není platba možná, protože na straně Suzie v kanálu s Alicí nejsou žádné satoshi. Proto není žádná trasa použitelná pro přenos v tomto směru. Alice posílá 40 000 satoshi Bobovi prostřednictvím kanálů:

LNP201

Satoshis poslané v každém kanálu zůstávají v kanálu, takže satoshis poslané Carolem Bobovi nejsou stejné jako ty, které poslala Alice Suzie. Přenos se provádí pouze úpravou likvidity uvnitř každého kanálu. Navíc celková kapacita kanálů zůstává nezměněna.

LNP201

Stejně jako v předchozím příkladu, po transakci má zdrojový uzel (Alice) o 40 000 satoshi méně. Prostřední uzly (Suzie a Carol) si udržují stejnou celkovou částku, což operaci činí pro ně neutrální. Konečný uzel (Bob) obdrží dalších 40 000 satoshi.

Role prostředních uzlů je tedy velmi důležitá pro fungování Lightning Network. Umožňují převody nabízením více cest pro platby. Aby se tyto uzly podnítilo k poskytování své likvidity a účasti na směrování plateb, jsou jim vypláceny poplatky za směrování.

Poplatky za směrování

Prostřední uzly uplatňují poplatky, aby umožnily platby procházet jejich kanály. Tyto poplatky jsou stanoveny každým uzlem pro každý kanál. Poplatky se skládají ze 2 prvků:

Například pro kanál mezi Alice a Suzie bychom mohli mít:

LNP201

Pro lepší pochopení fungování poplatků se podívejme na stejnou Lightning Network jako předtím, ale nyní s následujícími směrovacími poplatky:

Pro stejnou platbu 40 000 satoshi Bobovi bude muset Alice poslat o něco více, protože každý prostředník si odečte své poplatky:

Celkové poplatky za tuto platbu na této cestě jsou tedy 9,04 satoshi. Alice tedy musí poslat 40 009,04 satoshi, aby Bob přesně obdržel 40 000 satoshi.

LNP201

Likvidita je tedy aktualizována:

LNP201

Onion Routing

Pro směrování platby od odesílatele k příjemci používá Lightning Network metodu nazvanou "onion routing". Na rozdíl od směrování klasických dat, kde každý router rozhoduje o směru dat na základě jejich cíle, onion routing funguje jinak:

V této kapitole jsme prozkoumali směrování plateb na Lightning Network. Ale vyvstává otázka: co brání prostředníkům v přijetí příchozí platby bez jejího přeposlání do další destinace, s cílem zachytit transakci? To je přesně role HTLC, kterou prozkoumáme v následující kapitole.

HTLC – Hashed Time Locked Contract

4369b85a-1365-55d8-99e1-509088210116 :::video id=6f204b92-55a5-4939-9440-7c5b96a297bf:::

V této kapitole objevíme, jak Lightning umožňuje platby přecházet prostřednictvím prostředníků bez nutnosti jim důvěřovat, díky HTLC (Hashed Time-Locked Contracts). Tyto chytré kontrakty zajišťují, že každý prostředník obdrží prostředky z jeho kanálu pouze v případě, že přepošle platbu konečnému příjemci, jinak nebude platba ověřena.

Problém, který vzniká při směrování plateb, je tedy nutná důvěra v prostředníky a mezi samotnými prostředníky. Abychom to ilustrovali, pojďme se vrátit k našemu zjednodušenému příkladu sítě Lightning s 3 uzly a 2 kanály:

Alice chce poslat 40 000 satoshi Bobovi, ale nemá s ním přímý kanál a nechce jej otevřít. Hledá trasu a rozhodne se jít přes uzl Suzie.

LNP201

Pokud Alice naivně pošle 40 000 satoshi Suzie s nadějí, že Suzie tuto sumu převede Bobovi, Suzie by mohla prostředky zadržet pro sebe a nic nepředat Bobovi.

LNP201 Aby se této situaci na Lightning zabránilo, používáme HTLC (Hashed Time-Locked Contracts), které dělají platbu prostředníkovi podmíněnou, což znamená, že Suzie musí splnit určité podmínky, aby mohla přistoupit k prostředkům Alice a převést je Bobovi.

Jak HTLC fungují

HTLC je speciální kontrakt založený na dvou principech:

Takto tento proces funguje v našem příkladu s Alicí, Suzie a Bobem:

LNP201 Vytvoření tajemství: Bob vygeneruje náhodné tajemství označené jako s (předobraz) a vypočítá jeho hash označený jako r pomocí hashovací funkce označené jako h. Platí:

r = h(s)

Použití hashovací funkce znemožňuje najít s pouze s h(s), ale pokud je s poskytnuto, je snadné ověřit, že odpovídá h(s).

LNP201

Odeslání žádosti o platbu: Bob pošle Alici fakturu s žádostí o platbu. Tato faktura zvláště zahrnuje hash r.

LNP201

Odeslání podmíněné platby: Alice pošle Suzie HTLC na 40 000 satoshi. Podmínkou pro Suzie, aby tyto prostředky obdržela, je, že poskytne Alici tajemství s' splňující následující rovnici:

h(s') = r
LNP201

Převod HTLC konečnému příjemci: Suzie, aby získala 40 000 satoshi od Alice, musí převést podobné HTLC na 40 000 satoshi Bobovi, který má stejnou podmínku, totiž že musí Suzie poskytnout tajemství s' splňující rovnici:

h(s') = r
LNP201

Ověření tajemstvím s: Bob poskytne s Suzie, aby obdržel slíbených 40 000 satoshi v HTLC. S tímto tajemstvím může Suzie poté odemknout Alicino HTLC a získat 40 000 satoshi od Alice. Platba je poté správně směrována Bobovi.

LNP201 Tento proces brání Suzie v zadržení Aliciných prostředků bez dokončení převodu Bobovi, protože musí platbu poslat Bobovi, aby získala tajemství s a tím odemkla Alicino HTLC. Operace zůstává stejná i v případě, že trasa zahrnuje několik prostředníků: jedná se pouze o opakování kroků Suzie pro každého prostředníka. Každý uzel je chráněn podmínkami HTLC, protože odemknutí posledního HTLC příjemcem automaticky spouští odemknutí všech ostatních HTLC v kaskádě.

Expirace a řízení HTLC v případě problémů

Pokud během procesu platby jeden z prostředníků nebo příjemný uzel přestane odpovídat, zejména v případě výpadku internetu nebo elektrické energie, pak platbu nelze dokončit, protože tajemství potřebné k odemknutí HTLC není přeneseno. Vezmeme-li náš příklad s Alicí, Suzie a Bobem, tento problém nastane například, pokud Bob nepředá tajemství s Suzie. V tomto případě jsou všechna HTLC v cestě zablokována a také prostředky, které zajišťují.

LNP201

Aby se tomu zabránilo, HTLC na Lightningu mají expiraci, která umožňuje odstranění HTLC, pokud není po určité době dokončeno. Expirace následuje specifické pořadí, protože začíná nejprve s HTLC nejbližším příjemci a poté postupně přechází k vydavateli transakce. V našem příkladu, pokud Bob nikdy neposkytne tajemství s Suzie, to by nejprve způsobilo expiraci Suziina HTLC směrem k Bobovi.

LNP201

Poté HTLC od Alice k Suzie.

LNP201

Pokud by se pořadí vypršení platnosti HTLC obrátilo, Alice by mohla získat zpět svou platbu dříve, než by Suzie mohla ochránit sebe před možným podvodem. Skutečně, pokud by se Bob vrátil pro své HTLC, zatímco Alice už své odstranila, Suzie by byla ve ztrátě. Toto kaskádové pořadí vypršení platnosti HTLC tak zajišťuje, že žádný prostředník neutrpí nespravedlivé ztráty.

Reprezentace HTLC v transakcích závazku

Transakce závazku reprezentují HTLC takovým způsobem, že podmínky, které ukládají na Lightning, mohou být přeneseny na Bitcoin v případě nuceného uzavření kanálu během životnosti HTLC. Jako připomínka, transakce závazku reprezentují aktuální stav kanálu mezi dvěma uživateli a umožňují jednostranné nucené uzavření v případě problémů. S každým novým stavem kanálu jsou vytvořeny 2 transakce závazku: jedna pro každou stranu. Pojďme se vrátit k našemu příkladu s Alicí, Suzie a Bobem, ale podívejme se podrobněji na to, co se děje na úrovni kanálu mezi Alicí a Suzie, když je HTLC vytvořeno. LNP201

Před zahájením platby 40 000 satoshi mezi Alicí a Bobem má Alice v kanálu se Suzie 100 000 satoshi, zatímco Suzie drží 30 000. Jejich transakce závazku jsou následující:

LNP201

Alice právě obdržela Bobovu fakturu, která obsahuje r, hash tajemství. Může tedy sestavit HTLC o 40 000 satoshi se Suzie. Toto HTLC je reprezentováno v nejnovějších transakcích závazku jako výstup nazvaný "HTLC Out" na straně Alice, protože prostředky jsou odchozí, a "HTLC In" na straně Suzie, protože prostředky jsou příchozí.

LNP201

Tyto výstupy spojené s HTLC sdílejí přesně stejné podmínky, a to:

Tyto podmínky platí pouze v případě, že je kanál uzavřen (tj. transakce závazku je publikována na řetězci) zatímco HTLC je stále aktivní na Lightning, což znamená, že platba mezi Alicí a Bobem ještě nebyla finalizována a HTLC ještě nevypršely. Díky těmto podmínkám může Suzie získat zpět 40 000 satoshi HTLC, které jí dluží, poskytnutím s. V opačném případě Alice získá prostředky po vypršení časového zámku, protože pokud Suzie s nezná, znamená to, že nepřevedla 40 000 satoshi Bobovi, a tedy Alici nejsou dlužné žádné prostředky.

Navíc, pokud je kanál uzavřen, zatímco několik HTLC je nevyřešených, bude tam tolik dalších výstupů, kolik je probíhajících HTLC. Pokud kanál není uzavřen, pak po vypršení nebo úspěchu platby Lightning jsou vytvořeny nové transakce závazku, které odrážejí nový, nyní stabilní stav kanálu, tj. bez jakýchkoli nevyřešených HTLC. Výstupy související s HTLC mohou být tedy odstraněny z transakcí závazku.

LNP201

Nakonec, v případě kooperativního uzavření kanálu, zatímco je HTLC aktivní, Alice a Suzie přestanou přijímat nové platby a čekají na vyřešení nebo vypršení platnosti probíhajících HTLC. To jim umožňuje publikovat jednodušší transakci pro uzavření, bez výstupů souvisejících s HTLC, čímž snižují poplatky a vyhýbají se čekání na možný časový zámek. Co byste si měli odnést z této kapitoly?

HTLC umožňují směrování plateb Lightning přes více uzlů bez nutnosti jim důvěřovat. Zde jsou klíčové body, které si zapamatovat:

V další kapitole zjistíme, jak uzel vydávající transakci Lightning najde a vybere trasy pro doručení platby příjemcovu uzlu.

Hledání cesty

7e2ae959-c2a1-512e-b5d6-8fd962e819da :::video id=e5baa834-111d-46f5-a28b-3538bed2bbb0:::

V předchozích kapitolách jsme viděli, jak používat kanály jiných uzlů k směrování plateb a dosažení uzlu, aniž bychom byli přímo s ním spojeni přes kanál. Také jsme diskutovali o tom, jak zajistit bezpečnost převodu bez důvěry v prostředníkovy uzly. V této kapitole se zaměříme na nalezení nejlepší možné trasy k dosažení cílového uzlu.

Problém směrování v Lightning

Jak jsme viděli, v Lightning je to uzel odesílající platbu, který musí vypočítat kompletní trasu k příjemci, protože používáme systém cibulového směrování. Prostředníkovy uzly neznají ani bod původu ani konečný cíl. Vědí pouze, odkud platba přichází a kterému uzlu ji musí předat dále. To znamená, že odesílající uzel musí udržovat dynamickou lokální topologii sítě, s existujícími uzly Lightning a kanály mezi nimi, s přihlédnutím k otevřením, uzavřením a aktualizacím stavu.

LNP201 I s touto topologií sítě Lightning existují zásadní informace pro směrování, které zůstávají odesílajícímu uzlu nedostupné, což je přesné rozdělení likvidity v kanálech v daném okamžiku. Skutečně, každý kanál zobrazuje pouze svou celkovou kapacitu, ale vnitřní rozdělení finančních prostředků je známo pouze dvěma účastnícím se uzlům. To představuje výzvy pro efektivní směrování, protože úspěch platby závisí zejména na tom, zda je její částka menší než nejnižší likvidita na zvolené trase. Nicméně, likvidity nejsou všechny viditelné odesílajícímu uzlu. LNP201

Aktualizace mapy sítě

Aby uzly udržely svou mapu sítě aktuální, pravidelně si vyměňují zprávy prostřednictvím algoritmu nazvaného "gossip". Jedná se o distribuovaný algoritmus používaný k šíření informací epidemiologickým způsobem mezi všechny uzly v síti, což umožňuje výměnu a synchronizaci globálního stavu kanálů v několika komunikačních cyklech. Každý uzel šíří informace jednomu nebo více sousedům vybraným náhodně nebo ne, ti zase šíří informace dalším sousedům a tak dále, dokud není dosaženo globálně synchronizovaného stavu.

2 hlavní zprávy vyměňované mezi uzly Lightning jsou následující:

Směrování platby

Pojďme si vzít příklad malé Lightning Network se 7 uzly: Alice, Bob, 1, 2, 3, 4 a 5. Představme si, že Alice chce poslat platbu Bobovi, ale musí projít přes prostředníkové uzly.

LNP201

Zde je aktuální rozdělení prostředků v těchto kanálech:

LNP201

Pro provedení platby 100 000 sats od Alice k Bobovi jsou možnosti směrování omezeny dostupnou likviditou v každém kanálu. Optimální trasa pro Alici, na základě známého rozdělení likvidity, by mohla být sekvence Alice → 1 → 2 → 4 → 5 → Bob:

LNP201

Ale protože Alice nezná přesné rozdělení prostředků v každém kanálu, musí optimální trasu odhadnout pravděpodobnostně, s ohledem na následující kritéria:

Provedení platby

Alice se rozhodne otestovat svou první trasu (Alice → 1 → 2 → 5 → Bob). Proto pošle HTLC o 100 000 sats uzlu 1. Tento uzel zkontroluje, že má dostatečnou likviditu s uzlem 2, a pokračuje v přenosu. Uzel 2 poté přijme HTLC od uzlu 1, ale uvědomí si, že nemá dostatečnou likviditu ve svém kanálu s uzlem 5 pro přesměrování platby 100 000 sats. Poté pošle zpět uzlu 1 chybovou zprávu, která se přenese Alici. Tato trasa selhala.

LNP201

Alice poté pokusí směrovat svou platbu pomocí své druhé trasy (Alice → 1 → 2 → 4 → 5 → Bob). Pošle HTLC o 100 000 sats uzlu 1, který ji přenese uzlu 2, poté uzlu 4, uzlu 5 a nakonec Bobovi. Tentokrát je likvidita dostatečná a trasa je funkční. Každý uzel postupně odemkne svůj HTLC pomocí předobrazu poskytnutého Bobem (tajemství s), což umožní úspěšné dokončení Aliciny platby Bobovi.

LNP201

Hledání trasy probíhá takto: odesílající uzel začne identifikací nejlepších možných tras, poté postupně zkouší platby, dokud nenajde funkční trasu.

Je důležité poznamenat, že Bob může Alici poskytnout informace ve faktuře usnadňující směrování. Například může uvést blízké kanály s dostatečnou likviditou nebo odhalit existenci soukromých kanálů. Tyto indikace umožňují Alici vyhnout se trasám s malou šancí na úspěch a nejprve se pokusit o cesty doporučené Bobem.

Co si odnést z této kapitoly?

V následující kapitole se budeme konkrétně zabývat fungováním faktur, kromě některých dalších nástrojů používaných na Lightning Network.

Nástroje Lightning Network

Faktura, LNURL a Keysend

e34c7ecd-2327-52e3-b61e-c837d9e5e8b0 :::video id=309c3412-506e-4189-ad46-5e5088c55008::: V této kapitole se podrobněji podíváme na fungování Lightning faktur, tedy platebních požadavků, které odesílá příjemce uzlu odesílateli. Cílem je pochopit, jak platit a přijímat platby na Lightning. Také probereme 2 alternativy klasických faktur: LNURL a Keysend. LNP201

Struktura Lightning faktur

Jak bylo vysvětleno v kapitole o HTLCs, každá platba začíná generováním faktury příjemcem. Tato faktura je poté předána plátci (prostřednictvím QR kódu nebo kopírováním a vložením) k zahájení platby. Faktura se skládá ze dvou hlavních částí:

Typická struktura faktury začíná identifikátorem ln pro "Lightning", následovaným bc pro Bitcoin, poté částkou faktury. Oddělovač 1 rozlišuje část čitelnou člověkem od datové (payload) části.

Pojďme se podívat na následující fakturu jako příklad:

lnbc100u1p0x7x7dpp5l7r9y50wrzz0lwnsqgxdks50lxtwkl0mhd9lslr4rcgdtt2n6lssp5l3pkhdx0cmc9gfsqvw5xjhph84my2frzjqxqyz5vq9qsp5k4mkzv5jd8u5n89d2yc50x7ptkl0zprx0dfjh3km7g0x98g70hsqq7sqqqgqqyqqqqlgqqvnv2k5ehwnylq3rhpd9g2y0sq9ujyxsqqypjqqyqqqqqqqqqqqsqqqqq9qsq3vql5f6e45xztgj7y6xw6ghrcz3vmh8msrz8myvhsarxg42ce9yyn53lgnryx0m6qqld8fql

Už teď ji můžeme rozdělit na 2 části. Nejprve je tu Část čitelná člověkem:

lnbc100u

Poté část určená pro payload:


p0x7x7dpp5l7r9y50wrzz0lwnsqgxdks50lxtwkl0mhd9lslr4rcgdtt2n6lssp5l3pkhdx0cmc9gfsqvw5xjhph84my2frzjqxqyz5vq9qsp5k4mkzv5jd8u5n89d2yc50x7ptkl0zprx0dfjh3km7g0x98g70hsqq7sqqqgqqyqqqqlgqqvnv2k5ehwnylq3rhpd9g2y0sq9ujyxsqqypjqqyqqqqqqqqqqqsqqqqq9qsq3vql5f6e45xztgj7y6xw6ghrcz3vmh8msrz8myvhsarxg42ce9yyn53lgnryx0m6qqld8fql

Dvě části jsou odděleny 1. Tento oddělovač byl zvolen místo speciálního znaku, aby bylo možné snadno kopírovat celou fakturu dvojitým kliknutím. V první části můžeme vidět, že:

Pro označení částky platby je vyjádřena v podjednotkách bitcoinu. Zde jsou použité jednotky:

Obsah faktury

Obsah faktury zahrnuje několik informací nezbytných pro zpracování platby:

Faktury jsou poté zakódovány ve formátu bech32, stejně jako adresy Bitcoin SegWit (formát začínající bc1).

LNURL Výběr

V tradiční transakci, jako je nákup v obchodě, je vygenerována faktura na celkovou částku k zaplacení. Jakmile je faktura prezentována (ve formě QR kódu nebo řetězce znaků), zákazník ji může naskenovat a dokončit transakci. Platba pak následuje tradiční proces, který jsme studovali v předchozí sekci. Tento proces však někdy může být pro uživatelskou zkušenost velmi zdlouhavý, protože vyžaduje, aby příjemce poslal informace odesílateli prostřednictvím faktury. Pro určité situace, jako je vybírání bitcoinů z online služby, je tradiční proces příliš zdlouhavý. V takových případech řešení LNURL pro výběr zjednodušuje tento proces zobrazením QR kódu, který naskenuje peněženka příjemce a automaticky vytvoří fakturu. Služba poté zaplatí fakturu a uživatel jednoduše vidí okamžitý výběr.

LNP201

LNURL je komunikační protokol, který specifikuje sadu funkcionalit navržených k zjednodušení interakcí mezi Lightning uzly a klienty, stejně jako s aplikacemi třetích stran. LNURL výběr, jak jsme právě viděli, je tedy jen jedním příkladem mezi dalšími funkcionalitami. Tento protokol je založen na HTTP a umožňuje vytváření odkazů pro různé operace, jako je žádost o platbu, žádost o výběr nebo jiné funkce, které zlepšují uživatelskou zkušenost. Každé LNURL je bech32 kódované URL s předponou lnurl, které, jakmile je naskenováno, spustí sérii automatických akcí v Lightning peněžence. Například funkce LNURL-withdraw (LUD-03) umožňuje vybírat prostředky ze služby skenováním QR kódu, bez nutnosti ručně generovat fakturu. Podobně LNURL-auth (LUD-04) umožňuje přihlášení do online služeb pomocí soukromého klíče v Lightning peněžence místo hesla.

Odesílání Lightning platby bez faktury: Keysend

Dalším zajímavým případem je převod prostředků bez předchozího přijetí faktury, známý jako "Keysend". Tento protokol umožňuje odesílání prostředků přidáním preimage do šifrovaných platebních dat, přístupných pouze příjemci. Tato preimage umožňuje příjemci odemknout HTLC, čímž získá prostředky bez předchozího vygenerování faktury.

Zjednodušeně, v tomto protokolu je to odesílatel, kdo generuje tajemství použité v HTLCs, spíše než příjemce. Prakticky to umožňuje odesílateli provést platbu bez předchozí interakce s příjemcem.

LNP201

Co byste si měli odnést z této kapitoly?

V následující kapitole uvidíme, jak může operátor uzlu spravovat likviditu ve svých kanálech, aby nikdy nebyl blokován a vždy mohl odesílat a přijímat platby na Lightning Network.

Správa vaší likvidity

cc76d0c4-d958-57f5-84bf-177e21393f48 :::video id=96096aef-e4ce-4c44-a022-57e27082232a:::

V této kapitole prozkoumáme strategie pro efektivní správu likvidity na Lightning Network. Správa likvidity se liší v závislosti na typu uživatele a kontextu. Podíváme se na hlavní principy a existující techniky, abychom lépe pochopili, jak tuto správu optimalizovat.

Potřeby likvidity

Na Lightning existují tři hlavní uživatelské profily, z nichž každý má specifické potřeby v oblasti likvidity:

Tyto profily samozřejmě nejsou pevně dané; uživatel může přecházet mezi rolí platícího a příjemce v závislosti na transakcích. Například Bob může přijímat svůj plat na Lightning od svého zaměstnavatele, což ho staví do pozice "prodávajícího", který potřebuje příchozí likviditu. Následně, pokud chce použít svůj plat na nákup jídla, stává se "platícím" a musí pak mít odchozí likviditu.

Pro lepší pochopení si vezměme příklad jednoduché sítě složené ze tří uzlů: kupujícího (Alice), router (Suzie) a prodávajícího (Bob).

LNP201

Představte si, že kupující chce poslat 30 000 satoshi prodávajícímu a že platba prochází přes uzel routeru. Každá strana musí pak mít minimální množství likvidity ve směru platby:

LNP201

Strategie řízení likvidity

Platící musí zajistit dostatečnou likviditu na své straně kanálů, aby garantovali odchozí likviditu. To se ukazuje jako relativně jednoduché, protože stačí otevřít nové Lightning kanály, aby měli tuto likviditu. Skutečně, počáteční prostředky uzamčené v multisig on-chain jsou zcela na straně platícího v Lightning kanálu na začátku. Platící kapacita je tedy zajištěna, pokud jsou kanály otevřeny s dostatečnými prostředky. Když je odchozí likvidita vyčerpána, stačí otevřít nové kanály. Na druhou stranu, pro prodávajícího je úkol složitější. Aby mohli přijímat platby, musí mít likviditu na opačné straně svých kanálů. Proto otevření kanálu nestačí: musí také provést platbu v tomto kanálu, aby přesunuli likviditu na druhou stranu, než mohou sami přijímat platby. Pro určité profily uživatelů Lightning, jako jsou obchodníci, existuje jasná disproporce mezi tím, co jejich uzel odesílá a co přijímá, protože cílem podnikání je primárně inkasovat více, než utratí, aby generovalo zisk. Naštěstí pro tyto uživatele se specifickými potřebami příchozí likvidity existuje několik řešení:

LNP201 LNP201

Nakonec, pro směrovače, jejichž cílem je maximalizovat počet zpracovaných plateb a vybrané poplatky, musí:

Služba Loop Out

Služba Loop Out, kterou nabízí Lightning Labs, umožňuje přesunout likviditu na opačnou stranu kanálu a zároveň si vrátit prostředky na Bitcoin blockchainu. Například Alice pošle 1 milion satoshi přes Lightning na loop uzel, který jí tyto prostředky vrátí v on-chain bitcoinech. Tím vyváží její kanál s 1 milionem satoshi na každé straně, optimalizuje její kapacitu přijímat platby.

LNP201

Tato služba tedy umožňuje získat příchozí likviditu a zároveň si vrátit své bitcoiny na-chain, což pomáhá omezit imobilizaci hotovosti potřebné k přijímání plateb pomocí Lightning.

Co si odnést z této kapitoly?

V další kapitole navrhuji projít nejdůležitější koncepty tohoto školení.

Jít dál

Shrnutí školení

a65a571c-561b-5e1c-87bf-494644653c22 :::video id=5f4f4344-ef27-4765-8f09-8262e6833bde:::

V tomto závěrečném kapitole, která označuje konec školení LNP201, navrhuji znovu navštívit důležité koncepty, které jsme společně probrali. Cílem tohoto školení bylo poskytnout vám komplexní a technické porozumění Lightning Network. Zjistili jsme, jak Lightning Network spoléhá na Bitcoin blockchain k provádění transakcí mimo řetězec, přičemž si zachovává základní charakteristiky Bitcoinu, zejména absenci potřeby důvěřovat ostatním uzlům.

Platební kanály

V úvodních kapitolách jsme prozkoumali, jak dvě strany mohou provádět transakce mimo Bitcoin blockchain tím, že otevřou platební kanál. Zde jsou kroky, které jsme probrali:

LNP201 2. Transakce v kanálu: V tomto kanálu je pak možné provádět mnoho transakcí bez nutnosti je zveřejňovat na blockchainu. Každá Lightning transakce vytváří nový stav kanálu, který je reflektován v commitment transakci. LNP201

LNP201

Síť kanálů

Po studiu izolovaných kanálů jsme rozšířili naši analýzu na síť kanálů:

LNP201 LNP201 LNP201

Správa likvidity

Viděli jsme, že správa likvidity je na Lightning výzvou, aby se zajistil plynulý tok plateb. Odesílání plateb je relativně jednoduché: stačí otevřít kanál. Nicméně přijímání plateb vyžaduje mít likviditu na opačné straně svých kanálů. Zde jsou některé diskutované strategie:

LNP201 LNP201

Sekce finále

Recenze & Hodnocení

38814c99-eb7b-5772-af49-4386ee2ce9b0 true

Závěrečná zkouška

7ed33400-aef7-5f3e-bfb1-7867e445d708 true

Závěr

afc0d72b-4fbc-5893-90b2-e27fb519ad02 true