Jak funguje Lightning Network #7: Mechanismy, usnadňující provoz sítě

Jak funguje Lightning Network #7: Mechanismy, usnadňující provoz sítě

Dnešní díl obsahuje hlubší ponor do optimalizačních a bezpečnostních mechanismů jako splicingu, AMP, kruhových plateb a watchtowerů.

Zdroj: https://blog.muun.com/rebalancing-in-the-lightning-network/

Vše je to pouze o hraní a experimentech s mechanismy, které již znáte. Nejde o nic složitého nebo revolučně nového.

Obsah

  • Kruhové platby
  • AMP (Atomic Multipath Payment)
  • Splicing
  • Fee management
  • Watchtowery
  • Směrovací typy
  • „Autopilot“

Mechanismy usnadňující provoz sítě

1.     Rebalanční techniky

Pro směrovací uzly je důležité mít dostatek Bitcoinů na odchozích i příchozích kanálech. Každá jednosměrná platba totiž vytváří velmi nerovnoměrnou bilanci, která uzel limituje.

Příklad – „A“ chce poslat do „B“ 2 BTC, ale „C“ nemá na odchozím kanálu dostatek prostředků. Zdroj: https://blog.muun.com/rebalancing-strategies-overview/

Zde vidíme, že „C“ má celkem 4 BTC, ale bohužel nešťastně rozložené mezi svými kanály. K tomu dochází především v případech, že „B“ (Bob) je obchod. Prostředník „C“ (Carol) přesouvá totiž BTC od Alice směrem k Bobovi. Jakmile Bob poskytne value (z multihop schématu ve čtvrtém díle), Carol mu pošle BTC, které přesouvá od Alice, ale to proběhne z jejího výstupu, takže nyní je bilance Carol s Bobem převážená směrem k Bobovi. Carol sice HTLC kontraktem z druhé strany získá přesouvané BTC od Alice, takže o nic nepřijde, ale tyto BTC přijdou na vstup Carol. To je docela problém, protože Carol by při jednosměrné platbě Alice-Bob chtěla mít co nejvíce prostředků na výstupu.

Tento problém logicky nastává především u plateb, které probíhají jen na jednu stranu (one-directional payment channels). Následující systém to řeší.

Kruhové platby

Kruhové platby jsou způsob, jak vyrovnat prostředky na vstupu i výstupu do nějakých kanálů.

Zdroj: https://blog.muun.com/rebalancing-strategies-overview/

Carol by chtěla přesměrovat platbu 1 BTC Alice Bobovi přes sebe, ale bohužel má nevyrovnanou kanálovou bilanci. Proto si „pošle“ 1 BTC na druhou stranu.

Zdroj: https://blog.muun.com/rebalancing-strategies-overview/

Teď neberme v úvahu, že tím omezila Frenka (F). K vyrovnání použila cestu Alice-Frenk-Bob-ona. Uvědomme si, že její vyrovnávací platba mohla být pouze tak velká, jako nejmenší bilance v kruhu. Takto si lze „půjčovat“ vyrovnanou bilanci využitím uzlů s dostatečně vysokou a vyrovnanou kapacitou (celý kruh je ale nějak velký, minimálně tři kanály, a vyrovnání vyžaduje poplatky). Aby ale Carol nemusela omezovat Frenka, nemá jinou možnost než použít AMP.

V případě, že by to Carol dělala pouze kvůli tomu, aby mohla směrovat platbu mezi Alicí a Bobem, může být jedinou motivací Frenka zisk z vyššího poplatku, který mu za to nabídne. Velkou nevýhodou těchto kruhů je, že vyrovnávací technika funguje pouze v jeho rámci, resp. všichni, komu jeho účastníci platí, musí být součástí. A také nelze vytvořit žádnou zkrácenou spojnici – síť musí mít vždy kruhovou sběrnicovou strukturu, mám-li být odbornější.

Strategii, jak pomocí off-chain kontraktů efektivně přesunout vaši bilanci v jednom kanálu na kanál jiný, který máte otevřený s jiným uzlem, nejlépe bezplatně, trustless a instantně, zatím nikdo bohužel nevymyslel.

Atomic Multipath Payments (AMP)

Atomické (tzn. absolutně současné) vícecestné platby, přeloženo doslova. AMP je způsob, jak odeslat vyšší částky, protože existuje vysoká pravděpodobnost, že váš peněženkový klient nenajde ani jedinou cestu, kde by měly uzly dostatečnou kapacitu na přenos. AMP funguje tak, že platbu „rozseká na menší balíčky“ jako internet datové pakety a odešle je. Pokud jediný z nich nedorazí, platba se zruší.

Zdroj: https://blog.muun.com/rebalancing-strategies-overview/

Alice může Bobovi zaplatit dvěma cestami rozdělením částky na R1 (A-C-B) a R2 (A-F-B). Sice to bude poplatkově dražší než použití pouze jedné cesty, ale je nízká pravděpodobnost, že všechny uzly v jedné cestě budou mít tak obrovskou kapacitu.

Splicing

Jak dobít kanál bez toho, abychom museli zakládat úplně nový a ten starý draze zavírat? Simultánně ho vyčerpáme jako vstup nové funding transakce, kam bude směřovat ještě dobíjecí vstup. Nemusíme tedy starý kanál uzavírat, což by bylo normálně třeba, a stačí nám pouze jedna on-chain transakce na dobití. Splicing se hodí hlavně v případech, kdy má vybito jen jeden z nás.

  1. Vytvoříme novou podobu funding transakce, která čerpá prostředky ze staré funding transakce a z nového vstupu (ten, kdo dobíjí) a vkládá je na nový multisig.
  2. Vytvoříme si nové commitmenty s HTLC penalizací. Tyto commitmenty budou obsahovat první útratu.
  3. Předpodepíšeme každý svůj a tu ho pošleme druhému v kanálu (klasicky).
  4. Vyměníme si podpisy pro novou funding transakci.
  5. Jeden z nás ji odešle (pokud nešťastnou náhodou oba, tak stejně uspěje pouze jedna).
  6. Můžeme platit off-chain. Ten, kdo si multisig dočerpal, má o stejné množství víc prostředků na nové bilanci.

Fee management

Fee management je kompletně off-chainová strategie na vyrovnávání kanálů, v níž uzly používají poplatky jako mechanismus pro ekonomickou motivaci a zachytávání plateb v příznivém směru.

Tato strategie je založená na poskytování slev za využití určitých cest výměnou za možnost se rebalancovat kruhovou platbou apod.

Řízení poplatků je ve skutečnosti spíše příležitost než záměrná strategie pro řešení nevyvážených kanálů. Carol nemůže skutečně kontrolovat, kdy dochází k vyvažování, v nejlepším případě může využít konkrétního scénáře a dát podnět k tomu, aby byla vybrána jako směrovač určité platby.
Jedná se o konkurenční strategii.

Podmínky:

Zaprvé, aby Carol měla kompletní a aktualizované informace o správě poplatků za ostatní uzly. Její poplatek je nyní závislý na Frankově, aby mohla konkurovat. Tato strategie zároveň funguje pouze tehdy, když má Bob (jako příjemce od Alice) kompletní informace o poplatcích za směrování pro každou cestu. To může být problém v privátní síti, kde uzly nemají přístup ke všem datům.

Zadruhé, není jasné, kolik peněz by tato strategie mohla stát, protože pouhá sleva nemůže stačit. Pokud se například Bob stane obchodníkem, s největší pravděpodobností budou Frank i Carol chtít směrovat platby od Boba k Alici (vyrovnává jim to kanály). Frank a Carol pak můžou vstoupit do soutěže a dosáhnout minimálních poplatků. Tato strategie vyvážení ovšem nevyřeší problém špatné směrovací kapacity v síti.

2.     Watchtowery – automatizovaná bezpečnost

Watchtowery (strážné věže) byly poprvé zmíněny v originálním Lightning Network whitepaperu. Sledují blockchain, aby někdo nevyslal starší verzi bilance v kanálu (commitment transakci) a aby nemuseli být uživatelé neustále online v LN síti. Tak i tak není nutné být naprosto pořád online, protože protistrana má možnost úspěšně vyslat commitment až po určitém čase. Stačí tedy být online v intervalech odpovídajících časovému zámku na HTCL kontraktu, který jsme rozebírali v druhém díle.

Zdroj: https://themoneymongers.com/lightning-network-watchtowers/

Motivační pojistka

Ale proč by pro vás Watchtowery vůbec měly sledovat blockchain? Protože jsou za to placeny. Není problém vytvořit penalizační transakci v HTCL tak, aby byly zaplaceny malým poplatkem vždy, když „někoho chytí“, např. 10% podílem na penalizaci.

No, jde to trochu proti původnímu duchu Bitcoinu, ale proč by nedělaly svou práci dobře, když za to jsou placeny? Na rozdíl od klasických „důvěryhodných“ služeb zde máte jistotu, že nikdy neplatíte napřed. Nemůžete Watchtower zaplatit a nedostat při tom penalizační Bitcoiny.

Jak to funguje

Řekněme, že mám starší commitment transakci s ID číslem 123456789 a chci, aby měl můj Watchtower schopnost ji zrušit (revoknout), pokud se ji druhá strana pokusí uplatnit.

  1. Abych to udělal, tak vytvořím revokační transakci (ve schématu Alice-Bob se jedná o: viz obrázek) a zašifruji ji druhou částí ID sledovaného staršího commitmentu, tedy 6789. Tato transakce obsahuje secret, jímž se penalizuje.
Zdroj: https://bitcoinmagazine.com/articles/understanding-the-lightning-network-part-building-a-bidirectional-payment-channel-1464710791/

Jestli si vzpomenete na druhý díl, tak v případě vyslání starší transakce jsou prostředky, které náleží v kanálu podvodné straně, přesunuty na multisig (který není na obrázku vidět* – celá penalizace je zobrazena jako výstup z jedné commitment transakce), z nějž se buď po 1000 blocích přesunou na adresu podvodníka, nebo podvedený doloží tzv. secret a aktivuje penalizaci (podvodník přijde o veškerý podíl v kanálu).

Pokud podvedený doloží secret, ale podvodník nevyslal starší transakci, tak moje revokační transakce bude blockchainem zamítnuta, protože by utrácela prostředky z adresy*, kde nic není, protože druhá strana nepodepsala přesun z našeho společného multisigu. Pokud jste to nyní nepochopili, napište mi prosím do komentářů a rád vám to individuálně vysvětlím.

  1. Poté tuto zašifrovanou revokační transakci spolu s první částí ID (12345) předám věži. ID transakce nevyzrazuje žádné osobní informace, ale funguje jako stopa, po níž má jít (pokud ji nalezne, je na blockchainu vyslána starší commitment transakce – podvod).
  2. Pokud je transakce (ID 123456789) vyslána, věž to zjistí díky první části ID.
  3. Poté, co tím pádem nalezne druhou část transakce, tak dešifruje mou revokační transakci, co jsem ji poskytl, a může ji vyslat a ukrást pro mě podvodné straně všechny prostředky.

Poznamenám, že věže vědí o mé transakci právě a pouze tehdy, pokud to potřebuji (= dešifrování revokace).

3.     Směrovací tipy

Požadavek platby přes LN – tipy na směrování. Pokyny pro směrování poskytují informace o neevidovaných kanálech příjemce, což umožňuje odesílateli plateb vytvářet v síti trasy s kombinací veřejných a neveřejných rozbočovačů (hopů) v síti. Vzhledem k tomu, že se neregistrované kanály stanou výchozím nastavením pro koncové uživatele, očekávám, že směrování LN bude efektivnější, protože směrovací cesty budou podstatně menší a osazeny spolehlivějšími uzly.

Nemá smysl o těchto informacích lhát, protože uzavírání kanálu v důsledku nesplnění požadavku stojí peníze oba účastníky, a tak lze předpokládat, že směrovací tipy budou vždy pravdivé, což usnadní směrovací algoritmus.

Zdroj: https://blog.lightning.engineering/posts/2018/05/30/routing.html

4.     Autopilot

Pro koncové uživatele bude autopilot možnost, která zautomatizuje proces hledání směrovacích brán a otvírání kanálů s použitím grafu (myšleno obrazce, na němž je vidět propojení určitých prvků) kanálů. Bude ho zajímat především doba zpracování, objem odchozího kanálu uzlů, šířku spojení a vzdálenost do specifických míst (měřeno v čase).

Velkou výhodou propojení pouhým vysláním zakládací transakce je nezměrná levnost oproti zakládání nového připojení v internetu, které vyžaduje fyzickou infrastrukturu. Kanál si lze v LN otevřít na libovolnou vzdálenost při stejné ceně.

Zdroj: https://blog.lightning.engineering/posts/2018/05/30/routing.html

5.     Celková optimalizace

Přenosy celou sítí budou logicky plné zbytečných (redundantních) transakcí, které lze pro úsporu místa sloučit do jedné. To se stane vysíláním aktualizací kanálu, které předchozí děje jednoduše slučují.

Jeden z rebalančních konceptů o celkové optimalizací hovoří o slučování commitmentů a jejich přenosu (jako šeku) na jiné kanály stejným způsobem, jako když banka přijímá mnoho různých šeků na stejné jméno. Problémem ale je, že elektronický podpis většinou podepisuje všechna data v transakcích a jejich „optimalizace“ by mohla znamenat neoprávněnou změnu.

Zdroj: https://blog.muun.com/rebalancing-strategies-overview/

Závěr

Tyto mechanismy mi přijdou jako druhé vymýšlení něčeho velmi podobného, co již existuje. Něco jako protokol blockchainu, který se od TCP/IP moc neliší atd. Ale je dobré vědět, jak to funguje. Pokud jste blockchainový developer nebo zvědavec, vítejte v sedmém nebi. Není pravda, že kdo o té technologii ví nejméně, je nejvíce kreativní. Příští díl bude o swapech.

Zdroje

https://themoneymongers.com/bitcoin-splicing/ – dobíjení kanálu

https://medium.com/coinmonks/powered-by-lightning-part-2-5ef1e76e4288 – princip AMP

https://themoneymongers.com/atomic-multipath-payments/ – princip AMP

https://themoneymongers.com/lightning-network-watchtowers/ – Lightning Network Watchtowers

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..