Lightning Network je pravděpodobně nejočekávanější technologická inovace, která bude nasazena nad bitcoiny. Platební vrstva, kterou poprvé navrhli Joseph Poon a Tadge Dryja asi před rokem, slibuje podporu prakticky neomezeného počtu transakcí mimo řetězec mezi uživateli, a to téměř bez nákladů – při využití zabezpečení nabízeného bitcoiny.
Nejméně tři společnosti – Poon a Dryja’s Blesk, Blockstream a Blockchain – v současné době pracují na implementaci technologie. Ale jen málo lidí mimo tuto malou technologickou linii plně pochopí, jak je nastavena „budoucnost mikroplatby“, která posílí schopnosti bitcoinu.
V této třídílné sérii stanoví Bitcoin Magazine základní stavební kameny Lightning Network a ukazuje, jak do sebe zapadají, aby realizovaly tuto nadcházející vrstvu protokolu.
První část této série se zabývala základními stavebními kameny a vysvětlila, jak se používají k vytvoření obousměrných platebních kanálů. Druhá část vysvětlila, jak se vytváří síť a jak Hash Timelock Contracts (HTLCs) spojují různé kanály v síti dohromady. Tato třetí a poslední část série vysvětluje, jak jsou HTLC umístěny uvnitř obousměrných platebních kanálů, aby bylo zajištěno, že transakce mohou probíhat plně mimo řetězec.
Síť blesků
Alice a Bob zatím otevřeli obousměrný platební kanál, který oba financovali pěti bitcoiny. Udělali dvě transakce tam a zpět a za současného stavu kanálu si Alice i Bob mohou pro sebe nárokovat pět bitcoinů „upuštěním kanálu“ na blockchain.
Nyní chtějí do kanálu zahrnout HTLC. Tím je zajištěno, že pokud Carol na oplátku za její hodnotu požaduje bitcoin od Boba, Bob má na oplátku zaručený bitcoin od Alice.
Stejně jako v předchozím kroku začínají Alice a Bob tím, že každý vytvoří novou transakci závazku. V mnoha ohledech jsou tyto transakce závazků velmi podobné předchozím transakcím závazků. Zahrnují normální výstup a výstup na funky multisig-adresu s CSV (CheckSequenceVerify) -časovým zámkem a speciálním hash zámkem. Stejně jako v předchozím kroku si Alice a Bob vymění svá stará tajemství, aby starý kanál účinně zneplatnili. Po výměně mohou Alice i Bob podepsat své poloviny transakcí se závazky a potenciálně je kdykoli vyslat na blockchain.
Všechno známé území. Až na jednu změnu. Alice i Bobovy závazkové transakce nyní obsahují jeden nový výstup v hodnotě jednoho bitcoinu. (Díky tomu je zůstatek 4-5-1; čtyři pro Alici, pět pro Boba, jeden pro nový výstup.)
Tento nový výstup je v podstatě HTLC. A je to ještě funkčnější než všechny ostatní výstupy, protože existují tři způsoby, jak to odemknout.
Nejprve nový výstup (v transakcích Aliciných i Bobových závazků) uvolní bitcoin za podmínky, že Bobův podpis a hodnota budou zahrnuty do následné transakce. Bez ohledu na to, zda Alice nebo Bob podepisuje a vysílá transakci se závazky, může tento výstup odemknout pouze Bob – pokud uvede hodnotu. Existuje ale jeden malý rozdíl mezi těmito dvěma transakcemi závazků: pokud Bob upustí od kanálu, je zapojen časový zámek CSV. Bude muset počkat 1 000 bloků. (Pokud Alice upustí od kanálu, může si tento bitcoin nárokovat okamžitě.)
Důvod, proč musí Bob počkat 1 000 bloků, pokud upustí od kanálu, je velmi podobný tomu, co jsme viděli dříve: Umožňuje Alice vzít tento bitcoin pro případ, že by se Bob někdy pokusil podepsat a vyslat starý stav kanálu. Zde přichází na řadu druhý způsob odemknutí výstupu. Alice může „ukrást“ finanční prostředky, pokud poskytne Bobovo (nejnovější) tajemství.
Tuto hru si mohou zahrát dva: Pokud se Alice pokusí podvádět a vysílat tento kanál, když už je zastaralý, může Bob získat tento bitcoin pomocí Alicina tajemství. (Ani by nemusel poskytnout hodnotu.)
A za třetí, stejně jako u jiných HTLC, zahrnují obě transakce závazků také obvyklý záložní časový limit CLTV pro Alici. Pokud Bob nezahrnuje hodnotu – řekněme – za dva týdny (například proto, že ji nezískal od Carol), může Alice získat zpět svůj bitcoin. U této možnosti opět nezáleží na tom, zda Alice nebo Bob upustí od kanálu.
Odkud nás to všechno dostalo?
Alice i Bob drží napůl platnou transakci závazku. Pokud Alice zruší svoji transakci závazků na blockchainu, okamžitě pošle Bobovi pět bitcoinů. Kromě toho může počkat na 1 000 bloků a získat pro sebe čtyři bitcoiny. Navíc má Bob dva týdny na poskytnutí hodnoty a získání bitcoinu v „výstupu HTLC“. (Pokud neposkytne hodnotu do dvou týdnů, může Alice získat tento bitcoin zpět.)
Bob mezitím může také kdykoli zrušit svou transakci se závazky a okamžitě poslat Alici čtyři bitcoiny. Poté by čekal 1 000 bloků, aby si vyžádal dalších pět bitcoinů z jedné adresy a další bitcoiny z výstupu HTLC, pokud uvede hodnotu. (Pokud neposkytne hodnotu do dvou týdnů, může ji Alice získat zpět.)
A samozřejmě, pokud se Alice nebo Bob pokusí v budoucnosti kdykoli podvádět a podepsat a vysílat tento kanál, když je zastaralý, oba mohou úplně zablokovat ten druhý a ukrást všechny bitcoiny v kanálu.
Vyrovnání stavu
V tomto okamžiku je Bobovi zaručeno, že obdrží bitcoin výměnou za hodnotu (za předpokladu, že ji má). Jediné, co musí udělat, je podepsat a vyslat transakci závazku, kterou dostal od Alice, zahrnout hodnotu do následné transakce a také ji podepsat a vyslat.
Alice to ví. Neexistuje způsob, jak by mohla podvádět Boba z jeho bitcoinu – ani kdyby zjistila, jaká je hodnota, jinými způsoby.
Ti dva by se tak mohli jen „usadit“ mimo kanál. Bob může jednoduše dát hodnotu Alici a Alice může souhlasit s aktualizací stavu kanálu do normálnějšího stavu bez HTLC a časového limitu.
Za předpokladu, že obě strany chtějí mít kanál otevřený, to by přirozeně udělaly: je to méně potíží, než kdybyste museli kanál vysadit na blockchainu.
Uzavření kanálu
A konečně, tady je skutečná síla Lightning Network: Téměř vše, co je popsáno v těchto třech článcích, obvykle nikdy nebude nutné vůbec zasáhnout bitcoinový blockchain.
Pokud Alice i Bob chtějí kanál uzavřít „pokojně“, mohou jednoduše vytvořit transakci z původní otevírací transakce, která přepíše vše, co se od úvodní transakce stalo. Z této závěrečné transakce si sami posílají svůj spravedlivý podíl na kanálu, který představuje nejnovější stav kanálu.
Konkrétně to znamená, že pokud chce Alice zavřít kanál, může v tomto okamžiku jednoduše vytvořit transakci, která si zaplatí čtyři bitcoiny a Bobovi šest, a požádat Boba, aby transakci podepsal a vyslal. Protože pro to není důvod, pravděpodobně bude spolupracovat a uzavřít kanál.
Nakonec budou prostřednictvím sítě bitcoinů vysílány pouze dvě transakce a zahrnuty do bloku: otevírací a závěrečná transakce. To bude platit i v případě, že Alice a Bob mezi sebou provedou milionkrát transakce, a tak uvolní velkou zátěž z blockchainu.
Děkujeme Rusty Russellovi a Josephovi Poonovi za informace a přidanou zpětnou vazbu.