Úvod
Kryptoměny mají určité velmi jedinečné vlastnosti. Nelze je snadno hacknout nebo vypnout a k převodu hodnoty po celém světě je může bez zásahu třetí strany použít kdokoli.
Bez významných kompromisů by ale nebylo možné tyto funkce zachovat. Vzhledem k tomu, že za provoz kryptoměnové sítě zodpovídá mnoho uzlů, je její propustnost omezená. Důsledkem toho je, že počet transakcí za sekundu (TPS), které může blockchainová síť zpracovat, je relativně nízký vzhledem k technologii, kterou mají lidé používat v masovém měřítku.
K překonání těchto inherentních omezení blockchainové sítě byla navržena celá řada škálovacích řešení zvyšujících počet transakcí, které dokáže síť zpracovat. V tomto článku si podrobně vysvětlíme síť Lightning Network – jedno z takových rozšíření bitcoinového protokolu.
Co je Lightning Network?
Ve skutečnosti vytvořením první transakce vlastně vytváříte s jiným uživatelem jistý druh chytrého kontraktu. Podrobně si to vysvětlíme za chvíli – prozatím si to představte jako chytrý kontrakt, který má s jiným uživatelem vytvořenou soukromou účetní knihu. Do této účetní knihy můžete zapsat mnoho transakcí. Uvidíte je jen vy a vaše protistrana, ale vzhledem ke specifickým vlastnostem této struktury nemůže ani jeden z vás podvádět.
Kdokoli z nich může aktuální stav kanálu kdykoli zveřejnit na blockchainu. V tu chvíli se zůstatky každé strany kanálu přidělí příslušným stranám na hlavním blockchainu.
Proč je Lightning Network potřeba?
Když toto experimentování přesunete mimo blockchain, máte mnohem větší flexibilitu. Když se něco pokazí, nebude to mít na vlastní bitcoinovou síť žádný dopad. Řešení druhé vrstvy nepodrývají žádné bezpečnostní předpoklady, které Bitcoin udržují v chodu už víc než 10 let.
Zároveň nevzniká ani žádná povinnost měnit zažité zvyky. Onchainové transakce fungují pro koncové uživatele pořád stejně, ale ti teď mají možnost provádět transakce i mimo hlavní blockchain.
Používání sítě Lightning Network má několik výhod. Ty hlavní si představíme v následujících odstavcích.
Škálovatelnost
Bitcoinové bloky se vytváří přibližně každých 10 minut a dokáží pojmout jen určité množství transakcí. Prostor v bloku je omezeným zdrojem, a proto pokud chcete svou transakci provést včas, musíte dát lepší nabídku než ostatní uživatelé. Těžařům záleží především na tom, kolik dostanou zaplaceno, takže transakce s vyššími poplatky zahrnou do bloku jako první.
Pokud se finanční prostředky nesnaží poslat mnoho uživatelů najednou, funguje to bezproblémově. Můžete si nastavit nízký poplatek a transakce bude pravděpodobně zahrnuta v následujícím bloku. Ale když všichni provádí transakce současně, průměrný poplatek může významně narůst. Při několika příležitostech překročil 5 USD. A na vrcholu býčího trhu v roce 2017 překročil 50 USD.

Průměrný bitcoinový poplatek za transakci (v USD)
U bitcoinových transakcí v hodnotě tisíců dolarů se to může zdát zanedbatelné, ale pro menší platby to není udržitelné. Kdo by při platbě za kávu v hodnotě 3 USD chtěl platit poplatek v hodnotě 5 USD?
Na síti Lightning Network platíte dva poplatky – jeden za otevření kanálu a druhý za jeho uzavření. Jakmile je ale tento kanál otevřený, vy a vaše protistrana můžete bezplatně provést tisíce transakcí. Až skončíte, stačí na blockchainu publikovat jen konečný stav.
Kdyby víc uživatelů spoléhalo na offchainová řešení, jako je Lightning Network, prostor v blocích by se využíval efektivněji. Časté transakce s nízkou hodnotou by se mohly provádět v platebních kanálech a prostor v blocích by se používal na větší transakce a k otevírání a uzavírání kanálů. To by celý systém zpřístupnilo mnohem širší uživatelské základně a bylo by možné ho dlouhodobě škálovat.
Mikroplatby
Lightning Network je k mikroplatbám mnohem přívětivější. Vzhledem k poplatkům za běžné transakce není praktické posílat na hlavním blockchainu drobné částky. V rámci kanálu ale můžete bezplatně posílat klidně zlomek zlomku bitcoinu.
Mikroplatby mají spoustu možností využití. Někteří lidé spekulují, že by mohly být vhodnou náhradou pro služby s předplatným, u kterých by uživatelé místo předplatného platili drobné částky pokaždé, když službu využijí.
Ochrana osobních údajů
Pokud má Alice kanál s Bobem a Bob má kanál s Carol, Alice a Carol si mohou posílat platby přes Boba. Když se Dan spojí s Carol, může mu peníze poslat Alice. Tímto způsobem by z toho mohla vzniknout rozlehlá síť propojených platebních kanálů. V takovém systému byste po uzavření kanálu nemohli mít jistotu, komu Alice poslala finanční prostředky.
Jak Lightning Network funguje?
Obecně jsme si vysvětlili, jak se síť Lightning Network spoléhá na kanály mezi uzly. Teď se na to podíváme podrobněji.
Vícepodpisové adresy
Při vytváření kanálu na síti Lightning Network uzamykají účastníci finanční prostředky ve schématu 2-ze-2. Existují jen dva soukromé klíče, které mohou podepsat transakci, a k převodu kryptoměn jsou potřeba oba dva. Teď se zase vrátíme k našim přátelům Alici a Bobovi. V nadcházejících měsících si budou vzájemně posílat spoustu plateb, a tak se rozhodli otevřít kanál na síti Lightning Network.
Začne to tím, že oba z nich vloží na společně vlastněnou vícepodpisovou adresu například 3 BTC. Jen opět připomínáme, že Bob nemůže z této adresy přesunout finanční prostředky, aniž by s tím Alice souhlasila, a platí to i naopak.
Stačil by jim i jen list papíru, na kterém by si upravovali jednotlivé zůstatky. Oba začínají se zůstatkem ve výši 3 BTC. Kdyby Alice chtěla zaplatit Bobovi 1 BTC, nestačilo by si prostě poznačit, že Alice teď vlastní 2 BTC a Bob vlastní 4 BTC? Tímto způsobem by si mohli sledovat zůstatky, dokud by se nerozhodli prostředky vybrat.
Samozřejmě to možné je, ale to přece není žádná zábava. A hlavně by pak pro jednoho z nich bylo neuvěřitelně snadné přestat spolupracovat. Když Alice bude mít nakonec 6 BTC a Bob skončí s prázdnou, Bob o nic nepřijde, když se rozhodne Alici nic neposlat (kromě asi svého přátelství s Alicí).
Hashed Timelock Contract (HTLC)
Výše uvedený systém je nudný a oproti dnešním důvěryhodným systémům toho moc nenabízí. Jakmile ale představíme mechanismus, který tento „kontrakt“ mezi Alicí a Bobem vymáhá, začne to být mnohem zajímavější. Pokud se jedna ze stran rozhodne, že nebude hrát podle pravidel, druhá strana má pořád možnost, jak své prostředky z kanálu získat.
HLTC vzniká kombinací hashlocku a timelocku. V praxi je možné HLTC použít k vytváření podmíněných plateb – příjemce musí v nějaké lhůtě poskytnout tajný klíč, jinak odesílatel může získat prostředky zpět. Další část bude pravděpodobně lepší vysvětlit na příkladu, takže se zase vrátíme k Alici a Bobovi.
Otevírání a zavírání kanálů
Uvedli jsme si příklad, kdy Alice a Bob vytvořili transakce, které financují sdílenou vícepodpisovou adresu. Tyto transakce ale zatím nejsou na blockchainu zveřejněné. Nejdřív musíme udělat ještě jednu věc.

Tři coiny od Boba a tři coiny od Alice.
Mohla bych se pokusit transakci okamžitě odeslat, ale vzhledem k tomu, že ji Bob nepodepsal, nebyla by platná. Alice mu nejdřív musí tuto neúplnou transakci předat. Ta se stane platnou, jakmile přidá svůj podpis.
Pořád ale nemáme žádný mechanismus, který by každého nutil jednat čestně. Jak už jsme zmiňovali, pokud vaše protistrana odmítne spolupracovat, vaše finanční prostředky jsou v podstatě v pasti. Pojďme si tedy vysvětlit mechanismus, který tomu brání. Je tvořen několika různými částmi, tak s námi mějte strpení.
Každá strana si musí vytvořit nějaký tajný klíč – označíme si je jednoduše As a Bs. Kdyby si je Alice a Bob vyzradili, nebyly by moc tajné, takže je prozatím udržují v tajnosti. Každý z nich vygeneruje k příslušnému tajnému klíči hash – h(As) a h(Bs). Takže místo toho, aby si vyzrazovali tajné klíče, si sdělí tyto hashe.

Alice a Bob spolu sdílí hashe tajných klíčů.
Když si kanál představíte jako malou účetní knihu, o které jsme mluvili výše, tak závazkové transakce jsou aktualizacemi účetní knihy. Kdykoli vytvoříte nový pár závazkových transakcí, rebalancujete dané prostředky mezi těmito dvěma účastníky.

Alicina transakce se dvěma výstupy – jeden je na její adresu a druhý na novou vícepodpisovou adresu. Aby se stala platnou, potřebuje ještě Bobův podpis.
Bob udělá to samé – jeden výstup vyplatí sobě a ten druhý odešle na jinou vícepodpisovou adresu. Tu podepíše a předá ji Alici.

Máme dvě neúplné transakce, které jsou si velmi podobné.
Nové vícepodpisové adresy (kam směřují výstupy v hodnotě 3 BTC) mají specifické vlastnosti. Pojďme se podívat na neúplnou transakci, kterou Alice podepsala a předala Bobovi. Výstup z vícepodpisové adresy je možné utratit za následujících podmínek:
- Obě strany spolupracují a přidají svůj podpis.
- Bob ho může po uplynutí určité lhůty (timelock) utratit sám.
- Alice ho může utratit, pokud zná Bobův tajný klíč Bs.
Transakci, kterou Bob dal Alici, je možné utratit za těchto podmínek:
- Obě strany spolupracují a přidají svůj podpis.
- Alice ji může po uplynutí určité lhůty utratit sama.
- Bob ji může utratit, pokud zná Alicin tajný klíč As.
Připomínáme, že ani jedna strana nezná tajný klíč té druhé, takže možnost č. 3 zatím nelze použít. Další věc, kterou je třeba poznamenat, je, že pokud podepíšete transakci, vaše protistrana může finanční prostředky okamžitě utratit, protože jejich výstup nemá žádné speciální podmínky. Můžete buď počkat, až vyprší funkce timelock, a pak prostředky utratit, nebo můžete s druhou stranou spolupracovat a utratit je rovnou.
V pořádku, teď můžete transakce odeslat na původní vícepodpisovou adresu se schématem 2-ze-2. Konečně je to bezpečné, protože pokud vaše protistrana kanál opustí, můžete svoje prostředky vybrat.
Kanál bude v provozu, jakmile se jednotlivé transakce potvrdí. Tato první dvojice transakcí nám ukazuje aktuální stav malé účetní knihy. Aktuálně vyplatí 3 BTC Bobovi a 3 BTC Alici.
Když bude chtít Alice poslat Bobovi novou platbu, každý z nich vytvoří novou transakci, která nahradí tu předchozí. Funguje to stejně – jsou podepsané jen částečně. Alice a Bob si ale nejdřív musí vyměnit staré tajné klíče a v dalším kole transakcí si zase vyměnit nové hashe.

Kdyby Alice chtěla například zaplatit 1 BTC Bobovi, dvě nové transakce by připsaly Alici 2 BTC a Bobovi 4 BTC. Tímto způsobem se aktualizuje zůstatek.
Kterákoli ze stran může kdykoli podepsat a odeslat jednu z posledních transakcí, a „vypořádat“ ji tak na blockchainu. Ta strana, která to udělá, ale bude muset počkat, až vyprší funkce timelock, zatímco ta druhá strana může prostředky utratit okamžitě. Pokud Bob podepíše Alicinu transakci a odešle ji na blockchain, ona tím získá výstup bez jakýchkoli podmínek.
Chcete začít s kryptoměnami? Kupte si Bitcoin na platformě Binance!
Jak síť Lightning Network zabraňuje podvodům?
Alici její 1 BTC přijde okamžitě. Bob na druhou stranu musí počkat, až vyprší funkce timelock, aby mohl z té vícepodpisové adresy začít utrácet. Vzpomínáte si na tu další zmiňovanou podmínku, která by Alici umožnila tytéž prostředky utratit hned? Potřebuje tajný klíč, který tehdy neměla. Ale teď ho má – jakmile bylo vytvořeno druhé kolo transakcí, Bob tento tajný klíč prozradil.
Zatímco Bob nemůže nic dělat a čeká, až vyprší funkce timelock, Alice může tyto finanční prostředky převést. Tento sankční mechanismus znamená, že se uživatelé nebudou ani pokoušet podvádět, protože druhá strana by získala přístup k jejich kryptoměnám.
Směrování plateb
O tomto jsme se už zmiňovali – kanály je možné propojovat. Jinak by síť Lightning Network nebyla pro platby až tak užitečná. Vážně byste v kanálu s kavárnou uzamkli 500 USD, jen abyste si dalších pár měsíců mohli chodit každé ráno pro svou dávku kofeinu?
Není to vůbec nutné. Pokud si Alice otevře kanál s Bobem a Bob už má kanál s Carol, může mezi nimi přesměrovávat platby. Totéž může fungovat i prostřednictvím mnohem více "přeskoků" uživatelů, takže Alice může zaplatit prakticky komukoli, ke komu existuje cesta.

Aby se Alice v této situaci dostala k Frankovi, může se vydat různými cestami. V praxi to bude vždy ta nejsnadnější.
Za směrování si prostředníci mohou účtovat malý poplatek (povinné to ale není). Síť Lightning Network je pořád velmi nová, takže trh s poplatky se zatím moc neprojevuje. Mnozí ale očekávají poplatky za poskytnutou likviditu.
Na hlavním blockchainu vychází váš poplatek výhradně z prostoru, který vaše transakce zabírá v bloku – na převáděné hodnotě nezáleží – platby v hodnotě 1 USD a 10 000 000 USD stojí stejně. Na druhou stranu síť Lightning Network nic jako prostor v bloku nemá.

Zůstatek uživatelů před a po transakci 0,3 BTC Frankovi od Alice.
Když chce Alice odeslat Frankovi 0,3 BTC, pošle 0,3 BTC na Carolinu stranu kanálu. Carol pak v kanálu s Frankem pošle 0,3 BTC ze svého místního zůstatku. Výsledkem je, že zůstatek Carol zůstane stejný: +0,3 BTC od Alice a −0,3 BTC Frankovi se vzájemně vyruší.
Carol sice vytvořením spojení mezi Frankem nepřichází o žádnou hodnotu, ale přichází o flexibilitu. V kanálu s Alicí může teď utratit 0,6 BTC, ale v kanálu s Frankem jen 0,1 BTC.
Představte si situaci, kdy je Alice spojená jen s Carol, zatímco Frank je propojený s mnohem větší sítí. Carol mohla ostatním prostřednictvím Franka poslat 0,4 BTC, ale teď už může poslat jen 0,1 BTC, protože víc na své straně kanálu nemá.
Jak už jsme zmiňovali, žádný faktický požadavek na účtování poplatku neexistuje. Někoho nemusí snížení likvidity znepokojovat. Jiní zase mohou otevřít kanály přímo k příjemci.
Omezení sítě Lightning Network
Kdyby se síť Lightning Network ukázala jako řešení pro všechny problémy Bitcoinu se škálovatelností, bylo by to fantastické. Bohužel má svoje vlastní nedostatky, které tomu mohou stát v cestě.
Použitelnost
Toto zatím není na síti Lightning Network možné. Pokud jde o aplikace pro chytré telefony, jsou možnosti dost omezené – aby byly uzly sítě Lightning Network plně použitelné, vyžadují obecně přístup k nějakému bitcoinovému uzlu.
Po nastavení klienta musí uživatelé nejdřív začít otevírat kanály, než budou moci začít provádět platby. To může být časově náročné a koncepty, jako je příchozí/odchozí kapacita, mohou být pro nováčky příliš.
Vstupní překážky se ale neustále redukují vzhledem k probíhajícím vylepšením, aby bylo používání sítě pro uživatele snadnější.
Likvidita
Jednou z největších výtek vůči síti Lightning Network je omezená možnost provádět transakce. Nemůžete utratit víc, než jste do kanálu uzamkli. Když utratíte všechny finanční prostředky takovým způsobem, že veškeré prostředky kanálu má vzdálený zůstatek, budete muset kanál uzavřít. Druhou možností je počkat, až vám tímto kanálem někdo zaplatí, ale to není zrovna ideální.
Centralizované terminály
Vzhledem k výše uvedenému problému existují obavy, že síť Lightning Network podpoří vytvoření masivních center (hubů). To znamená velké, hustě propojené subjekty se spoustou likvidity. Jakékoli podstatné platby by pak musely procházet přes některý z těchto subjektů.
To by očividně nebylo zrovna ideální. Oslabilo by to celý systém, protože jakékoli odpojení těchto subjektů od sítě by významně narušilo propojení uživatelů. Vzhledem k tomu, že by transakce plynuly jen přes několik málo bodů, zvyšovalo by se tím riziko cenzury.
Aktuální stav sítě Lightning Network
K dubnu 2020 vypadá síť Lightning Network zdravě. Může se pochlubit víc než 12 000 online uzly, víc než 30 000 aktivními kanály a kapacitou přesahující 920 BTC.

Globální rozložení uzlů sítě Lightning Network. Zdroj: explorer.acinq.co
Závěrem
Od spuštění mainnetu v roce 2018 zažívá Lightning Network pozoruhodný růst, přestože jde podle mnohých pořád jen o beta verzi.
Provoz uzlu na síti Lightning Network pořád vyžaduje určitou úroveň technických dovedností, takže v souvislosti s použitelností je pořád co vylepšovat. Překážky pro vstup by se ale vzhledem k probíhajícímu množství vývojových aktivit měly postupem času snižovat.
Když se zmíněné problémy vyřeší, síť Lightning Network by se mohla stát nedílnou součástí bitcoinového ekosystému a výrazně zvýšit jeho škálovatelnost a rychlost provádění transakcí.