Jak funguje Lightning network #1: Vysvětlení pro vidláka

Dnes si ukážeme jedno z možných řešení problému škálovatelnosti kryptoměn i decentralizovaných sítí vůbec a řekneme si, jak zhruba funguje druhá vrstva blockchainu. Nebudeme (zatím) zabíhat do žádných složitostí a letmo si ukážeme všechny revoluce, které nabízí.

Zdroj: https://medium.com/the-litecoin-school-of-crypto/https-medium-com-ecurrencyhodler-the-lightning-network-part-3-a6f1e69e72d7

Úvod

Lightning Network je možné řešení problému škálovatelnosti blockchainu. Pro fungování lightning transakce (myšleno ne pouze peněžní, ale i datové) stačí totiž minimálně jeden zápis do blockchainu. Počet off-chain (tzn. mimo řetězec, resp. mimo blockchain) transakcí není u Lightning Networku teoreticky nijak omezen. A co je ještě úžasnější, celé blockchainové kanály lze spojit sítě podobné jako Tor (The Onion Routing – cibulové směrování na síti, tzn. po vrstvách; umožňuje maximální soukromí, protože uzly zprostředkovávající platební styk nevědí, v jakém místě mezi odesílatelem a příjemcem se nacházejí).

Datová transakce je můj termín, který používám pro podepsání přesunu nikoliv kryptoměny, ale dat. Transakce proto, že aby byla data viditelná na blockchainu, je třeba je jako transakci zpracovat. Může mít různé podoby, jako např.:

  • Přesouvání zakódovaných dat v běžných transakcích kryptoměn (colored coins), přičemž kryptoměny slouží jako mediátor a finanční motivace udržovat tuto decentralizovanou databázi v chodu
  • Token chytrého majetku – počítač chytrého majetku sleduje adresu, na níž je token uložen, a požaduje pro odemčení podpis, který vyprodukoval soukromý klíč k té adrese
  • Navázání blockchainem ověřené bezpečné off-chain komunikace odesláním veřejného šifrovacího klíče – asi nejběžnější (především v případech komunikace mezi stroji)

1      Jak to funguje

Jdete si každé ráno koupit kafe za Bitcoiny. Kafe moc nestojí, a tak bude poplatek za nahrání transakce do blockchainu pravděpodobně tvořit velkou část celkové ceny a nemine vás ani čekání na potvrzování bloků. Nešlo by to zefektivnit?

  1. Obě strany pošlou prostředky, které budou tvořit limit kanálu (channel limit), na dvojpodpisovou (tzv. multisignature) adresu. K operaci s prostředky (tzn. změně bilance) je teď třeba podpisu od obou stran.
  2. Dojde k výměnám faktury. Prodejce kafe mi pošle nekompletní fakturu, kterou podepsal zatím jenom on. Já z počáteční fáze vím, čím mám jeho podpis ověřit, takže mě nikdo nemůže podvést tím, že bych podepsal něco úplně jiného a peníze se ztratily. Připojím svůj podpis.
  3. Prodejce mi naservíruje kafe, až když mu pošlu kopii kontraktu, kde bude podpis vidět.
  4. Tak to probíhá, dokud mi „nedojde“ na kanálu kredit, což si logicky hlídá příjemce, protože blockchain by takovou finální zavírací transakci nepřijmul.
  5. Zavírací transakce kanálu. Jeden z nás vyšle výsledek jako finální transakci, která se již stane součástí blockchainu.
  6. K celému procesu byly potřeba pouze dvě transakce – jedna pro vložení kryptoměny na multisig adresu kontraktu a druhá pro konečnou vypořádací výměnu. Mezi tím mohlo být teoreticky neomezené množství off-line výměn.
  7. Výměna je dokončena.
Uvědomme si, že kontrakt funguje jako peněženka na dva klíče. Pokud ho nastavíte na zámek (tzn. adresu druhé strany), od kterého nemáte klíče, může se stát, že uložená kryptoměna bude navěky uzamčena.

1.1   Malé shrnutí termínů

Bylo by na místě si nyní shrnout tu spoustu složitě znějících názvů, které však ve výsledku ušetří spoustu slov.

  • Multisig address – adresa fungující jako miniaturní chytrý kontrakt, která odešle prostředky na původní adresy jen tehdy, pokud s tím souhlasí obě strany
  • Otevření platebního kanálu – zapsání zůstatku na multisig adresu a nasdílení potřebných transparentních dat pro ověřování elektronického podpisu na kryptografické faktuře
  • Zavření platebního kanálu – zapsání finálního vypořádání do blockchainu
  • Kryptografická faktura – smlouva, jejíž znění (protože mají kopie) si účastníci mezi sebou vyměňují

2      Výhody

2.1   Streaming money

Streaming, stream nebo streamovací služba je taková služba, kterou zákazník dostává „v přímém přenosu“, v proudu (z angličtiny stream = proud, tok), tedy nejedná se o jednorázovou záležitost.

S lightning Networkem konečně jdou dělat instantní i parciální platby. Rád bych zdůraznil, že ani dnešní moderní bankovní služby tohle nedovedou – nedovedou vám vyplácet mzdu každou minutu apod. Ale proč jsou mikroplatby a parciální (částečné) platby tak revoluční?

Zaprvé, významně snižují riziko. Jak? Třeba u té mzdy – pokud se vám budou peníze připisovat každou vteřinu, potom se nemůže stát, že vás zaměstnavatel vyhodí bez vyplacení poslední výplaty. Dále všechny paušálně placené služby, především kvůli transakčním poplatkům v normální bance s národní měnou, už paušální být nemusejí. Opět jde o zdokonalení ekonomiky a snížení rizika. Představte si, že neplatíte Netflixu paušálně, ale po sekundách a instantně.

Proč jsem připsal ještě „instantně“? Protože pokud by vám Netflix někde počítal odsledované hodiny, tak stejně nemá záruku, že mu je zaplatíte. Může mít důkaz, že jste službu tolik a tolik využívali, ale záruku zaplacení nemá žádnou. Takové parciální platby obecně riziko sníží. Nezaplatíte-li nadcházející odsledovanou minutu? Potom služba ztratí peníze pouze na té jedné minutě, kterou jste nezaplatili, což je naprosto zanedbatelné.

2.2   Kanál lze kdykoliv ukončit

Nikdo ze stran kanálu (a nemusejí být pouze dvě – může jich být klidně 10 000) nemůže být vyplacen, dokud nebudou vyplaceni všichni.

Že kanál lze kdykoliv ukončit, navíc ještě znamená, že vám nikdo nemůže prostředky zadržovat – máte-li poslední kopii kontraktu, vyšlete ji jako zavírací transakci a je hotovo (je tam jeden detail, který si povíme v dalším díle). Peníze dostanete, i když se druhá strana náhle rozhodne styk přerušit, protože dala svůj elektronický podpis na společný účet.

Opět, z hlediska bezpečnosti je velmi důležité, že nikdo nedokáže zfalšovat elektronický podpis.

2.3   Streaming data

Streamování dat lightning networkem z pohledu slavného kryptografického problému dvou generálů sice nic neřeší (pořád existuje pravděpodobnost, že se k druhé straně nedostala ani jedna zpráva – neexistuje tzv. proof of knowledge, důkaz znalosti druhé strany), ale z hlediska průmyslu a autonomních strojů jde o hotový zázrak.

Nejdůležitější roli hraje samozřejmě otevření kanálu, které oběma stranám de facto vloží do ruky ověřovací klíč. Poté výměna dat na jiné platformě než na blockchainu (rádiem, LTE sítí, WiFi sítí – úplně jedno, ještě se o tom budeme bavit) probíhá jako s účtenkou v hospodě. Co je jiné?

Nepodepisujeme si účtenku ale prostě data a není třeba kanál vůbec zavřít (o tom se ještě pobavíme), protože stroje komunikují pouze v uzavřeném průmyslovém okruhu (nyní neuvažujme smart industry a kooperaci více firem ve výrobním řetězci). K čemu to může být dobré?

K velmi frekventovanému odesílání dat. Představte si, že mezi sebou komunikuje třeba autopilot Boeingu 737 a řídící dispečink, který monitoruje každý jeho milimetr. Neskutečné množství dat, u kterých musí být jednoznačně identifikovaný autor. Nebo si představte čtyři výrobní linky též firmy rozmístěné na čtyřech kontinentech a vyměňující si průmyslová data pro maximální optimalizaci celého procesu. Nebo si představte přesuny zisků v kryptoměně ze čtyř kasin na vzdálených místech a obchodování s elektronickými akciemi (tam už pro data platí stejné podmínky, jako pro přesun kryptoměny). Nebo si rovnou představte blockchainnet.

Streamování dat funguje logicky kapku jinak než streamování peněz, protože není třeba zajistit kanál proti overspendingu, což je vlastně jen nonsensové protokolové pravidlo, které nedovoluje určitou konfiguraci hodnot vyměňovaných dat (není možné, aby v kanálu najednou bylo více peněz, nepředpokládá se, že by stroj vyslal ta samá data vícekrát apod.). Praktické použití vidím i ve vzájemném strojovém podepisování frekventovaných chytrých smluv, které je v plné režii vidět ve futuristických představách světa plně ovládaného chytrými kontrakty. Co to znamená?

Nejjednodušší příklad je DAO – Decentralised Autonomous Organization, i když bych řekl spíš Company. Investoři nakoupí tokeny (resp. akcie s prakticky uplatnitelnou mocí), které mají kryptografickou schopnost skrze smart kontrakty přímo odsouhlasovat další postup firmy dle procentuálního držení. Aby se skutečně stalo to, co se odsouhlasilo, je nutné mít veškeré výrobní procesy řízené kryptograficky (fundamentálně přes elektronické podpisy a proof of knowledge). A jak?

Výrobní linka napojená na blockchain, která se bude chovat podle nového programu (proposal – obdoba návrhu na valné hromadě) pouze tehdy, kdy vlastníci tokenů, které sleduje, prokážou většinové kryptografické hlasování podpisy.

Nebo výrobní hala se stroji, která se chová obdobným způsobem, a kde její program závisí na elektronickém hlasování držitelů tokenů (spolumajitelů). Ta umožní kryptografické držení podílu naprosto čehokoliv od domu, továrny a stroje až po banán (dokud ovšem neshnije).

Smart kontrakty jsou navíc plně anonymní (vše o problematické blockchainové identitě zde), takže zajišťují držitelům takových tokenů maximální bezpečnost, protože o nich lidé vědí méně informací. Vlastnit může i stroj další stroj, což jsou počáteční znaky autonomní ekonomiky.

To už jsem ale hodně odbočil.

2.4   Blockchainnet

Blockchainnet je kryptograficky ověřovaný datový streaming přes kanály, resp. opravdu hodně rychlé vyměňování chytré smlouvy, která nyní funguje jako datový paket blockchainového internetu. Příklad videohovory Skype. Roli hraje jednosměrná funkce použitá při elektronickém podpisu – moderní ECDSA metoda je zatím nejrychlejší.

2.5   Nikdy nezapsán do blockchainu

V případě kryptoměny je opětovné zapsání celkového stavu do blockchainu celkem pochopitelné, ale je tomu tak i v případě jiných druhů dat?

Když jsem v kapitole výše (Streaming data) mluvil o komunikaci průmyslových závodů apod., nebylo vůbec třeba kanál zavírat. Blockchain byl použit jen pro důvěryhodnost vzhledu veřejného klíče pro ověřování podpisů na off-chain vyměňovaných datech (jak?).

Nebylo potřeba, aby byl v blockchainu veřejně zapsaný jeho poslední (konečný) stav, což bychom ovšem u kryptoměn vyžadovali, protože pokud bychom se pokusili z naší adresy odeslat nějaké prostředky, blockchain by si mohl např. myslet, že stále nemáte dostatek kryptoměny, protože lightning výměny probíhají mimo něj, a nový příjemce by neměl žádnou jistotu.

Co to znamená, že některé kanály vyžadují pouze otevírací transakci?

Především snížení počtu vysílaných transakcí, které by takový čistě datový blockchain zatěžovaly. V decentralizované síti mají všichni všechno u sebe, tzn. co je zapsáno na všech uzlech, to tvoří obsah sítě (veřejnou databázi). Z toho plyne samozřejmě problém v případě zvyšující se frekvence vysílaných transakcí (tzv. problém škálovatelnosti) a je minimálně potřeba zvyšovat velikost jejich bloků, což je ale nepříznivé pro důvěryhodnost ověřování a může vést až k centralizaci ověřovacích uzlů. Čím nižší frekvence transakcí, tím proto lépe.

Dále je vidět, že frekvence se nějak drasticky zvyšovat ani nemůže, protože transakce na hlavním blockchainu se uskutečňují pouze při otevírání kanálu.

2.6   Robustnost

Tím, že blockchain použijeme pouze dvakrát, významně snížíme zatížení blockchainu. Vzhledem k tomu, že ověření každé transakce stojí poplatek, tak síť směřuje k tomu jich provést co nejmenší počet – „spameři“ síť nezničí. Navíc, těžaři si mohou zcela svobodně vybrat, kterou transakci v závislosti na výši poplatku – nebo, v případě lightning networku – v závislosti na redundanci (nadbytečnosti) transakce, ověří. Není možné úmyslným nevyužíváním lightning sítě na mikroplatby systém zničit.

2.7   Lightning fee

Jak se zanedlouho dozvíte, „kanály“ se mohou mezi sebou propojovat. Lightning fee je poplatek kanálu a brání zaspamování off-chain sítě.

3      Second layer

Second layer, neboli druhá vrstva, je síť vytvořená mimo blockchain (něco jako internet) a jedno z možných řešení problému škálovatelnosti. Budeme se proto bavit o propojování kanálů mezi sebou.

3.1   Routing

Jak by probíhala výměna, kdyby si někdo vytvořil kanál s člověkem, který už jeden kanál má? A nemohli by se potom uživatele na obou koncích spojit bez toho, aby si vytvářeli přímý kanál?

Proč nás to vůbec zajímá. Protože kdyby si každý uživatel kryptoměny otevřel kanál s každým, s kým by chtěl provést lightning transakci, síť druhé vrstvy zatížením padne. Je třeba distribuce jako u internetu – všichni nepřímo spojeni se všemi.

3.2   HTLC

Hashed Time-Locked Contracts, tedy zahashované časově zamknuté kontrakty, je něco, na čem Lightning Network stojí. To zní dost složitě. Co to znamená? HTLC je forma kontraktu, která používá hashlocky, tedy zamykací skripty založené na ověření přes znalost specifických dat, a timelocky jako CSV, založené na odpočítávání času. HTLC kontrakty vynucuje spíše blockchain než jedna ze stran.

Normálně by nedávalo smysl mít otevřený kanál, který použijeme jen párkrát. Pokud ale dokážeme kanály pospojovat, vytvoříme distribuovanou druhou vrstvu blockchainu – Lightning Network, kde už to smysl má. Navíc, otevírat si kanál s každým, s kým přijdeme do styku, nás přijde poměrně draho, protože zakládací transakce se děje na blockchainu.

Zdroj: https://reblocked.com/cryptocurrency/crypto-comparisons/bitcoin-vs-zcash-the-differences-made-easy/

Závěr

Doufám, že máte nyní dostatečně silnou motivaci dozvědět se o Lightning Networku víc ?. Vážně – je to úžasná věc. Čím více o ní víte, tím více uplatnění vás napadne. Příště se na kanál podíváme očima kryptografa a z úvah přejdeme k praktické realizaci.

Zdroje

https://blog.usejournal.com/the-bitcoin-lightning-network-a-technical-primer-d8e073f2a82f – velmi technické vysvětlení lightning networkingu (anglicky)

https://lightning.network/lightning-network-paper.pdf – whitepaper Lightning Networku

Sdílet příspěvek

Napsat komentář

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