. . .

Bitcoin Lightning Network - Czym jest? Jak działa?

Rafał avatar
Rafał   2022-04-10 13:26

Po konferencji Bitcoin 2022, która odbyła się w Miami pojawiło się sporo informacji o akceptacji przez duże marki płatności w BTC z wykorzystaniem Lightning Network. Czym jest wspominane rozwiązanie, jakie daje korzyści oraz jak działa?

bitcoin lightning network

Niezależnie od tego czy ktokolwiek jest zainteresowany płaceniem BTC za codzienne zakupy i jedzenie w restauracjach, coraz to nowsze możliwości nadają pierwszej i największej z kryptowalut dodatkowe wykorzystanie, zwiększają adopcję i poprawiają „wizerunek” Bitcoina.

Akceptowanie płatności przez pana Janka za ziemniaki nie jest jednak zbyt wygodne używając sieci głównej Bitcoina, która dla jednych jest za droga, gdzie opłaty mogą często stanowić znaczną część transakcji, dla drugich za wolna, ponieważ Bitcoin obsługuje zaledwie kilka transakcji na sekundę i ma "aż" 10 minutowe bloki, a dla trzecich to i to. 

Bitcoin ze swoją dość prostą budową (jak na standardy kryptowalut) nie pozwala na tworzenie zaawansowanych smart kontraktów, więc aż tak bardzo nie jest przeciążany w ostatnim czasie, gdy popularność zyskują L1 drugiej generacji (nowsze łańcuchy z DeFi i NFT). Dodatkowo raczej nie wykorzystujemy BTC do przesyłania $5, a Mempool od dawna nie pęka w szwach. Jednak w momencie masowej adopcji, sieć nie byłaby w stanie przetwarzać transakcji w sposób pozwalający na dokonywanie codziennych płatności. Dlatego właśnie powstają rozwiązania L2.

L2

Zanim przejdziemy dalej, przypomnijmy sobie, że każda transakcja w sieci Bitcoina musi zostać zapisana w bloku, który pojawia się co około 10 minut. Tyle więc średnio wynosi czas oczekiwania na potwierdzenie wysłania środków. Często jednak musimy uzbroić się w jeszcze większą cierpliwość, ponieważ najlepiej otrzymać kilka potwierdzeń, czyli kolejnych bloków zbudowanych na tym, w którym znalazła się nasza transakcja. Dodatkowo opłaty za umieszczenie naszej transakcji w bloku są ustalane przez wolny rynek, co oznacza, że w okresach dużej aktywności opłaty mogą sięgać wysoko ponad akceptowalne wartości (o ile zależy nam na czasie).

Usprawnienie szybkości i ilości transakcji oraz zmniejszenie opłat to trzy główne cele Ligtning Network, czyli warstwy drugiej Bitcoina. 

Czym jest Lightning Network?

bitcoin lightning network grafika: docs.lightning.engineering

Lightning Network to rozwiązanie skalujące, które pozwala na przeniesienie znacznej większości transakcji z sieci głównej do drugiej warstwy, czyli poza łańcuch główny (ang. off-chain). Umożliwia dokonywanie natychmiastowych płatności wykorzystując przy tym bezpieczeństwo łańcucha bazowego. 

Lightning Network może skalować dowolne łańcuchy bloków, my dzisiaj skupimy się jednak na Bitcoinie, w końcu tytuł brzmi "Bitcoin Lightning Network"...

Jak wspominałem wcześniej, każda transakcja na blockchainie Bitcoina wymaga umieszczenia jej w bloku przez górnika i dodaniu do łańcucha. W Lightning Network przesyłanie transakcji opiera się o tworzenie tzw. „Kanałów Płatności”, które działają pomiędzy dwiema stronami. 

Następnie dzięki tym kanałom, użytkownicy mogą przesyłać do siebie dowolną ilość transakcji aktualizując jedynie saldo między sobą. Te transakcje w żaden sposób nie są rejestrowane w sieci Bitcoina, jednak użytkownicy, w dowolnym momencie mogą zamknąć kanał i odebrać odpowiadającą im ilość BTC na łańcuchu głównym. 

Lightning Network jest osobną siecią, z własnymi węzłami, która działa “na” Bitcoinie i pozwala przenieść transakcje poza łańcuch główny. Operacje są wykonywane na Lightning, jednak w każdym momencie stan końcowy może zostać zapisany w sieci głównej, do której trafiają tylko 2 transakcje: początkowa, czyli ta, która finansuje kanał oraz końcowa, czyli ta, która pozwala odzyskać BTC.

jak działa Lightning Network

Za chwilę wyjaśnimy jak do działa, natomiast aby nie komplikować tego artykułu już na tym etapie, zobaczmy jak to wygląda na prostym przykładzie: 

Użytkownicy A i B, zakładają pomiędzy sobą kanał płatności i razem wpłacają do niego po 2 BTC w tzw. „Transakcji Finansowania”. Następnie przysyłają BTC pomiędzy sobą w sposób dowolny, ale ograniczający się do tej wartości. Jak są wysyłane transakcje na L2 Bitcoina? Lightning bazuje głównie na “fakturach”, czy też po prostu żądaniach zapłaty np. w postaci kodów QR, jakie należy wygenerować, aby otrzymać środki.

Kanał może zostać zamknięty w dowolnym momencie za obopólną zgodą lub z woli tylko jednej osoby, a środki zostaną przesłane na łańcuchu BTC w takim stanie, jaki osiągnęły na Lightning Network. Jeśli po tygodniu A posiada 3 BTC, a B 1 BTC, tyle otrzymają po zamknięciu kanału. 

Jednak taki sposób byłby dość uciążliwy na większą skalę. Oczywiście nie trzeba uruchamiać węzła, aby jako użytkownik korzystać z Lightning Network, ale co jeśli w analizowanym tutaj przypadku środki z kanału A operator chciałby przesłać do kogoś innego niż B? Musi zakładać kanał z każdym użytkownikiem sieci? Otóż nie ma takiej potrzeby. W Lightning Network można wysyłać transakcje poprzez innych użytkowników, czyli inne połączone ze sobą kanały.

Jak działa Lightning Network?

Teraz przejdźmy do trochę bardziej szczegółowego wytłumaczenia tego jak działa sieć Lightning Network. 

Zacznijmy od początku. Nasi użytkownicy A i B otwierają pomiędzy sobą Kanał Płatności. W Lightning Network występuje kilka typów Kanałów takie jak prywatne, Turbo, czy Wumbo, jednak my zajmiemy się ogólnym przedstawieniem działania Lightning, aby ten artykuł nie był dłuższy niż dokumentacja projektu... Na tej stronie dowiesz sie więcej o różnych typach kanałów.

Kanał tworzy Transakcja Finansowania, która polega na wysyłaniu środków na adres multi-signature (w skrócie mulltisig), czyli specjalny adres Bitcoin z wieloma podpisami, który jest kontrolowany przez obu właścicieli kanału (A i B) i wymaga 2 z 2 podpisów w celu wydania środków. Ten adres może być sfinansowany przez obu lub tylko przez jednego z użytkowników.

Po utworzeniu kanału użytkownicy mogą wysyłać do siebie dowolną ilość wiadomości zmieniających ich stan posiadania. Czym są te wiadomości? Każda z nich to poprawna transakcja sieci Bitcoin zwana jako Commitment Transaction, która niejako nadpisuje poprzednią zmieniając “stany kont”. 

Ostatnia transakcja, jaka została wykonana pomiędzy stronami, w każdej chwili może zostać przesłana do łańcucha głównego Bitcoin co pozwoli odzyskać środki.

Commitment Transaction

Commitment Transaction, czyli Transakcja Zobowiązująca to transakcja Bitcoin, która wydaje środki w kanale na rzecz obu właścicieli konta multisig. Pierwsza z nich jest tworzona jeszcze przed sfinansowaniem kanału, ale nie jest wysyłana do sieci. Działa jako zabezpieczenie każdej ze stron. Za każdym razem, gdy płatność jest dokonywana w kanale, tworzona jest nowa transakcja zobowiązująca, a poprzednia poniekąd traci ważność. Dlaczego “poniekąd”?

W tym wypadku nie da się usunąć, ani “nadpisać” poprzednich transakcji, a przypomnijmy każda z nich jest ważną transakcją sieci Bitcoin. To może zachęcać nieuczciwych graczy do przesłania wcześniejszych transakcji do sieci, bardziej dla nich korzystnych, czyli takich, w których mieli więcej BTC.

Lightning Network zabezpiecza się przed nieuczciwym zagraniem wprowadzając specjalny "sekret", który jest tworzony dla każdej transakcji, jaka ma miejsce między stronami kanału oraz ujawniany dla poprzedniej transakcji, dopiero po przesłaniu nowej. Ten sekretny klucz pozwala niejako unieważnić poprzednią transakcję oraz przejąć CAŁE środki nieuczciwej osoby, jeśli ta coś kombinuje.

Po wysłaniu transakcji nr. 2, użytkownik A ujawnia tzw. revocation key dotyczący transakcji nr. 1. W nr. 3 ujawniany jest sekretny klucz dla nr. 2 itd. Dodatkowo każda ze stron trzyma w swojej wersji transakcji logikę sekretu, który chroni tę drugą osobę, dlaczego? Ponieważ nic nie stałoby na przeszkodzie, aby “podszyć” się pod przeciwną stronę i wysłać transakcję, a następnie wykorzystać revocation key, aby ukraść BTC.

Zamykanie kanałów

Zamknięcie kanału odbywa się poprzez wysłanie transakcji zobowiązującej na łańcuch główny, zawierającej ostatni stan, jaki osiągnięto.

Zamknięcie może odbyć się na dwa główne sposoby. Pierwszym jest zamknięcie za obopólną zgodą, czyli po prostu dogadujemy się i zamykamy odzyskując BTC w odpowiednich ilościach. Druga możliwość to zamknięcie “wymuszone”, czyli takie, w którym jedna strona decyduje się zakończyć życie kanału.

W takim wypadku zamknięcie nie jest natychmiastowe, a opóźnione o określony czas, np. 24 godziny. W tym czasie druga strona może użyć swojego revocation secret, aby ukarać drugą osobę, o ile ta próbuje oszukać.

Jeśli próba oszustwa zostanie wykryta przez stronę lub “Strażników”, którzy obserwują blockchain, strona może użyć sekretu, aby utworzyć transakcję karną i przejąć całą pulę BTC w danym kanale.

HTLC i Routing

Całe założenia Lightning Network teoretycznie zmuszałyby każdego do utworzenia ogromnej liczby kanałów z każdą osobą, z jaką chce wejść w interakcje, a nie jest to ani szybkie, ani tanie. Fundusze B zablokowane w kanale A-B, nie mogą być użyte do transakcji w kanale B-Z.

Do tego celu wykorzystywany jest specjalny rodzaj danych wyjściowych transakcji o nazwie HTLC (Hash Time-Lock Contract). HTLC są podstawą budującą Lightning Network i centralnym elementem każdej płatności Lightning Network. Są to proste smart kontrakty działające w sieci Bitcoin i choć są wykorzystywane w niemal każdej transakcji ich głównym celem jest zapewnienie transakcji pomiędzy wieloma niepowiązanymi bezpośrednio kanałami.

HTLC są narzędziem, które pozwala na wiele możliwości dotyczących warunkowych płatności w sieci Bitcoin:

  • Środki ze smart kontraktu można wydać, ujawniając „sekret” wraz z ważnym podpisem odbiorcy
  • Smart kontrakt można zrealizować po określonym czasie
  • Smart kontrakt może zostać wydany natychmiast przez kogoś, kto przedstawi specjalny klucz - revocation key.

Więcjej o HTLC i Lightning Network tutaj.

Wiele z tego jest wykorzystywane we wcześniej opisanych transakcjach, a jak ma się to do Routingu, czyli przesyłania międzykanałowego?

Jeśli A chce przesłać środki do Z, z którym nie posiada otwartego kanału, może to zrobić poprzez B, o ile B ma otwarty kanał z Z, na którym posiada wystarczające środki!

bitcoin lightning network jak dziala

Na powyższym przykładzie mamy 2 kanały A z B i B z Z. W tym wypadku A może przesłać 2 BTC do B, natomiast do Z może przesłać tylko 1 BTC, ze względu na ograniczoną płynność po stornie B w kanale B-Z.

Jeśli A chce przesłać wyższą kwotę musi, albo utworzyć kanał z kimś kto ma większą płynność, lub B musi zwiększyć swój stan posiadania. Oczywiście jest to tylko prosty przykład tzw. płatności "multi-hop", a droga tej transakcji może być znacznie dłuższa.

Gdzie w tym wszystkim wspominane HTLC? Nie można tak po prostu zaufać, że druga strona prześle środki. Nie wchodząc za bardzo w techniczne szczegóły, cała operacja polega na tym, że A mówi do B: “Jeśli prześlesz Z 1 BTC i dostarczysz na to dowód w ciągu 48 godzin, prześlę ci 1.0001 BTC”. 

W ten sposób zachęca B do pomocy, oferując opłatę za usługę oraz upewnia się, że środki trafiły do Z. 

Wszystko dzieje się z wykorzystaniem HTLC. A blokuje środki w kontrakcie i wypuszcza je tylko w momencie gdy specjalny hash, jaki dostarczył B się zgadza. Podobnie robi B z Z. Transakcje są ograniczone do pewnego czasu, krótszego dla każdej kolejnej strony, aby nie blokować środków na zbyt długo i tworzą łańcuch zdarzeń, który może wypełnić się tylko w całości lub w ogóle. 

Lightning wykorzystuje tzw. onion routing. Przesyłanie “na cebulę” oznacza to, że węzły pośrednie w całej ścieżce płatności znają tylko tożsamość swojego bezpośredniego poprzednika i następcy na trasie przesyłu, co zwiększa prywatność. 

Dzięki węzłom routingu, które muszą spełniać określone wymogi dotyczące sprzętu, umiejętności i kapitału, transakcje mogą być przesyłane po całej sieci, od A do Z. W zamian za usługi węzły są wynagradzane niewielkimi opłatami.

Po szersze wytłumaczenie tego jak od strony technicznej działa Lightning Network zapraszam do tego filmu na YouTube w języku angielskim:

Wady i zalety Lightning Network

Niewątpliwymi zaletami Lightning network jest zwiększenie przepustowości Bitcoina, zmniejszenie opłat oraz zwiększenie szybkości wykonywania transakcji, przy jednoczesnym zachowaniu zasad tego jak działa Bitcoin. Transakcje nie wymagają zaufania i dziedziczą bezpieczeństwo Bitcoina (co nie znaczy, że nie można próbować oszukiwać).

Największą wadą Lightning Network jest to, że może prowadzić do coraz większej centralizacji. Dobre węzły, które przesyłają transakcje potrzebują wiele połączeń i sporo kapitału, aby być w stanie wykonywać swoje obowiązki, co powoduje, że mniejsi gracze mają niższe możliwości. Nie jest to jednak ogromny problem, który spowoduje załamanie sieci i utratę zaufania do niej, a w porównaniu do scentralizowanych rozwiązań Lightning nadal jest zdecentralizowany.

Problemem jest natomiast skomplikowanie zarządzania kanałem, balansowanie sald, backupy itd. To wszystko zdecydowanie zachęca do korzystania z gotowych rozwiązań i systemów płatności bazujących na Lightning niż do angażowania się na własną rękę w otwieranie własnych kanałów i węzłów routingowych.

Dodatkowo, choć to rozwiązanie cały czas się rozwija, nadal nie zostało przetestowane na dużą skalę, a zaledwie 3,730.40 BTC, które jest ulokowane w sieci, ze średnią możliwością kanału 0.043 BTC, nie jest imponującą wartością oraz dodatkowo znacznie utrudnia wysyłanie większych transakcji. Z drugiej strony Lightning ma być wykorzystywane właśnie do mikropłatności…

Podsumowanie

Salwador zaadoptował Lightning Network, wraz z uczynieniem Bitcoina legalnym środkiem płatniczym, Twitter pozwala przesyłać napiwki w BTC z wykorzystaniem tej technologii, a na konferencji Bitcoin 2022 Jack Mallers ogłosił partnerstwo z Shopify. 

Adopcja Lightning Network wydaje się tylko przyspieszać, podobnie zresztą jak sama technologia, która sporo skorzystała na aktualizacji Taproot. Jedną z takich nowości jest Taro -nowy protokół oparty na Taproot do wydawania aktywów takich jak stablecoiny w łańcuchu Bitcoin, które można przesyłać przez sieć Lightning Network.

 

Popularne