Obnovit stránku

Lightning Network (VŠE, CO CHCETE VĚDĚT)

Aktualizováno • Autor: Juraj Bednár

Bitcoin vytvořil nativní internetovou digitální decentralizovanou vzácnost. Je to protokol, díky kterému můžeme mít něco, co je digitální, ale nedá se zkopírovat kopií bitů, které tvoří danou informaci. A navíc vzniká decentralizovaným způsobem. Je to první projekt, který má všechny zmíněné vlastnosti – absenci centrální autority, vzácnost a je to nativní internetový protokol. Samotný Bitcoin však není moc dobrá platební síť z více pohledů. Každou transakci ověřují všechny uzly sítě. Bitcoinový „timechain“ (resp. „blockchain“) je velmi neefektivní decentralizovaná databáze, která má právě jednu unikátní vlastnost – umožňuje vytvořit decentralizovanou kryptoměnu. Právě k řešení efektivity, rychlosti a ceny transakce vznikla síť Lightning. A jako bonus má lepší soukromí než veřejná databáze Bitcoinu.

Lightning Network

Lightning Network – OBSAH

  1. Lightning Network
  2. Platební kanály
  3. Mýty a rozdíly oproti Bitcoin on-chain
  4. Lightning ekosystém
  5. Používanost
  6. Lightning a soukromí
  7. On-chain soukromí pro držgrešle pomocí Lightningu
  8. Závěr

Lightning Network

Lightning využívá Bitcoin jako účetní jednotku a aktivum přímo a decentralizovaně, ale na rozdíl od klasických „on-chain“ transakcí, jak je známe z původního Bitcoin protokolu, využívá jiný mechanismus pro posílání satoshi (nejmenších jednotek Bitcoinu).

Síť Lightning však Bitcoin protokol využívá k řešení „sporů“. To znamená, že komunikujeme s protistranami, kterým nemusíme důvěřovat, a v případě snahy o podvod tento spor „rozsoudí“ Bitcoinová síť.

Vizualizace veřejných kanálů na veřejných adresách sítě Lightning z portálu mempool.space.

Zde se dostáváme k poněkud matoucí terminologii, protože slovem Bitcoin označujeme několik věcí – účetní jednotku, platební síť, peer to peer komunikační síť i software. Lightning nahrazuje peer to peer komunikační síť (jak si uzly mezi sebou povídají) i platební síť (jak probíhají platby), ale jako účetní jednotku používá přímo Bitcoin – dokonce nejen jeho účetní reprezentaci, ale Bitcoin samotný, což si vysvětlíme níže.

Lightning network je tedy platební síť, která jako účetní jednotku používá Bitcoin a je kryta skutečnými Bitcoiny. Do sítě se připojíte vytvořením tzv. platebních kanálů, přes které můžete do sítě posílat Bitcoiny a ze sítě dostávat Bitcoiny. K tomu, abyste někomu poslali Bitcoiny nemusíte mít s ním otevřený platební kanál – podobně jako když máte připojení na internet od poskytovatele připojení, nemáte natažen přímý optický kabel do datacentra, kde má Alza servery, ale přesto můžete číst tento článek. Poskytovatel má připojení do peeringového centra, tam je připojen jiný poskytovatel, který poskytuje konektivitu datacentru, a tedy přes více „kabelů“ se připojíte k serveru, na kterém čtete tento text. Díky digitálním podpisům v rámci protokolu HTTPS umíme dokonce zajistit, aby komunikaci mezi vaším zařízením a serverem Alza nemohl nikdo měnit – tato vlastnost je klíčová i u sítě Lightning.

Platební kanály

Platební kanál je speciální Bitcoinová adresa (resp. pro pokročilé uživatele ve skutečnosti UTXO), na které jsou zamčené Bitcoiny. Kanál je vždy mezi dvěma uživateli sítě, nazvěme je Alice a Bob.

Alice prodává skvělé bezlepkové palačinky a Bobovi chutnají a chce je pravidelně nakupovat celé rodině k večeři. Jelikož chce pokaždé platit Bitcoinem a nechce každý den platit Bitcoinový on-chain poplatek, bylo by super, kdyby mohl zaplatit pouze jeden takový poplatek a pak tyto peníze u Alice opakovaně utrácet vždy „do nasycení palačinkami“.

Alice dělá palačinky a Bob jí platí opravdovými penězi (Bitcoinem), přičemž ale nechce pokaždé zatěžovat síť on-chain transakcí.

Jednoduchý kanál může vypadat tak, že Bob pošle Alici dopředu peníze, a předplatí si tak deset večeří, ta mu vytvoří u sebe „kredit“. Problém je, že pokud se Bobova rodina přejí palačinek, nebo klesne kvalita, nebo Alice získá nového konkurenta v palačinkách, kterého Bob preferuje před Alicí, dochází k poměrně nepříjemné situaci, kdy Bob musí přijít za Alicí a poprosit ji o vrácení neutracené části kreditu ve formě peněz. Bob nemá k těmto penězům privátní klíč, už je poslal Alici, a tedy Alice musí podepsat transakci na vrácení rozdílu.

Platební kanál pro palačinky od Alice však může vypadat i jinak. Alice si vzpomněla, že Bitcoin umožňuje multisig 2-z-2, ve kterém musí každou transakci podepsat obě strany. Navrhne Bobovi takové řešení: spolu vytvoříme adresu, ze které můžeme utrácet pouze společně. Bob poté, co se dohodnou, které klíče budou ovládat tuto adresu (jeden klíč, a tedy podpis za Alici, jeden za Boba), pošle částku za deset palačinkových večeří. Ještě předtím, než tuto transakci podepíše a odešle do sítě, řekne Alici, že chce podpis na transakci, která všechny dané peníze pošle rovnou zpět Bobovi. Tuto transakci si však Bob pouze odloží a neposílá ji do Bitcoinové sítě – pokud tedy Alice zkrachuje, nebo se Bob přeje palačinek, Bob vezme transakci podepsanou Alicí, přidá k ní svůj podpis a okamžitě dostane zpátky celý svůj „kredit”.

Kanál mezi Alicí a Bobem. Má kapacitu 10 večeří a všechny zatím patří Bobovi.

Bob kupuje první večeři a dohodne se s Alicí, že nyní z celé částky za 10 večeří patří cena jedné večeře Alici a Bobovi patří zůstatková částka za devět večeří. Navzájem si vymění podepsanou transakci, která by peníze takto rozdělila – jedna večeře Alici na její Bitcoin adresu, devět večeří Bobovi na jeho Bitcoin adresu. Ani tuto transakci však do Bitcoin sítě neposílají, pouze si ji odloží. Pokud Bob začne chodit ke konkurenci a dlouho se neukáže, Alice může tuto transakci poslat do Bitcoin sítě, těžař ji vytěží a ona dostane své Bitcoiny za jednu večeři (a zbývající peníze automaticky dostane Bob). Totéž může kdykoli udělat Bob – Alice zkrachuje a nedá se s ní komunikovat, Bob vezme poslední podepsanou transakci a pošle ji do sítě, těžař vytěží a Alice dostane peníze za jednu večeři a Bob za svých devět.

Samozřejmě, teď si řeknete – co když Bob je vychytralý a odloží si transakci, kterou mu Alice podepsala na začátku a podle které mu přísluší peníze za všech deset večeří. Za tímto účelem mají platební kanály takzvané revokační klíče. Ty si strany vyměňují při podepisování nové transakce. Pokud by Bob použil tuto starou transakci, Alica vezme svůj revokační klíč a vezme si všechny peníze (za všech deset večeří). Penalizační transakce je pokuta za odeslání staršího než posledního stavu. Tedy nikdo se nemusí bát žádného podvodu (to je ta vlastnost „rozhodování sporů pomocí Bitcoinové sítě”). Poslední podepsaná transakce reflektuje aktuální stav plateb a stačí ji oznámit těžařům. Jakákoli starší transakce odeslaná do sítě znamená, že si podvedená strana může vzít všechny Bitcoiny z kanálu.

(Technický detail: K tomu, aby toto fungovalo, používá síť trik, že transakce, které si jednotlivé strany odloží, nevypadají stejně. Alice si odloží transakci, kde cena devíti večeří přísluší Bobovi hned, ale cena jedné večeře je pro Alici až po určitém době, ve které má Bob možnost použít revokační klíč, tedy pokud transakci do sítě pošle Alice, Bob dostane své peníze hned, ale Alice musí čekat, zda Bob nemá revokační klíč, kterým by si vzal cenu jedné večeře. Bob má od Alice podepsanou přesně opačnou transakci – Alici jdou peníze za jednu večeři hned, ale Bob musí počkat, zda Alice nemá revokační klíč – po vypršení časového zámku si peníze může vzít Bob, Alice si může vzít všechny peníze s revokačním klíčem).

Obousměrný provoz

Alice a Bob si za normálních okolností dokážou sami účtovat, kdo je kolik komu dlužný. Mají platební kanál, ve kterém na začátku všechny peníze patří Bobovi a postupně, jak Bob platí za večeře, stále více peněz přísluší Alici. Pokud Alice zjistí, že Bob prodává kokosový olej, který může Alice používat ke smažení palačinek, může i Alice poslat peníze zpět Bobovi. Ne však hned, protože po otevření kanálu všechny peníze patří Bobovi a Alice získává svůj zůstatek až s platbami za večeře. Pokud by Alice chtěla koupit kokosový olej hned po otevření kanálu, musela by otevřít další a „nabít” ho svými Bitcoiny, nebo se dohodnout s Bobem jinak – například může Bobovi poslat peníze pomocí on-chain platby a na oplátku Bob pošle přes kanál Alici peníze, které může Alice utrácet. Operace za účelem, aby obě strany mohly přes kanál stejně posílat a přijímat, se jmenuje vyrovnání kanálu (rebalancing) nebo vycentrování kanálu. Dá se to dělat i různými jinými způsoby. Dokonce se může Alice s Bobem dohodnout, že dají do kanálu Bitcoiny oba. Takové otevírání kanálu se jmenuje „dual funding”.

Podstatné je vědět, že přes kanál lze Bitcoiny posílat oběma směry, pokud dané straně přísluší dostatečný zůstatek. Můžete si to představit jako počítadlo.

Počítadlo. Použité pod Creative Commons licencí od Onderwijsgek z nl.wikipedia.

Platební kanál je jeden řádek počítadla. Na začátku je celá kapacita na straně Boba. Bob může poslat nějaké kuličky na stranu Alice, a tedy zůstatek deseti kuliček se rozdělí – jedna kulička Alici, devět Bobovi. Alice může poslat jen kuličky, které má na své straně. Pokud chce poslat více, musí otevřít nový platební kanál.

Bitcoin blockchain jako řešitel sporů

Pointa platebního kanálu je, že po jeho vytvoření Bitcoin on chain transakcí na zmiňovanou 2-z-2 mutlisig adresu již může probíhat nekonečně mnoho transakcí mezi Alicí a Bobem (v rámci kapacity kanálu). Zmíněné kuličky mohou přesouvat nahoru dolů, jak se jim jen zachce. Nikdo v Bitcoinové síti netuší, jaký je zůstatek na které straně a ani Alice, ani Bob neplatí žádné Bitcoinové poplatky minerům. I Alice i Bob v každém momentě mají platnou podepsanou transakci, která jim může poslat aktuální zůstatek Bitcoinů na jejich adresy. To je ekvivalent toho, že „mají klíče“. V Bitcoinu se říká – nemáš klíče, nejsou to tvoje Bitcoiny. Alice a Bob si navzájem nemusí důvěřovat. Pokud nastane spor, vyřeší jej Bitcoin blockchain, protože oba v každém momentě mohou poslat platnou podepsanou transakci, která spravedlivě rozdělí Bitcoiny mezi Alici a Boba tak, jak jim přísluší.

Schéma protokolů, které tvoří Lightning network. Jedná se o poměrně komplexní platební síť, jejíž část je přímo namapována na protokoly Bitcoinu, a tak je zabezpečené řešení sporů. Zdroj: René Pickhardt, CC BY-SA 4.0 přes Wikimedia Commons

Spor nemusí být jen o tom, že by se Alice s Bobem pohádali nebo se chtěli podvést. Alici může například vypadnout připojení k internetu, Bob je poněkud nervózní, že Alice nekomunikuje, a rozhodne se, že chce raději své bitcoiny u sebe v on-chain peněžence. Kanál s nekomunikující Alicí mu je už tak k ničemu, protože jelikož Alice neodpovídá, nemůže přes tento kanál dělat žádné další platby. Může se rozhodnout poslat poslední stav kanálu do Bitcoinové sítě. Je to jakoby „záloha“ stavu počítadla ve tvaru Bitcoinové transakce. Tato transakce je obyčejná platná transakce podepsaná Alicí i Bobem a právoplatně rozdělí bitcoiny podle posledního stavu.

Bob však může být podvodník, a když si všimne, že Alice neodpovídá, může poslat starou podepsanou transakci. Bitcoin blockchain však dokáže i tento spor vyřešit – Alice bude za pár dní online a vezme Bobovi všechny peníze (i ty, co by za jiných okolností příslušely jemu) jako pokutu za to, že chtěl podvádět. Co však když to Alice nestihne, protože je opravdu offline? K tomu jsou v Lightning network „strážní věže” (watchtower), které sledují staré stavy, a v případě, že ho někdo pošle, pošlou do sítě penalizační transakci za Alici i v její nepřítomnosti. Toto je bezpečné, protože penalizační transakce je také podepsána a nelze jí učinit nic jiného než pokutovat poslání starého stavu. Pokud nikdo nepošle starý stav do sítě, nefunguje – je neplatná, stejně jako kdyby někdo chtěl utratit bitcoiny, které nemá.

Z kanálu síť

Na platbu přes Lightning network nepotřebuji mít s adresátem platby otevřený přímý kanál. To je možné díky platebním cestám. U Alice palačinky nakupuje také masér Charlie. Ten zároveň kupuje od Boba kokosový olej pro olejové masáže. Charlie i Bob mají kanál s Alicí, ale Bob a Charlie nemají mezi sebou přímý kanál. Jak mohou navzájem komunikovat?

Pokud Charlie pošle Alici platbu za jeden kokosový olej a poprosí ji, aby ji přeposlala Bobovi, je to jednoduché. Problém však nastane, pokud si Alice platbu vezme (Charlie jí podepíše nový stav kanálu), ale Bobovi o této platbě neřekne – tedy pokud Alice neaktualizuje stav kanálu, který má s Bobem. Pokud by platební síť fungovala na důvěře, nebyla by až tak užitečná. Naštěstí Alici nemusíme důvěřovat

Bob pošle Charliemu Lightning fakturu (například jako QR kód na skutečné faktuře). Součástí faktury je kromě sumy za olej, popisu či expirace („čas splatnosti”) i tzv. hash platby. To je „klíč“, který odemkne platbu.

Vysvětlíme si to:

Invoice decoded
Dekódovaná verze Lightning invoice „lnbc10u1pju5….“. Vidíme veřejný klíč příjemce, částku v satoshis (1000), „hint” na routování (přes jaký kanál umí příjemce přijmout tuto platbu – používá se v případě privátních kanálů), popis platby („enuts”). Z pohledu směřování je důležitý „Payment Hash“ (řetězec začínající „a9b1d6…“ v tomto případě).

Charlie poprosí Alici o přeposlání platby, ale místo toho, aby její platbu poslal, ji poprosí o upravení stavu kanálu takto:

  • Uplyne-li předem určený čas (například 15 minut), peníze ve výši faktury zůstávají Charliemu.
  • Pokud Alice získá tzv. „preimage“, jehož hash se shoduje s hashem na faktuře (podrobněji vysvětlíme později), platba se „odemkne“ a daná část kanálu připadne Alici.
  • Všechny ostatní části kanálu patří původním majitelům.

Alice nemá důvod takové rozdělení nepodepsat – buď bude mít tolik peněz jako dosud, nebo pokud nějak dostane „preimage“, bude mít peněz víc.

Alice bob payment
Charlie posílá peníze Bobovi přes Alici. Zaplacení probíhá tak, že Charlie vytvoří cestu na základě hashe z Bobovy faktury. Bob platbu potvrdí tak, že Alici předá preimage (X), jehož hash souhlasí s hashem ve vytvořené cestě. Tehdy si může vzít satoshis z kanálu s Alicí a Alice si může vzít satoshi z kanálu, který má s Bobem.

K tomu, aby Alice získala preimage, musí poprosit o podobné nastavení v jejím kanálu směrem k Bobovi. Bobovi pošle peníze, pokud získá preimage, jinak peníze zůstávají jí. Alice je ochotna tuto transakci podepsat, protože sice bude mít méně peněz v kanálu s Bobem, ale tentýž preimage lze okamžitě použít k získání peněz od Charlieho, takže nic neprodělá ani nevydělá, jen se jí změní stav kanálů – více bude mít v kanálu od Charlieho, méně v kanálu od Boba.

Bob vidí, že může získat peníze za platbu od Charlieho. Stačí, když Alici pošle preimage. Ten automaticky odemkne peníze pro něj. Alice tento preimage pošle Charliemu a získá peníze na svoji stranu. Pokud se stav kanálů ustálil, mohou se preimage z transakcí smazat a kanál se vrátí k původnímu počítadlu – rozdělení prostředků mezi dvěma stranami kanálu.

Vysvětlení funkcionality kanálů a sítě Lightning network.

Alice samozřejmě raději dělá palačinky, než podepisuje transakce, a proto v tomto celém hrají roli i poplatky. Aby si Alice našla čas na podepisování transakcí mezi obracením palačinek, bylo by fajn, kdyby od Charlieho dostala dostala trochu víc, než pošle Bobovi. Toto je poplatek za směřování platby. Tento poplatek vydělá Alice, ne těžař, protože taková platba se vůbec nepošle do Bitcoinového blockchainu.

Bitcoinový blockchain i v případě platby procházející přes více platebních kanálů pouze rozhoduje spory a v každém momentě je možné určit, kolik peněz přísluší které straně. I v případě, že se některý kanál během platby zavře, je vše v pořádku – ostatní kanály, přes které prošla platba, jsou nedotčeny a mezi Bobem a Charliem nikdy nedojde k přímé on-chain transakci.

V celé této jednoduché tržní výměně přijde v ideálním případě jen ke dvěma on-chain transakcím – otevření kanálu mezi Alicí a Bobem a otevření kanálu mezi Alicí a Charliem. Všechny prodeje palačinek, kokosového oleje a masáží v tomto malém ekosystému již probíhají mimo Bitcoin blockchain, jsou vyrovnávány okamžitě (není třeba čekat na potvrzení) a s minimálními poplatky. Kromě toho, tyto transakce probíhají pouze komunikací mezi zúčastněnými stranami – nikdo jiný se o těchto platbách nedozví.

Bitcoinovými on-chain transakcemi „zatěžujeme“ celý svět, ale Lightning platby jsou soukromé a probíhají jako „šeptání“ mezi Alicí, Bobem a Charliem. Spolu se dokáží dohodnout a nastane-li problém, řeší spor jen s problémovou stranou – posláním poslední platné transakce do Bitcoinového blockchainu.

Kapacita kanálu

Pokud otevřete kanál, většinou můžete přes tento kanál satoshi pouze posílat. Některé peněženky to však řeší tak, že v případě otevření kanálu přidají „své“ Bitcoiny na svou stranu kapacity, takže vám mají přes daný kanál co poslat. Můžete tedy přijímat i odesílat. Další možností je po otevření kanálu část peněz poslat nazpět on-chain pomocí swap služby jako například Breez. Tedy přes daný kanál zaplatíte lightning fakturu, jejíž zaplacením vám poskytovatel daný zůstatek (mínus poplatky) pošle zpět on-chain. Skončíte tak s větším kanálem, kde je část kapacity na vaší straně.

Jak přemýšlet nad kapacitou kanálu? Analogií je více, zkusme použít tuto:

Tweet z účtu peněženky Phoenix o tom, jak přemýšlet nad kapacitou kanálu.

Představte si, že vaše peněženka je kbelík a váš zůstatek je voda v kbelíku. Pokud platíte vodou, vyléváte vodu (například do jiné nádoby). Přijímání je přilévání vody do vašeho kbelíku. Vodu, kterou máte v kbelíku, můžete vždy „utratit“ (vylít). Ale pokud chcete přijmout (dolít) více vody, než máte volného místa ve kbelíku, potřebujete nový kbelík.

Kdykoli je třeba změnit velikost kbelíku, aby se do něj mohlo nalít více vody, jde o on-chain operaci. U většiny peněženek to je otevření nového kanálu. Peněženka Phoenix má však stále jen jeden kanál a dokáže ho zvětšit (splice-in).

Splice-in. Nové prostředky přicházejí do kanálu, čímž se původní kanál zvětší. Splice-in je jedna on-chain transakce, která spojí Bitcoiny z původního kanálu, přidá prostředky z nového kanálu, čehož výsledkem je větší kanál. Zdroj: Blog peněženky Phoenix

Jak se ke kapacitě postavit? Pokud zvládnete zaplatit občas on-chain poplatek, tak při běžných non-custodial peněženkách pro koncové uživatele kapacitu nemusíte řešit. Pokud není dostatečná, poskytovatel peněženky vám ji zvýší. To platí například u peněženek jako Breez nebo Phoenix.

Pokud Lightning používáme častěji a jsme citliví na poplatky, je důležité kapacitě rozumět a lze trochu plánovat. Typický příklad, kdy bychom se měli na poplatky podívat, je hlavně v případech, kdy chceme častěji přijímat platby. To může být například pokud chceme přijímat Bitcoiny přes Lightning ve svém podnikání, případně plánujeme-li pomocí Lightningu nakupovat Bitcoiny pomocí strategie DCA (Dollar cost averaging).

Proč nás odesílání až tak nemusí zajímat? Podíváme-li se zpět na analogii s vědrem, vodu, kterou chceme přelít do kbelíku někoho jiného, už ve kbelíku máme, takže k odesílání přes Lightning nepotřebujeme nový kbelík nikdy – voda už v nějakém kbelíku je.

Otázka tedy je, jak získáváme přicházející likviditu – používáme-li peněženku typu Phoenix, dostáváme ji od nějakého poskytovatele likvidity. V případě Phoenixu jsou to přímo autoři peněženky – pokud je kapacita nedostatečná, provozovatel ve spolupráci s vaší peněženkou otevře nový kanál a platba projde. Vy ale zaplatíte on-chain poplatek za příchozí platbu.

Pokud víme, že budeme přijímat více plateb (například od klientů), můžeme si koupit přicházející likviditu nebo si ji jinak vytvořit. Kdysi byla prakticky jediná možnost udělat to, že nám někdo poslal sats přes Lightning (například ve výši 1M satoshi), my jsme mu poslali zpátky o trochu méně a měli jsme kanál s přicházející likviditou. Taková operace stála odesílatele nějaký lightning poplatek (je-li odesílatel Phoenix, tak 0,4 %) a nás 0,4 %, tedy náklad této operace byl cca 0,8 % + on-chain poplatek. Phoenix konkrétně umožňuje koupit přicházející likviditu i bez „kamaráda“, který nám pošle peníze. Poplatek je sice poněkud vyšší (1 %), ale Phoenix se tváří, že přicházející likviditu garantuje alespoň na rok.

Kbelík jsou naše sats v kanálu. Můžeme přijmout kapacitu kanálu minus náš zůstatek. Pokud chceme přijmout víc, potřebujeme nový kanál – větší kbelík. Výměna kbelíku je on-chain transakce.

Pokud tedy pravidelně nakupujeme Bitcoiny nebo přijímáme platby, můžeme najednou získat likviditu ve výši odhadovaných příjmů na nejbližší měsíce a zaplatit jeden on-chain poplatek za „velký kbelík“. Potom je další přijímání zdarma.

U jiných peněženek může být tato likvidita získána jiným způsobem – pomocí služby poskytovatele likvidity, případně u jiných peněženek dokonce můžeme kanály otevírat manuálně. K tomu nám může pomoci služba Lightning Network+. Je to nekomerční služba, která nám umožňuje vyměňovat si likviditu. Nejčastějším způsobem je zapojení se do tzv. trojúhelníku, kde si tři strany (A, B a C) mezi sebou otevřou kanály. A otevře kanál s B, B otevře kanál s C a C otevře kanál s A. Všichni tři tedy zaplatí po jednom on-chain poplatku a každý získá kanál s odchozí i přicházející likviditou. Jiné poplatky s touto službou spojené nejsou, ale je dobré podívat se na podmínky – jak dlouho máte nechat kanál otevřený, kolik jiných kanálů už musíte mít a v jaké kapacitě. Takto tedy většinou není možné otevřít váš první kanál – ten je ale dobré otevírat s lidmi ve vaší komunitě nebo na služby, se kterými plánujete interagovat. Například Confirmo, Paralelní Polis, Breez, Phoenix apod. Seznam československých nodes naleznete na githube Paralelní Polis, úplně dole (můžete se do seznamu i přidat vytvořením pull requestu).

Služba Lightning Network+, která umožní lidem dohodnout se na vytvoření kanálů pro společné zvýšení kapacity. Například druhá nabídka z leva je na kanál ve výši milion satoshi v „trojúhelníku“, přičemž je v tomto swapu volné jedno místo. Chcete-li se do tohoto trojúhelníku přidat, můžete rovnou otevřít kanál a dostanete kanál s kapacitou milion satoshi k přijímání.

Při kapacitě ještě zůstaneme – kanály je dobré otevírat tehdy, když jsou nižší poplatky. Maximální poplatek, který jste ochoten zaplatit, si určujete vy, pokud kanál otevíráte přímo, případně jej najdete v nastavení peněženky. Je možné, že díky tomuto nastavení při nedostatečné kapacitě nebudete schopni přijmout platbu, protože kapacita je nedostatečná a peněženka nový kanál kvůli poplatkům neotevře. Proto je dobré plánovat a otevírat kanály v době nižších poplatků – často to bývá například o víkendu. Nebo sledujte Bitcoinery na X nebo na Nostr, často napíšou hlášku „dobrý čas na otevření Lightning kanálů”.

Bezpečnost

Vaše Lightning peněženka je jen tak bezpečná jako vaše zařízení. Jelikož při každé platbě (odeslané, přijaté nebo jen procházející přes nás) je třeba podepsat transakci, všechny privátní klíče jsou online na zapnutém počítači. Nemůžeme ručně podepisovat transakce potvrzováním na hardwarové peněžence jako v případě běžných Bitcoin plateb. Tedy alespoň v době psaní tohoto článku zatím nikdo nevytvořil hardwarovou peněženku pro Lightning, i když technicky to možné je (podobně jako v Trezor Suite můžete nechat běžet coinjoin bez potřeby potvrzovat každé jedno kolo).

K bezpečnosti patří také záloha, dostupnost. Nemusí nutně dojít k hacku nebo krádeži vašeho zařízení, může se také pokazit. Myslete na to, jaké prostředky riskujete a zda to riziko stojí za to.

Na Lightningu je třeba mít peníze na běžné utrácení a dávat si pozor na bezpečnost vašeho zařízení.

Kolik je „na běžné utrácení“ závisí na každém jednotlivci, ale například peněženka Breez má omezení na maximální výši zůstatku v peněžence 4 miliony satoshi. Při této částce už doporučují poslat satoshi do hardwarové peněženky.

Jak zálohovat Lightning

Jelikož stav kanálu se mění, zálohou Bitcoinové peněženky není pouze mnemonic seed (známých 12 či 24 slov). Ke každému kanálu je třeba mít uloženy poslední zazálohované stavy (zvané commitment transaction), revokační klíče všech předchozích stavů a další informace. Jelikož v případě poslání starého stavu do Bitcoinového blockchainu přichází ten, co to udělá, o všechny peníze, je velmi důležité mít aktuální zálohu – vteřinu stará záloha může znamenat, že přijdete o peníze, neboť přes vás bleskově proběhla platba.

Některé peněženky (například Phoenix) dělají to, že zálohy posílají do cloudu a šifrují je klíčem odvozeným ze seedu. V takovém případě je „zálohou”, kterou vidíte, opravdu jen seed, ale je dobré vědět, že k jejímu obnovení potřebujete i to, aby „cloudová” služba provozovatele na druhé straně fungovala. Je málo pravděpodobné, že budete potřebovat obnovit peněženku a zároveň nebude existovat druhá strana, ale o tomto problému je dobré vědět – čistě se seedem se dostanete pouze k prostředkům z plně zavřených kanálů.

Peněženka Breez umožňuje zálohu do „cloudu“. Android verze umožňuje zálohu na vlastní vzdálený server nebo Google Drive, iOS verze umožňuje také zálohu do Apple iCloud. Záloha je standardní záloha, kterou můžete importnout i do Lightning nody lnd, tedy je naprosto nezávislá na existenci peněženky Breez. Zároveň je zašifrována, takže v případě úniku dat z cloudu nepřijdete o peníze. Phoenix není plně nezávislý na provozovateli, „cloud“ je v tomto případě jejich server. Na druhé straně je málo pravděpodobné, že přijdete o přístup k appce a zároveň vypadne server provozovatele – ke coinům se umíte dostat přes appku i bez spolupráce serveru a můžete zavřít kanály.

Zálohování kanálů není sjednocené – každá peněženka k tomu má jiný mechanismus. Existuje speciální typ zálohy, který se nazývá statická záloha kanálů (static channel backup), který je použitelný v případě vážnější poruchy a neexistence aktuální zálohy. Tento typ zálohy neobsahuje poslední stavy, pouze to, s kým máme otevřené kanály. Na základě tohoto kanálu máme možnost poprosit druhou stranu o zavření kanálu – nemáme vše potřebné k tomu, abychom to udělali sami, ale alespoň víme, koho můžeme pomocí Lightning protokolu požádat o zavření a o které kanály se jedná. Protistrana nám ovšem nemusí vyhovět, dokonce nemusí být online, takže to není stoprocentní záloha. Na druhé straně ji můžeme použít tehdy, když si nejsme jisti, zda máme aktuální zálohu – nebo víme, že ji nemáme.

Mimochodem, taková žádost o zavření kanálu by mohla protistranu vybízet k tomu, aby zavřela kanál se starým stavem, v němž jí přísluší větší zůstatek. K tomu, aby to neudělala, existují strážní věže (watchtowers), které mají uloženy revokační klíče starých stavů a dokážou protistranu potrestat i v případě, že my nemáme zálohu revokačních klíčů. Těmto watchtowers nemusíme důvěřovat, informaci nemají jak zneužít, umí pouze potrestat protistranu v případě, že by chtěla udělat podvod.

Mýty a rozdíly oproti Bitcoin on-chain

Síť Lightning si nyní představíme na základě mýtů a rozdílů oproti Bitcoinové síti.

Lightning jsou skutečné Bitcoiny

Tento mýtus je poměrně častý a přirovnává síť Lightning k technologiím jako sidechains (Liquid, Rootstock) nebo k různým způsobům „wrapování“ (zabalení) Bitcoinů v jiných sítích (WBTC, BTC.b). Zamysleme se teď, co je to Bitcoin hlavně z pohledu vlastnictví. Bitcoiny jsou „uloženy“ ve veřejné databázi zůstatků, kde se síť shodne na tom, na jakých adresách je jaká částka.

Zmiňoval jsem tradiční Bitcoinerskou poučku – „nemáš klíče, nemáš Bitcoiny”. To je částečně pravda, ale ne všechny Bitcoiny jsou skutečně chráněny privátními klíči, a ne vždy je nutné mít všechny privátní klíče. V „klasických“ on-chain peněženkách to však platí – pokud máte privátní klíče, dokážete vytvořit a podepsat platnou transakci, kterou Bitcoiny pošlete na jinou adresu.

V síti Lightning máte vždy platnou transakci, kdy si můžete vzít zůstatek, který vám přísluší. Nepotřebujete při tom spolupráci nikoho jiného – když se rozhodnete peníze poslat, tak to můžete udělat sami, čímž vám Bitcoin nechává suverenitu.

Toto platí i při Lightningu. Jediné omezení je, že své peníze můžete dostat na svoji adresu bez spolupráce se třetí stranou až po vypršení časového zámku, který zajišťuje možnost pokutovat starou transakci. Pokud nechcete s nikým spolupracovat, své coiny dostanete bez jakékoli další strany, stačí vzít poslední commitment transakci (stav kanálu) a poslat ho do Bitcoinové sítě, aby jej vytěžili a poté po vypršení časového zámku si vzít peníze podepsáním transakce klíčem, který máte.

Samozřejmě, toto není nejefektivnější způsob jak získat Bitcoiny – ideální je nezavírat kanál a dělat pouze swap (například pomocí zmiňované služby Boltz nebo funkcionality vaší peněženky). Dokonce i když chcete kanál zavřít, je mnohem lepší to dělat s protistranou, se kterou tento kanál máte otevřený (cooperative close), protože nemusíte čekat a dělat další transakci.

Není Bitcoin jako Bitcoin – jaké různé podoby Bitcoinu existují? Grafika z knihy Kryptoměny – vyhackuj si lepší život (ebook, papírová kniha). Z pohledu sidechainů se jedná o „bankcoin“, tedy závazek třetí strany, ale Lightning je skutečný Bitcoin.

Pokud však řešíme otázku, zda jsou to „vaše bitcoiny“, nebo jen slib někoho dalšího, že je na požádání vyplatí (což je případ například zmíněných sidechains nebo jiných forem bankcoinu, například burzovních zůstatků), při Lightningu nepotřebujete k poslání transakce nikoho dalšího, v nejhorším jen trochu času.

Lightning nemá adresy

Lightning network nemá adresy. Platbu provádíme vytvořením platební cesty k uzlu a zaplacením Lightning faktury. Lightning faktura jako taková se po platbě ztratí a nemusíme ji nikde ukládat. Lightning má o dost vyšší soukromí než on-chain platby a o jednotlivých platbách neexistuje (na rozdíl od Bitcoin blockchainu) veřejně dostupný permanentní záznam – uskutečněná platba jen změní rozdělení zůstatků platebních kanálů. Vaše peněženka si samozřejmě může pamatovat, co zaplatila a co přijala, ale to je jen pro účetní účely a zobrazení historie.

Lightning faktury fungují trochu jinak než Bitcoinové adresy. Požádejte o Lightning fakturu, ne „adresu“.

Jelikož na zaplacení Lightning faktury je nutná spolupráce obou stran (a části Lightning sítě, kterou používáme jako platební cestu), faktura obsahuje informaci, jak nakontaktovat druhou stranu, jaký veřejný klíč můžeme použít, o jakou platbu (jakou částku) se jedná, popis platby a expiraci. Fakturu po expiraci již nelze zaplatit a je třeba vytvořit novou. To je výhodné kvůli změnám kurzu Bitcoinu – částka v Bitcoinu je často platná jen omezenou dobu, ale například Bitcoin platební požadavek lze zaplatit kdykoliv.

Lightning nemá historii

Na rozdíl od on-chain plateb nemají Bitcoiny zasílané přes Lightning historii. Platba přijde účetní změnou (vynutitelnou on-chain transakcí) přes platební kanál, který máte otevřený. Bitcoiny, které odesílatel posílá tedy nijak nesouvisí s tím, jaké coiny přijmete. Z tohoto důvodu je dobré při přijímání Bitcoinů používat právě Lightning, neboť nemusíte řešit, zda dané coiny nejsou na nějakém seznamu nepěkných coinů, ať už na tyto seznamy máme jakýkoli názor.

Finalita – transakce jsou potvrzené hned

Máme-li otevřený kanál, přes který přijímáme, nemusíme na platbu čekat. Poté, co je platba potvrzena, coiny máme nezávisle na těžařích a zaplnění bloků.

Každý, kdo kupoval Bitcoiny od někoho a mrznul v temném podchodu v rukavicích, šále a čepici, ocení, že při Lightningu není třeba čekat na potvrzení od minerů a transakce jsou konečné okamžitě.

Dokonce i v případě, že je třeba zvětšit kanál kvůli nedostatečné kapacitě pro přijímání, není třeba čekat, protože odesílatel nedokáže udělat double-spend. Riziko nepotvrzení transakce je v tomto případě pouze mezi příjemcem a jeho partnerem, takže pokud věříte, že vás operátor peněženky nechce podvést, nemá cenu mrznout na ulici a čekat na potvrzení.

Poplatky

Lightning poplatky nejsou zdarma. V kanálu je uzamčena likvidita a pro její odemčení je třeba v nejhorším případě provést on-chain transakci. Proto si jednotliví aktéři v bitcoinové síti za přeposílání plateb účtují poplatky. Ty závisí na částce (protože mění vlastnictví kanálu, a tedy jsou závislé na částce).

Poplatky jsou většinou nižší a při malých sumách (jako například zaps na Nostr) se vyplatí více než on-chain poplatky. Zároveň poplatky velmi nezávisí na zaplnění bloků. Proto je dobré otevírat kanály v době nižších poplatků a přes otevřený kanál lze pak posílat levné platby. U větších částek se ale už může vyplatit provést on-chain platbu.

Zda se více vyplatí Lightning poplatky, nebo on-chain poplatky, závisí zejména na on-chain poplatcích, protože poplatky na Lightning síti jsou mnohem stabilnější. Dobrým zdrojem aktuálního stavu on-chain poplatků naleznete například na stránce mempool.space.

Jak vysoké jsou poplatky? Na konkrétní poplatky jsem se podíval ve Velkém testu Lightning peněženek na mém blogu. Heuristika je, že poplatek je většinou kolem nejvýše 0,4 % z odesílané částky (za přijímání přes existující kanál s dostatečnou kapacitou příjemce nic neplatí). V době psaní tohoto textu je poplatek za zařazení běžné transakce se dvěma vstupy a se dvěma výstupy do dalšího bloku cca 2 240 sats, tedy při částce nad 560 tisíc sats se již může vyplatit více on-chain platba.

Více o poplatcích v Bitcoinu jsme psali v článku Bitcoin v prostředí vysokých poplatků (TIPY A TRIKY)

Lightning ekosystém

Síť Lightning network má poměrně bohatý ekosystém projektů a firem. Většinu z nás napadne jako první kategorie peněženky, ale ty jsou jen malou částí celého ekosystému. Jelikož klíčovou je kapacita kanálu, je zde nová kategorie poskytovatelů likvidity, či kapacity kanálů.

Samozřejmě, máme zde poskytovatele různých služeb přes Lightning, sociální síť Nostr, e-cash systémy, směnárny, které umožňují vklady a výběry přes Lightning, platební brány, které vám pomohou s akceptací, aplikace podcastingu 2.0, či služby voucherů.

Pohled na Bitcoinový ekosystém v roce 2023. Vidíme různé typy poskytovatelů Lightning služeb. Zdroj: River

Služby vznikají takovou rychlostí, že potřebujeme studie k tomu, abychom to byli schopni sledovat, a přesto mnozí nestíháme. Proto jakékoli doporučení na konkrétní peněženky a služby mohou být zastaralé dříve, než zaschne pomyslný inkoust na tomto článku. Proto doporučujeme sledovat dobré Bitcoinery a číst aktuální vydání Bitcoin Alza.

Peněženky

U Lightning ekosystému nás budou zajímat primární peněženky, protože to je první věc, se kterou se uživatelé při používání Lightningu setkají. Ekosystém peněženek je pestrý – od Lightning uzlů, které si zkušený systémový administrátor nainstaluje na svůj server (lnd, core lightning, eclair, …), přes distribuce, které kromě samotného uzlu poskytují i další služby (například btcpayserver, resp. btcpayserver-docker, Cryptoanarchistic Debian Repository, či více pro domácí kutily založený Umbrel, Citadel, RaspiBlitz, myNode, StartOS, Nodl, …).

Domácí nodes budou poskytovat Lightning a Bitcoin uzly pro komunitu, datové úložiště, e-cash mint, či jiné služby. Chcete-li být vlastní bankou, je dobré mít jednoduchý domácí server, který vám umožní mít pod kontrolou vaše data. Zdroj: Cypherpunk visions and trends 2023–2025.

Peněženku (včetně Lightning uzlu) je samozřejmě možné provozovat i na mobilním zařízení, domácím laptopu nebo na desktopovém počítači. Peněženky se liší podle toho, co poskytují a jakou kontrolu dávají uživateli.

O Custodial peněženkách uvažovat nebudeme – nejsou to Bitcoinové (ani Lightning) peněženky, poskytují přístup k bankovním službám třetích stran, a tudíž jsou proti esenci samotného Bitcoinu.

Jednoduché na používání jsou Lightning peněženky druhé generace, které pomáhají uživatelům s likviditou a případnými swap operacemi. Asi nejznámějšími peněženkami jsou PhoenixBreez. Obě běží na iOS i Android, ale mají různý přístup. Breez spustí plný lnd uzel, který na mobilním telefonu dělá přímo směřování plateb. Kromě toho se integruje například s přehráváním podcastů a jinými službami. Poskytuje také likviditu a swap-in či swap-out služby pro přijímání a posílání on-chain plateb. Tím, že peněženka zajišťuje směrování, bývá pomalejší a musí se více synchronizovat se sítí – i s Bitcoin blockchainem (aby viděla, zda někdo nezavřel kanál), i s peer to peer Lightning sítí (aby měla přehled o uzlech a mohla bezpečně směřovat platby). Jedná se o poměrně zajímavý koncept, kde se autoři snaží experimentovat s novými možnostmi, které nabízí Lightning. I proto mají omezení na maximální zůstatek 4M satoshi.

Peněženka Phoenix patří mezi jednoduché peněženky, které se „ovládají dvěma tlačítky“ – přijmout a odeslat.

Phoenix naproti tomu přináší jednoduchost, menší datovou náročnost a předvídatelnost, na úkor soukromí a množství poskytovaných služeb. Platby směřuje server provozovatele – uživatel má tedy Lightning uzel, ale ten deleguje úkoly jako vytvoření platební cesty na server. Na druhé straně Phoenix na rozdíl od Breez podporuje připojení přes anonymizační síť Tor. Privátní klíče má ovšem stále pod kontrolou aplikace uživatele na telefonu, takže se nejedná o custodial peněženku. Phoenix má jednoduchou strukturu poplatků (0,4 % za odeslanou platbu, on-chain poplatek za přijatou platbu). Nevýhodou je i nízké on-chain soukromí, protože pro přijímání on-chain platby se používá stále stejná adresa a prostředky se připojí ke stávajícímu kanálu pomocí splice-in (k vyřešení tohoto problému ale můžete používat externí službu typu boltz.exchange).

Ukázka instalace a používání peněženky Phoenix Wallet. Video je součástí kurzu Jak si koupit první kryptoměny a zaplatit jimi, který je dostupný zdarma a bez registrace. Naleznete v něm další návody, jak používat Bitcoin, jak koupit Bitcoiny v automatu, či používat aplikaci Vexl.

Phoenix i Breez mají jeden Bitcoin zůstatek – na rozdíl od jiných peněženek nemáte „on-chain“ a „Lightning“ zůstatek, ale všechny satoshi máte v Lightning kanálu, ze kterého je ale můžete poslat i na on-chain adresu. Jiné peněženky (Mutiny, Zeus a podobně) zvláště ukazují Lightning a on-chain zůstatky a umožňují vám mezi nimi konvertovat. Máte tak větší kontrolu, ale také více řešení.

Dalším typem peněženky jsou webové (Progressive Web Apps) peněženky. Dobrým reprezentantem takové peněženky je Mutiny Wallet, na kterou jsme na psali recenzi nedávno. Tato peněženka obchází cenzuru obchodu App Store a Google Play, a tudíž si může dovolit experimentovat s jinými nástroji.

Peněženka Blockstream Green s experimentální podporou Lightningu, podporuje však i zvláštní on-chain zůstatky a síť Liquid. Také podporuje účty chráněné pomocí multisigu.

Autoři peněženky Breez ve spolupráci se společností Blockstream vytvořili také Breez SDK – nástroj, pomocí kterého můžete integrovat Lightning do vaší aplikace. Jedná se o model poněkud podobný Phoenixu, kdy část funkcionality přebírá Blockstream Greenlight infrastruktura, ale privátní klíče zůstávají u uživatele. Na tomto SDK jsou postaveny aplikace jako například peněženka Blockstream Green (která má experimentální podporu Lightningu), ale také aplikace Satimoto, která umožňuje v západní Evropě nabíjet elektroauta bez potřeby účtů a kreditních karet – čistě pomocí streamovaných plateb. Inovací s integrovanou peněženkou je například i aplikace skupinového šetření na zdravotní péči  Crowdhealth.

Při přijímání přes Blockstream Green vidíte poplatky, které se po zaplacení dané Lightning faktury zaúčtují za otevření kanálu (zvýšení kapacity). Poplatky jsou u jednotlivých služeb velmi podobné.

Některé peněženky vám umožňují získat vyšší kontrolu, například peněženka Blixt Wallet sice umožňuje automatické otevírání kanálů, ale můžete si kanály otevřít také manuálně, případně si koupit likviditu u více poskytovatelů. Na rozdíl od Phoenix a Breez tedy nejste omezeni na kanály s poskytovatelem peněženky, ale můžete si vybrat, s kým chcete mít kanál otevřený. Dávejte si však pozor na to, že kanály s mobilními peněženkami mnohé uzly zavírají, protože kanál je často nepoužitelný ke směrování, a jedná se tedy o zmraženou likviditu, kterou provozovatelé uzlů mohou používat jinde. Nedivte se tedy, pokud vám takový náhodně otevřený kanál po čase protistrana zavře – chcete-li stabilní likviditu, je často třeba si ji koupit, nebo použít vlastní uzel.

Vlastní uzel můžete použít například s peněženkou Zeus. Umožní vám připojit se ke své core lightning, nebo lnd node, nebo na uzel, který podporuje protokol lndhub (například lnbits). Můžete tak na mobilu používat peněženku, která bezpečně komunikuje s vaším domácím uzlem. Zeus však umožňuje spustit uzel i na vašem zařízení. Otevírat kanály může automaticky pomocí integrovaného liquidity providera Olympus, ale můžete interagovat i s jinými poskytovateli likvidity a také si můžete otevírat vlastní kanály.

Existuje ještě jeden typ peněženek, které jsou Lightning tak trochu jen navenek. Za zmínku stojí Muun a Aqua. Peněženka Muun se tváří jako Lightning peněženka, ale ve skutečnosti má sjednocený on-chain zůstatek a každou Lightning platbu (přicházející i odchozí) přemění pomocí technologie swapů na on-chain platbu. Platíte tedy při každé transakci on-chain poplatky. To se v prostředí vysokých poplatků ukazuje jako ne až tak dobrý nápad.

Peněženka Aqua umožňuje používat síť Liquid a integruje swap službu mezi Liquid a Lightning do uživatelského rozhraní. Můžete tak naskenovat QR kód Lightning faktury, nebo jej vložit a zaplatit ji, aniž byste měli otevřený jakýkoli kanál. Bloky na síti Liquid trvají přesně minutu, takže i v případě, že by síť čekala na potvrzení, bude to v průměru 30 vteřin. Pokusná platba ale proběhla téměř okamžitě a při 10 000 sats byl celkový poplatek 426 sats, což je u takto nízkých plateb stále poměrně vysoký poplatek, ale při přijímání vyšších plateb může být výhoda to, že není třeba řešit kapacitu.

Peněženka Aqua funguje podobně, ale on-chain transakce dělá na síti Liquid, která má nižší poplatky. Nemusíte se tak starat o likviditu, kapacitu kanálů a podobně. Swap však ne vždy funguje spolehlivě, je to ovšem možná tím, že tato peněženka je stále na trhu poměrně nová (hlavně její podpora Lightningu).

Některé peněženky jsem otestoval ve Velkém testu Lightning peněženek. Je však mnoho nových peněženek, které se do testu nedostaly.

Přijímání Lightning plateb v provozu

Pro přijímání Lightning plateb můžete použít jakoukoli peněženku s dostatečnou kapacitou kanálu nebo vhodnými podmínkami pro přijímání plateb. Je možné používat peněženku Phoenix (ideální při zakoupení likvidity).

Ukázka režimu Point of Sale peněženky Breez – jednoduchá akceptace Bitcoinů pomocí Lightningu ve vašem provozu.

Peněženky Breez a Zeus mají dedikovaný režim „Point of Sale”, určený vysloveně k přijímání plateb v provozu. Můžete si tak vytvořit produkty či ochránit posílání Bitcoinů z peněženky dodatečným „administrátorským“ heslem, čímž ochráníte zůstatek v peněžence před krádeží zařízení.

Peněženka Breez (ale například i Phoenix) umožňuje ukrýt zůstatky a částky. Můžete tak otevřít peněženku v přítomnosti někoho jiného (zákazníka nebo prodejce kryptoměn), aniž byste jim ukázali váš aktuální zůstatek.

K přijímání plateb můžete samozřejmě použít i PoS modul btcpayserveru, ale na ten už musíte provozovat plný Lightning uzel na serveru. Pro většinu uživatelů (malých podnikatelů, živnostníků) stačí mobilní aplikace.

Používanost

Další zásadní otázka je – kdo to používá? Signifikantní nárůst počtu uživatelů hlásí všechny platební brány i autoři peněženek.

Nárůst počtu plateb. Jedná se o sofistikovaný odhad, protože mnohé platby prostě nevidíme a nemáme je jak započítat. Jednou z příčin nárůstu jsou Nostr zaps. Zdroj: River

Je to způsobeno několika faktory. V první řadě je to kvalitou peněženek, které mají v poslední době mnohem méně selhaných plateb, jsou uživatelsky přívětivější a podobně. K tomu je třeba myslet na nárůst počtu uživatelů Bitcoinu a nárůst on-chain poplatků. A také pokles popularity altcoinů, jejichž základní přidaná hodnota byly nižší poplatky.

Oranžová na grafu ukazuje procentuální dominanci Bitcoinu oproti altcoinům podle tržní kapitalizace. Modrá ukazuje průměrný transakční poplatek v USD. Vidíme, že koncem roku 2017 a v roce 2021, kdy vzrostly poplatky, přelila se tržní kapitalizace do Bitcoinu, ale při posledním zvýšení poplatků koncem roku 2023 výraznější pokles nevidíme – spíše drobný nárůst. Je to kvůli popularitě sítě Lightning network, která problém poplatků částečně řeší? „Na vině“ může být i schválení ETF nebo cokoliv jiného. Zdroj: TradingView chart
Celkový počet Lightningových mikroplateb (zaps) v síti Nostr za posledního půl roku dosáhl více než 2,5 milionu. Zdroj: stats.nostr.band

Lightning a soukromí

Na Bitcoinovém blockchainu vidíme pouze otevírání a zavírání kanálů. Tedy počáteční stav a koncový stav (rozdělení) kanálu mezi protistrany. Z pohledu otevření kanálu v současnosti je vidět, že se jedná o multisig adresu 2-z-2, ale když přejdeme v Lightningu na taproot adresy, tak se i tato informace ztratí a transakce bude vypadat jako jakákoli jiná transakce na běžnou taproot adresu.

Zavření kanálu má dvě podoby – kooperativní zavření je takové, kde se obě strany rozhodnou, že kanál zavřou a podepíšou transakci s posledním stavem a pošlou jej do sítě. Kooperativní zavření kanálu vypadá jako transakce s jedním multisig vstupem a dvěma výstupy (částka příslušející Alici a částka příslušející Bobovi), z pohledu sítě je to tedy poměrně standardní transakce (v případě taprootu nebude ani vidět, že jde o multisig).

Nekooperativní uzavření kanálu (například když je protistrana déle off-line) je na tom z pohledu soukromí horší, podíváme-li se na celou sekvenci zavření kanálu, je jasné, že jde o zavření Lightningového kanálu.

Co je ale podstatné – kanál je s konkrétní protistranou a neříká nic o tom, komu jsme posílali peníze, je to jen koncový stav rozdělení. Takže nevidíme, kolik plateb přišlo, odešlo, a už vůbec ne kam.

Většina uzlů se připojuje přes „darknet“ (Tor, I2P nebo cjdns). Tím skrývá před zbytkem sítě svoji IP adresu. Zdroj: Mempool.space

Při soukromí však musíme dbát i na jiné věci – síťové soukromí (IP adresy), identifikátory v síti (veřejné klíče jednotlivých nodes) a samotnou komunikaci v peer to peer síti Lightningu.

IP adresy dokážeme ochránit pomocí VPN nebo sítě Tor. Komunikace kromě toho nemusí probíhat přímo, ale pomocí jiných nod v síti. Identifikátor v síti je zejména identifikátor příjemce. Ten je momentálně víceméně permanentní, ale pokud vám na něm záleží, můžete používat i dočasné klíče, například pomocí projektu lnproxy.

Otázka tedy je, jestli může nějaký útočník vidět platby. Odpověď je, že velmi těžko, a i to pouze v případě, že se přímo dívá na síť v daném momentě. Poté, co platba proběhne, o ní zůstane jen podepsaný invoice s prehashem (to je potvrzení, že došlo k platbě), který má k dispozici odesílatel. Pokud ho nikomu neukáže, neexistuje permanentní veřejný záznam o platbě. Pokud příjemce nechce, aby existovalo takové potvrzení, může pomocí lnproxy vytvořit invoice s dočasným klíčem, který s ním není propojen.

Jednotlivé uzly nevidí celý provoz – odesílatel vytváří cestu sám, komunikací s uzly. Ty dokonce nevědí, zda platbu pouze přeposílají pro někoho jiného, nebo komunikují s odesílatelem.

„Nic jsem neplatil, ta částka absolutně nesouhlasí.“ – Tomáš Ujfaluši. Takto může zareagovat každý Lightning uzel a pravděpodobně nebude lhát – většina uzlů nezná celkovou částku a nic neplatí, pouze přeposílá. Fotka George Groutas, CC BY 2.0 z Wikimedia Commons

Jednotlivé uzly dokonce nevědí, jestli posílají celou částku, pouze její část, nebo dokonce více, než je posílaná částka. Jak je to možné? Jedna platba může jít přes několik uzlů, tedy platíme-li někomu milion satoshi, může být cesta tvořena různými větvemi s menšími částkami.

Platební cesta přes více kanálů, které se větví. Pokud uzel vidí jedno rameno platební cesty, neví, zda je to všechna voda z řeky (celá platba), nebo je to jen jedno rameno, protože komunikace s jinými uzly je šifrována – ostatní ramena řeky jsou pro uzel v jednom rameni neviditelná.

Na základě tohoto by se dalo říci, že pokud nějaký uzel po platební cestě vidí platbu (odněkud někam, tedy neví, ani kdo platbu odesílá, ani kde skončí), ví, že platba je minimálně ve výši částky, kterou přeposílá – sice neví, zda je platba vyšší než 100 tisíc satoshi, které přeposílá, ale menší asi nebude. To ovšem také neplatí, alespoň teoreticky. Platba totiž nemusí skončit na jednom místě – dá se vytvořit cesta, která zároveň rebalancuje kanály, a tedy jedním z příjemců je odesílatel. Může tedy poslat například milion satoshi, přičemž z toho je 1 000 satoshi platba za Nostr zap a zbytek je přeposlání peněz samému sobě tak, aby kanály byly více vybalancovány. Uzel, který vidí, že z této cesty přeposílá 100 tisíc satoshi, tedy nemůže předpokládat, že platba je vyšší nebo rovna než 100 tisíc satoshi, protože ve skutečnosti jde o platbu ve výši 1 000 satoshi.

Lightning soukromí je tedy dostatečně dobré – on-chain není vidět platby, o platbách není žádný veřejně dohledatelný permanentní záznam, coiny nemají historii (takže nemusíme řešit „špinavé coiny“), síťové soukromí zajišťují víceré vrstvy (například Tor), a navíc jakýkoliv případný útočník musí svůj útok učinit přesně v době platby, po jeho ukončení již po platbě zůstanou jen změněné zůstatky kanálů.

On-chain soukromí pro držgrešle pomocí Lightningu

Síť Lightning network můžeme používat ke zvýšení soukromí on-chain transakcí, tak trochu jako náhradu coinjoinu.

Z pohledu soukromí je on-chain transakce vs. Lightning den a noc. On-chain transakce je transparentní a viditelná pro všechny, včetně zdrojových adres (respektive výstupů jiných transakcí) a částek. O Lightning transakcích naopak neexistuje žádný permanentní záznam nebo zápis do blockchainu.

Přijímání on-chain plateb se zachováním soukromí

Představte si, že máte dva lidi, od kterých chcete přijmout platbu. A pak chcete něco zaplatit v nějakém obchodě.

Odesílatelé zatím neumí provádět Lightning platby a chtějí peníze poslat na on-chain adresu (může to být například vekslák, bitcoinový automat nebo směnárna). Přijetí do Lightning peněženky jako Breez jako dvě zvláštní on-chain transakce (Breez: Receive via BTC address) tyto transakce přímo nepropojí.

Praktický příklad: Chceme přijmout 0,01 BTC od člověka A a 0,015 BTC od člověka B. V peněžence Breez to můžeme udělat postupně: Vytvoříme jednu adresu pro přijetí a pošleme ji člověku A (pozor, nemůžeme ji poslat dvěma lidem najednou!). Když transakci odešle a vytěží se, v naší Lightning peněžence nám přibude zůstatek. Potom uděláme stejný postup pro uživatele B. V peněžence máme nyní zůstatek 0,025 BTC. Co když chceme někomu zaplatit 0,02 BTC? Nejjednodušší je udělat to Lightning platbou, ale můžeme to udělat i tak, že pošleme BTC na on-chain adresu. Jelikož v tomto případě je swap směrem na on-chain adresu služba třetí strany (Boltz), nikdy nevznikne transakce, ve které bychom spojili Bitcoiny od uživatele A a B. Pokud je tedy naším cílem, aby A nevěděl, že od B čekáme 0,015 BTC, tak se to z chain analýzy nedozví.

Přeměna on-chain Bitcoinů na Lightning platbu pomocí služby boltz.exchange.

V případě, že používáte jinou peněženku než Breez, je důležité podívat se na to, jak dané platby vypadají on-chain. Například aktuální Phoenix peněženka všechny on-chain platby přijímá na jednu adresu propojenou s vámi. To ovšem neznamená, že je to neřešitelné – pomocí služby boltz.exchange můžete přeměnit on-chain Bitcoiny na Lightning zůstatek. Přičemž tyto platby/zůstatky nebudou na venek propojeny, protože přijímající Lightning peněženka a služba Boltz jsou provozovány jinými entitami.

Pozor, to neznamená, že propojení je nutně nedohledatelné – s dostatečným množstvím soudních příkazů si umím představit, že to služby dokážou ze svých logů postupně dohledat (i když u peněženky Breez to budou mít trochu těžší, protože zajišťuje i směřování plateb). Podstatné je, že nevzniká veřejně dostupný permanentní záznam. Pro lidi, kteří jen pozorují Lightning síť a Bitcoinový blockchain, je to velmi těžký oříšek.

ozor na korelace pomocí částek

Postup přijmout 0,0142323 BTC přes Lightning a pak jako „anonymně“ poslat 0,01416114 BTC ven za pár minut, není moc bezpečný způsob anonymizace, protože je již na první pohled jasné, že se jedná o tytéž peníze (ve druhé částce je započítán nějaký poplatek za swap, a proto je nižší). Proto je dobré propojit více vstupů, nebo doplnit peníze přes Lightning. Pokud přijmu 0,0142323 BTC přes on-chain a ven pošlu 0,02, protože jsem měl v Lightning peněžence dodatečný zůstatek, je to obtížně propojitelné.

Lightning nebo coinjoin?

Osobně preferuji tento způsob před mixováním pomocí Whirpool nebo Wasabi, protože je to méně nápadné a méně kontroverzní. Používám reputované služby na swap-out Lightning-on-chain a „neperu“ peníze s neznámými lidmi s pochybným reputačním rizikem. Takové coiny mají raději i centralizované instituce, které vyhodnocují riziko každé transakce. Ztratíte se v davu, ale ne jako člověk, který mixuje coiny, ale jako člověk, který používá peněženku standardním způsobem jako tisíce dalších uživatelů téže peněženky.

Samozřejmě záleží i na částkách – pokud máte 1 BTC nebo více, narazíte na různá omezení kapacity Lightningu a na poplatky za otevírání kanálů.

Závěr

Bitcoin vytvořil skvělou decentralizovanou účetní jednotku a aktivum, které lze skutečně vlastnit. Síť Lightning network tuto inovaci využívá a přidává rychlou platební síť, která má pro většinu plateb nižší poplatky a není třeba ukládat transakce do decentralizované sítě. Spojení těchto dvou technologií je základem paralelního finančního systému budoucnosti.

Bitcoin vytvořil digitální zlato, protokol Lightning network umožňuje finanční propojení celého světa.

Síť Lightning network je důležitou inovací ve skupině protokolů souvisejících s Bitcoinem. Umožňuje instantní platby s nízkými poplatky, bez rizika historie a s dostatečným soukromím. Ekosystém kolem protokolu Lightning je ve druhé epoše vývoje – nejtěžší porodní bolesti má za sebou, rozvíjí se a roste do všech směrů. Pokud používáte Bitcoin, měli byste používat i Lightning network.

Napsali jsme dříve: Lightning Network

O Lightning Network už jste pravděpodobně slyšeli. Pokud ne, doplňte si s námi mezery. Bitcoinové transakce jsou v těchto dnech nejen pomalé, ale i nepříjemně drahé. Posílat Bitcoin po Lightning Network je nejen levné a bleskurychlé, ale zvládne to už téměř každý. Pokud byste si snad mysleli, že posílání plateb je alfou a omegou druhé vrstvy bitcoinové sítě, nikdy byste asi nebyli dále od pravdy. Změní Lightning svět tak, jak jej známe?

Škálování a rychlost – blockchain má problém

Blockchain je vlastně decentralizovaná účetní kniha, jež obsahuje všechny transakce a stavy účtů, které kdy v dané síti nastaly. Na rozdíl od centralizovaných systémů tuto účetní knihu udržují všechny uzly (nodes) v síti kolektivně a nespoléhají se na žádnou jedinou autoritu (například banku). To umožnilo vytvořit první funkční decentralizovanou kryptoměnu – Bitcoin. Má to však háček. Ze začátku, když je síť ještě malá či málo používaná, je sice všechno v pořádku – transakce jsou rychlé, extrémně levné a každý si může celý blockchain stáhnout na počítač a nezávisle ověřit, zda vše sedí.

lightning network, bitcoin
Lightning Network je jedním z nejočekávanějších vylepšení Bitcoin sítě.

Po čase, když se popularita a používání Bitcoinu rozšířily, se však ukázalo, že blockchain je coby databáze relativně pomalé a neefektivní řešení – je mnohem efektivnější doplňovat jedinou centralizovanou databázi a odkazovat na ni, než když se musí koordinovat všechny uzly v síti. Blockchain skladuje všechny transakce, které kdy v dané kryptoměně proběhly. I malá platba za kávu z roku 2015 bude již navždy uložena v bitcoinové síti. To je u sítě, jejímž cílem je stát se globálním platebním nástrojem s obrovským počtem transakcí, problém. Bude to totiž znamenat, že velikost blockchainu se bude nafukovat a bude klást specifické nároky na ty, kdo chtějí spravovat uzel v síti (tzv. full node).

Jak problém škálování vyřešit?

Velké bloky

Budeme neustále zvětšovat bloky, abychom zachovali rychlost a nízké poplatky za transakci. To ale bude znamenat, že brzy si budou moci blockchain dovolit verifikovat pouze velcí hráči, kteří mají kapitál na nákladná datacentra. Tato možnost tak povede k centralizaci sítě, a tím pádem na ni bude možné snadněji zaútočit. Tímto směrem se vydala část BTC komunity, která se odštěpila a vytvořila Bitcoin Cash.

Efektivnější zápis dat

Soubor řešení, která zmenšují jednotlivé datové zápisy do blockchainu. Je jím částečně například i SegWit, chystané Schnorrovy podpisy společně s Taproot a dalšími vylepšeními. Technologických vylepšením Bitcoinu, tzv. BIPům, se věnujeme v samostatném článku: BIP – Technologická vylepšení Bitcoinu. Tato řešení fungují, ale nedají se aplikovat donekonečna a problém nafukování blockchainu nikdy nevyřeší úplně.

Sharding

Velká většina uzlů v síti nebude udržovat celý blockchain, ale pouze jeho části, avšak takovým způsobem, aby se i z malého počtu uzlů dokázal celý blockchain zase poskládat. Toto řešení je zatím jen v experimentální fázi, počítá s ním například Ethereum (částečně např. i Cardano).

lightning network, bitcoin, ethereum, cardano
Problém škálovatelnosti řeší i další kryptoměny, jako například Ethereum či Cardano.

Off-chain řešení (Lightning Network)

Počítají s tím, že většina běžných transakcí se nebude zapisovat přímo do blockchainu, ale do platebních vrstev nad ním, jelikož ty budou rychlejší a levnější. Blockchain bude těmto vrstvám sloužit jako základní kámen a „konečný soudce“, do něhož se pouze jednou za čas zapíše nový stav účtů (tzv. Settlement layer). Dominantním řešením je zde Lightning Network nebo například jeho obdoba na Ethereu pod názvem Plasma.

Alternativní technologie

Někteří inovátoři navrhují zahodit blockchain úplně a použít alternativní protokol, například kryptoměny, které běží na bázi DAG (jakými jsou např. Nano, IOTA, Byteball). Tato řešení jsou ale ještě v rané fázi vývoje, ani zdaleka nedosahují bezpečnosti a stability bitcoinového blockchainu a panuje skepse, zda vůbec budou fungovat decentralizovaně v globálním měřítku.

Začátky Lightning Network

O platebních kanálech mimo BTC blockchain se mluvilo téměř od počátku Bitcoinu. Jeden z prvních nedokonalých návrhů popsal i samotný Satoshi Nakamoto (asi tolik k tvrzení příznivců Bitcoin cash, že LN není součástí „Satoshiho vize“). Koncept dále rozvíjeli další BTC developeři (např. Mike Hearn a Matt Corallo), přičemž překonávali různé problémy (první pokusy s platebními kanály například fungovaly pouze jednosměrně).

lightning network, bitcoin, blockstream
Prvním předmětem zakoupeným v (testovací) Lightning síti je tento obrázek. První transakce mezi vývojáři Blockstreamu proběhla v roce 2015.

Ucelenou formu dali konceptu Lightning Network až Joseph Poon a Thaddeus Dryja vydáním Lightning Network whitepaperu v roce 2016. Od tohoto okamžiku vývoj Lightning řešení škálování Bitcoinu začal naplno. Nezávisle na sobě je ve vývoji 8 implementací v rozdílných programovacích jazycích:

Vývojáři všech uvedených implementací se zavázali k dodržování tzv. BOLT standardu, což vede k tomu, že jejich implementace budou vzájemně kompatibilní. Vytvoří tak jednotnou síť, místo toho aby si vzájemně konkurovali. Na vývoji a podpoře Lightning Network se také podílí společnost Blockstream a mnoho nezávislých vývojářů.

Co vše Lightning Network umožní?

Lightning Network je primárně řešením pro škálování sítě, ale zdaleka to není jediná věc, s níž má jeho implementace Bitcoinu pomoci.

Škálovatelnost

Bitcoin nebude možné využívat k efektivnímu placení, pokud nebude podporovat mnohem více transakcí za sekundu (TPS) než současných 7. Lightning Network transakce mnohonásobně zvýší průchodnost sítě, protože jdou mimo blockchain. Přesto bude celá síť stále stejně decentralizovaná.

Instantní platby

Bloky s transakcemi přibývají v BTC síti přibližně jednou za 10 minut. Abychom mohli transakci považovat za bezpečnou, měli bychom počkat alespoň 2–4 bloky, tedy 20–40 minut. Lightning Network transakce jsou však okamžité, proto mohou být vhodným řešením například pro platební terminály.

i Věděli jste, že Lightning Network nemusí fungovat pouze na Bitcoinu? Toto řešení může být použito i na jiných blockchainech. Kromě bitcoinových klonů (jakými jsou Litecoin či Vertcoin) o zavedení uvažují i vývojáři Monera. Aktivně s ním (pod označením „Plasma“) pracuje také Ethereum. Joseph Poon je dokonce poradcem projektu OmiseGo, který nad Ethereem Plasmu vyvíjí.

Mikroplatby

V Lightning Network lze posílat malé transakce (dokonce menší než 1 satoshi). Poplatek je přitom za předpokladu dlouhodobě otevřeného lightning kanálu téměř zanedbatelný. Díky tomu umíme nastavit třeba automatické platební systémy za drobné služby, za něž se mikropoplatky mohou strhávat například po minutách.

Finanční soukromí

Lightning Network může napomoci ke zlepšení soukromí uživatelů, jelikož transakce v Lightningu probíhají mimo veřejný blockchain – v kanálech, které nejsou zcela transparentní. Lightning tak bude fungovat trochu jako Bitcoinový mixér.

Decentralizovaná směna kryptoměn

Tzv. Cross chain atomic swaps budou díky Lightning možné tehdy, pokud bude Lightning Network podporovat více kryptoměn. V kanálu bude možné rychle a levně směnit jednu kryptoměnu za druhou, bez nutnosti používat burzu.

Lightning Network – jak to vypadá pod kapotou?

Základním stavebním kamenem Lightning Network jsou platební kanály (payment channels). Platební kanály jsou v podstatě smart contracty – speciální adresy, na kterých platí trochu sofistikovanější pravidla než na běžné BTC adrese.

Pro nováčky není koncept LN zcela snadno uchopitelný. Pokud ovládáte angličtinu, doporučuji zhlédnout toto skvělé video od Andrease Antonopoulose.

Tyto kanály jsou zápisem do BTC blockchainu vytvořeny mezi dvěma protistranami a jsou obousměrné. „Transakce“ v Lightning Network jsou vlastně přepisy stavu účtů (tyto zápisy se ale ukládají pouze v daném kanálu, ne v BTC blockchainu). Každou změnu v tomto kanálu přitom musí schválit (podepsat) obě strany (multisignature). Stav kanálu se může po podpisu obou stran libovolně měnit s tím, že staré stavy se mažou a závazný je vždy ten poslední.

Velmi jednoduše řečeno se vlastně dvě strany mezi sebou dohodnou, jaký je mezi nimi stav účtů, a na konci se platba vyrovná zápisem do blockchainu. Některé kanály mohou vznikat pouze na pár plateb, jiné mohou vydržet aktivní roky, bez nutnosti kanál uzavřít. Uzavření kanálu totiž znamená nutnost zápisu do blockchainu, a nemá proto smysl otevírat nové kanály jen kvůli jedné či dvěma platbám.

lightning network, bitcoin, jak funguje
Lightning Network funguje podobně jako TCP/IP protokol, který pomáhá posílat pakety dat přes internet.

K uzavření kanálu také není nutný souhlas obou stran – smart contract obsahuje mechanismy, které zabraňují tomu, aby byly kanály nepoctivými stranami zneužity (ty o své prostředky v kanálu mohou přijít). Každá strana tedy má za jistých okolností možnost uzavřít ho samostatně, čímž ukončí platební vztah. Technické detaily smart contractu jsou výborně popsány například v tomto článku.

Lightning Network rovná se síť kanálů

Platební kanál je sám o sobě užitečný zejména v případě, že strany, které si ho spolu otevřely, mají nějaký dlouhodobý platební vztah. Pro běžné užívání (jednorázová platba za kávu) ale není praktické, aby si milovník kávy otevíral s kavárnou vlastní kanál, pokud se do ní neplánuje vracet pravidelně. Jednotlivé kanály od sebe ale nejsou izolované. Naopak, vytvoří propojenou síť!

i Jak bude Lightning Network fungovat v praxi?
  • Chci například pomocí LN zaplatit Alešovi, s nímž nemám vytvořený kanál.
  • Mám ale vytvořený kanál s Barborou, která má vytvořený kanál s Alešem.
  • V případě, že je v obou kanálech dostatek prostředků, mohu Alešovi zaplatit s pomocí Barbory a platba projde přes dva kanály.
  • Do hry vstupuje Cyril – chce mi zaplatit, ale nemá kanál ani se mnou ani s Barborou.
  • Cyril má však kanál s Alešem. Dokáže mi tak zaplatit přes tři kanály, cestou Cyril >> Aleš >> Barbora >> Já.

Lightning Hubs

Někteří správci LN kanálů mohou dokonce budovat síť kanálů (hubs or channel factories) čistě s cílem spojovat síť a přeposílat transakce. Za tuto službu si budou moci účtovat poplatek. Tím se rapidně zvýší průchodnost sítě.

Někteří kritici Lightningu tvrdí, že tyto služby zvýší centralizaci a usnadní regulace Bitcoinu. Osobně si myslím, že kritika není na místě – jednak bude možné stále využívat (hlavně pro větší a důležité platby) samotný BTC blockchain (který je díky malým blokům a možnosti snadno si spravovat vlastní BTC uzel dostatečně decentralizovaný), jednak bude lightningová síť globální a účastnit se či vytvářet huby bude moci každý.

Watchtowers (strážné věže)

Lightning Network s sebou nese také jistá rizika. Za určitých okolností, např. pokud je jedna ze stran kanálu offline (zejména u mobilních peněženek), se druhá strana může pokusit kanál jednostranně uzavřít a přivlastnit si část prostředků protistrany bez jejího souhlasu. Jedním z případných řešení může být využití služby tzv. Watchtower neboli Strážné věže, která je součástí LND implementace od verze 0.7.0-beta. V případě, že by se jedna strana pokusila druhou podvést, Watchtower zakročí a neférovou stranu potrestá přesunutím veškerých prostředků v kanále ke straně druhé.

Blockchain jako finální soudce

Po uzavření platebního kanálu se výsledný konečný stav účtů (schválený oběma stranami) zapisuje jako běžná transakce do BTC blockchainu. V případě sporu může jedna ze stran kanál uzavřít jednostranně, v takovém případě se do blockchainu zapíše poslední transakce schválená oběma stranami.

i Věděli jste, že škálování po vrstvách je preferovaný způsob budování velkých sítí? Na stejném principu stojí i celý internet.

Blockchain tedy může fungovat jako „soud poslední instance“ – pevná, decentralizovaná a neměnná základní vrstva, na níž stojí další, flexibilnější a rychlejší vrstvy. Dalo by se to přirovnat ke smlouvám – většinu smluv, které kdy podepíšeme, nikdy neřešíme se soudcem, pouze v případě rozporu.

Jak se Lightning Network používá v praxi?

Lightning Network je stále ještě ve fázi vývoje, ale i přesto již existuje řada šikovných aplikací a peněženek se skvělou UX a UI, které umožňují používání Lightning Network na denní bázi jak začátečníkům, tak i pokročilým.

lightning network, bitcoin, vizualizace
Vizualizace Lightning Network v momentě aktualizace tohoto článku (březen 2021). Uzlů: 17 556, kanálů: 38 914, kapacita sítě: 1 131 BTC, poplatky: neférově nízké.

Počet uzlů a účastníků sítě rychle roste. Průměrná životnost kanálu je 389 dní a průměrná kapacita kanálu je 0,029 BTC. V lightningové síti běží v tuto chvíli 17 556 nodů, z toho jich je 3 837 provozováno v Tor síti. Existuje již řada služeb (směnárny, e-shopy s fyzickým i virtuálním zbožím, casina a virtuální hry), které lightningové platby přijímají.

Klasická platba přes Lightning Network pak probíhá nejčastěji pomocí QR kódů, které tradiční bankovnictví teprve objevuje. Lightning Network už nějakou dobu není jen pro geeky, kteří ovládají Linux a příkazovou řádku, ale většina intuitivních LN peněženek je dostupná pro iOS, Android, MS Windows i macOS. Nabízejí nejen příjemné a jednoduché uživatelské prostředí bez zbytečných komplikací, ale ty nejpoužívanější jsou i v češtině.

Lightning Network peněženky (vyzkoušeno za vás)

    Desktopové Lightning Network peněženky


  • Zap Desktop: Windows/macOS/Linux – pravděpodobně nejlepší lightningová desktop peněženka se skvělým grafickým rozhraním a intuitivním ovládáním. Podporuje napojení na vlastní fullnode, nabízí možnost light módu, tzv. Neutrino (bez potřeby fullnode) a napojení na vlastní BTCPay Server. A navíc je v češtině.
  • Joule (browser plugin): Chrome a Brave/FireFox. Joule je skvělá peněženka ve formě pluginu, rozšíření do webového prohlížeče, které umožňuje nerychlejší platby a interakci s webovým prostředím při surfování a nakupování online.
  • Mobilní Lightning Network peněženky


  • Breez: iOS/Android Aktuálně snad nejjednodušší mobilní LN peněženka pro Android i iOS, která vám automaticky otevře kanál. V průběhu pár minut vás bez starostí a zbytečných oklik napojí do lightningové sítě a rázem jste schopni odesílat i přijímat platby v bitcoinech s téměř nulovými poplatky rychlostí blesku. Bohužel zatím pouze v angličtině.
  • ZAP: Mainnet: iOS/Android ZAP pro iOS a Android je v návaznosti na desktopovou verzi opět nejvymakanější mobilní lightningovou walletkou na trhu. Je sice v češtině, ale kanál vám sama neotevře. Nejedná se však o žádné velké minus, jelikož otevření kanálu je velmi jednoduché, intuitivní a hlavně máte možnost výběru, s kým si svůj první kanál otevřete. ZAP umí nejen Neutrino, ale i napojení na vlastní fullnode, což z chytrého telefonu představuje tu nejultimátnější kombinaci a způsob používání Bitcoinu vůbec.
  • Phoenix: iOS/Android Phoenix peněženka je jedna z nejoblíbenějších lightningových walletek současnosti. Phoenix je plně non-custodial, takže bitcoiny v této peněžence jsou vaše a pod vaší plnou kontrolou. Aplikace je vhodná pro všechny, kteří chtějí Lightning Network používat bez nutnosti provozování vlastního full nodu a zároveň jim záleží na transakčním soukromí. Na tuto peněženku jsme si pro vás připravili kompletní návod: Phoenix – Lightning Network v kapse, snadno a přehledně (NÁVOD)
  • Bluewallet (custodial!): iOS/Android Bluewallet je v defaultním režimu napůl custodial. To znamená, že od bitcoinů na první vrstvě sice máte privátní klíče, ale od bitcoinů v kanálech už bohužel ne. I přesto jde o jednu z nejlepších mobilních LN peněženek, které v této chvíli existují, a navíc je v češtině a umí i CZK měnu. Pro dosažení ještě většího soukromí lze BlueWallet napojit na vlastní fullnode pomocí Electrum Personal Server či jeho implementace ElectrumX (python) nebo Elects (Rust). Problém s privátními klíči od bitcoinů na druhé vrstvě lze řešit napojením na tzv. LNDHub, který vývojáři nabízí včetně návodu na GitHubu. Nejen tato funkce dělá z BlueWallet jednu z nejlepších peněženek vůbec, ale dále nabízí několik dalších featur, které mohou přijít vhod.

!


Je potřeba myslet na to, že celá technologie Lightning Network je stále v betě, tedy ve fázi vývoje. Ačkoliv nejsou známy žádné případy ztrát finančních prostředků, je potřeba k Lightning Network přistupovat opatrně a nenechávat v síti nijak závratné částky.

Připomínáme, že lightningové peněženky jsou tzv. hot wallet, tedy jsou nonstop připojené k internetu. Pro větší sumy doporučujeme používat cold wallet, nejlépe hardwarové peněženky, kterým se podrobně věnujeme v našem článku: Hardware peněženky – Jak bezpečně uchovávat bitcoin a další kryptoměny?

Návod na lightningovou peněženku ZAP: Desktop (Windows)

Pro zobrazení kompletního návodu rozklikněte roletku.

ZAP: Desktop je aktuálně nejpovedenější lightningová peněženka s perfektním grafickým rozhraním, jednoduchým ovládáním a spoustou šikovných funkcí.

  1. detail-platby detail-platby detail-platby
    ZAP: Desktop nabízí možnost vytvoření nové light walletky pomocí protokolu Neutrino včetně obnovy ze seedu. Zároveň umožňuje napojení na vlastní node.

    Zálohu seedu, oněch 24 slov, neberte na lehkou váhu. Dobře si je poznamenejte na papír nebo do Cryptosteelu či Bunkeroidu. NIKDY seed neukládejte do PC, nefoťte telefonem a nikomu ho neukazujte!

  2. detail-platby detail-platby detail-platby
    Pořádné heslo a spolehlivá záloha jsou alfou i omegou zabezpečení.

    Zvolte si silné heslo, nejlépe pomocí password manageru. Pojmenujte peněženku a vyberte si způsob zálohy stavu kanálů. Ty se ukládají do souboru channel.backup a jde o jediný způsob, jak získat přístup k bitcoinům, které máte v kanále. Záloha na cloud může znít nedůvěryhodně, ale bez seedu je záloha kanálů k ničemu. SSD disk v PC může umřít, a proto není od věci mít zálohu i někde jinde.

  3. detail-platby detail-platby detail-platby
    Dokončení zálohy, bleskurychlá synchronizace se sítí a první depost bitcoinů pro otevření prvního kanálu.

    Na příkladu je vidět dokončení nastavení zálohy v lokálním režimu, tedy na stejném PC, kde se nachází ZAP peněženka. Po potvrzení se začne walletka synchronizovat s lightningovou sítí a během 1–2 minut je hotovo. Mezitím můžete poslat první bitcoiny na onchain část peněženky, abyste mohli otevřít první kanál. Pro lepší transakční soukromí pošlete nezaokrouhlenou částku a menší poplatky posílejte z bech32 adresy, která vždy začíná znaky bc1.

  4. detail-platby detail-platby detail-platby
    Detaily příchozí onchain transakce, kontrola v exploreru a jdeme na otevření prvního kanálu.

    Abyste mohli poslanými bitcoiny otevřít kanál, musí mít alespoň jedno potvrzení v blockchainu. Po kliknutí na odkaz u Transaction ID se otevře Blockstream explorer. Všimněte si zelených informací o úspoře poplatků za vytěžení transakce a faktu, že nedošlo k žádnému známému narušení transakčního soukromí, např. zaokrouhlená částka platby.

    Po kliknutí na Channels vidíme, že zatím žádné kanály nemáme. Jsou zde dvě volby, Create a Manage. Zvolíme Create a jdeme na věc.

  5. detail-platby detail-platby detail-platby
    ZAP pro start navrhuje šestici dobře napojených LN nodů. Pokud znáte pubkey, můžete se připojit na node dle vlastní volby.

    Jakmile vyberete node, zbývá zvolit kapacitu kanálu, tedy množství bitcoinů (satoshi), které do kanálu uzavřeme. Po kliknutí na Next se zobrazí rekapitulace a tlačítkem ve spodní části okna potvrdíme otevření kanálu.

  6. detail-platby detail-platby detail-platby
    Čekání na otevření, úspěšně otevřeno a podrobné detaily o kanálu.

    Úspěšné otevření kanálu je závislé na onchain transakci s jedním potvrzením, pokud nemá druhá strana nastaveno jinak. Jakmile dojde k prvnímu potvrzení v blockchainu, kanál je otevřen a připraven k použití.

  7. detail-platby detail-platby detail-platby
    Platba přes Lightning je jednoduchá, stačí vložit zkopírované znění tzv. ln invoice, potvrdit a je hotovo.

    Platby po Lightning Network probíhají pomocí tzv. ln faktur začínajících písmeny lnbc. Většina dobrých peněženek a projektů přijímajících LN platby automaticky překládá do QR kódu. Stačí tedy nascanovat QR nebo zkopírovat znění ln faktury stiskem tlačítka a vložit. ZAP peněženka automaticky načte všechny údaje, stačí potvrdit a platba je hotová.

  8. detail-platby detail-platby detail-platby
    Vznik remote balance, vytvoření ln faktury a čekání na platbu.

    Ve chvíli, kdy po Lightning Network něco zaplatíte, vznikne na druhé straně kanálu tzv. remote balance stejné hodnoty, jakou jste poslali. Ta představuje částku, kterou můžete po Lightning Network naopak přijmout. Vytvoříte fakturu na částku, kterou chcete, aby vám druhá strana zaplatila, a pošlete jí QR nebo textové znění faktury.

  9. detail-platby detail-platby
    Přijetí platby

    Jakmile druhá strana LN fakturu zaplatí, status faktury se změní na zaplaceno. Bitcoiny se nám objeví v přehledu plateb a jsou okamžitě k použití, není třeba čekat na žádné potvrzení v síti.

  10. detail-platby detail-platby detail-platby
    A ve finále možnosti a nastavení ZAP Desktop peněženky včetně zjištění veřejného pubkey klíče.

    V Preferences a General naleznete nastavení jazyka, fiat měny a výběr tmavého/světlého režimu. Pod Wallet pak nastavení typu onchain adresy (doporučujeme nechat bech32), preferovaný onchain explorer, zdroj kurzu BTC a nastavení těžebních poplatků co do počtu bloků od odeslání transakce do sítě.

Výhody a nevýhody ZAP: Mainnet

Výhody

  • Vynikající uživatelské rozhraní
  • Velmi snadné použití
  • Jednoduché posílání a přijímaní LN plateb
  • Výborná uživatelská zkušenost
  • Defaultní podpora nativního SegWitu typu adres bech32 (znatelně levnější onchain poplatky)
  • Široké možnosti zálohy stavu kanálů
  • Kompletně open-source
  • Silný a odhodlaný tým vývojářů

Nevýhody

  • Chybí možnost manuálního nastavení onchain poplatků v sat/Byte (v plánu)
  • Jen částečné počeštění
  • Chybí CZK měna

Kde všude se dá pomocí Lightning Network zaplatit?

Jakmile máme otevřený kanál, můžeme si vybrat z poměrně široké škály obchodů a služeb, které Lightning Network podporují:

  1. Cryptopay.cz – platby faktur, složenek a převodů na běžný bankovní účet v ČR nejen přes LN.
    Jak Cryptopay.cz funguje? Více se dozvíte v našem článku: Služba Cryptopay.cz – první služba v ČR propojující kryptoměny a bankovnictví
  2. Pay With Moon – anonymní předplacené VISA karty přes plugin do prohlížeče. Placení kartou u jakéhokoliv US obchodníka, funguje výborně.
  3. Paralelní Polis Praha – platby přes LN za kávu, občerstvení, merchandising, přednášky, co-working a pronájem prostor. Skvělá možnost vyzkoušení LN plateb v reálném světě.
  4. Seznam CZ/SK obchodníků přijímajících platby po Lightning Network.
  5. Lightning Network Stores – seznam většiny obchodů a služeb příjímajících Lightning platby naleznete na tomto rozcestníku.
  6. BTCPAY Directory – seznam e-shopů provozujících svůj vlastní BTCPAY Server i s podporou Lightning Network plateb.
i Lightningem už zaplatíte také u nás! Ať už si kupujete mining hardware nebo drogerii, neváhejte jej vyzkoušet. Více o této platební metodě se dočtete v našem článku Na Alze teď zaplatíte bitcoinem také přes Lightning Network.

Lightning Network jako budoucnost krypto plateb?

Mnozí příznivci Bitcoinu považují Lightning Network za nejlepší cestu a skutečnou inovaci (oproti mnoha „rychlým blockchainům“, které jsou často rychlé pouze proto, že jsou buď centralizované, nebo je nikdo nepoužívá). Vývojářská aktivita a nadšení jsou skutečně velké, zatím se však drží hlavně pod povrchem – v odborných technických kruzích. Vývojáři přirovnávají rozvoj Lightningu k nadšení, které vnímali v rané fázi vývoje samotného Bitcoinu – v letech 2010–2013. Mezi běžné uživatele a firmy se Lighting Network dostává sice pomalu, ale jistě.

LNP/BP aneb rychlé platby jsou jen začátek

A nyní malá odbočka do historie. Kdysi dávno fungoval internet tak, že všechny počítače byly spojené jedním kabelem a všechny počítače v síti komunikovaly se všemi. Pokud jste chtěli poslat obrázek jednomu počítači v síti, museli jste jej zároveň poslat všem. Tomuto typu komunikace se říká Broadcast. Značnou podobnost můžeme najít i u bitcoinového blockchainu. Pokud odesíláme transakci do bitcoinové sítě, posíláme ji na všechny počítače (full nody) v síti. A stejně jako jsme tenkrát přišli na to, že Broadcast není škálovatelné řešení, přišli jsme na to i u blockchainu.

lightning network, bitcoin, vizualizace
Broadcast – posílání dat z jednoho bodu na všechny. Credit: Melik Manukyan

Řešení poskytl typ komunikace, kterému říkáme Unicast. Dnes už neposíláme data na všechny počítače, které jsou připojené na internet, ale pouze na jeden, ve většině případů na nějaký server. V případě Bitcoinu není potřeba, aby každá informace, kterou si vyměňují dvě strany, byla propagována všem počítačům v bitcoinové síti. Stačí, když si informace vymění účastníci transakce. A to je způsob škálování Bitcoinu, které přináší Lightning Network.

lightning network, bitcoin, vizualizace
Unicast – posílání dat z jednoho bodu na jeden. Credit: Melik Manukyan

Dnešní digitální svět stojí převážně na Unicastu. Nemusíte mít ani moc bujnou fantazii, a pokud Lightning Network trochu rozumíte, uvidíte jistou podobnost. Pokud je Bitcoin internetem peněz, pak je Lightning Network pro Bitcoin to, co je Unicast pro dnešní internet. Pokud vám to zní jako z nějakého sci-fi filmu, doporučujeme výborný článek od Melika Manukyana: Lightning Network enables Unicast Transactions in Bitcoin. Lightning is Bitcoin’s TCP/IP stack.

Změní Lightning Network dnešní internet tak, jak jej známe?

Jakmile jen trochu pochopíte, otevře se před vámi další králičí nora, která je dost možná ještě hlubší než ta bitcoinová. A zatímco všichni řeší levné a rychlé transakce, nepozorovaně pod radarem letí projekty jako RGB, Storm, Prometheus a další součásti LNP (Lightning Network Protocols). Už jste někdy něco vlastnili, aniž by o tom nikde (ani v blockchainu) existoval nějaký záznam, a přesto jste mohli své vlastnictví prokázat?

Staré rčení praví: Dejte ajťákovi Bitcoin a on si koupí shitcoin. Dejte ho neurovědci a on vám ukáže budoucnost.

Pokud existuje v rámci Bitcoinu a Lightning Network ještě někdo, o kom jste dosud s největší pravděpodobností neslyšeli, ale měli byste, pak je to Dr. Maxim Orlovsky, jeden ze zakladatelů Asociace Standardů LNP/BP, geniální vědec, inženýr a cypherpunker. Budoucnost, kterou naznačují první záblesky Maximovy práce, je fascinující a slovy těžko popsatelná.

i

LNP/BP: A gentle introduction by Giacomo Zucco

Zaujalo vás téma LNP/BP? Pak doporučujeme „něžný úvod do problematiky“, který pro nás napsal sám Giacomo Zucco, spoluautor zmíněného protokolu RGB.

Lightning Network je komplexní technologie a máme před sebou ještě dlouhou cestu, než ji budeme moci používat intuitivně a bez zádrhelů. Zaznívá také kritika různých vlastností a funkcí Lightningu – této kritice a budoucnosti Lightningu (i v rámci jiných kryptoměn) se budeme věnovat v dalším článku.


Na vašem soukromí nám záleží

My, společnost Alza.cz a.s., IČO 27082440 používáme soubory cookies k zajištění funkčnosti webu a s Vaším souhlasem i mj. k personalizaci obsahu našich webových stránek. Kliknutím na tlačítko „Rozumím“ souhlasíte s využívaním cookies a předáním údajů o chování na webu pro zobrazení cílené reklamy na sociálních sítích a reklamních sítích na dalších webech.

Více informací
Rozumím Podrobné nastavení Odmítnout vše
P-DC1-WEB07