Wszystko co powinieneś wiedzieć o Lightning Network

Dla wnikliwych Techniczne

Lightning Netwok to rozwiązanie które może sprawić, że Bitcoin stanie się prawdopodobnie najszybszym i najtańszym systemem płatności na świecie o […]

Lightning Netwok to rozwiązanie które może sprawić, że Bitcoin stanie się prawdopodobnie najszybszym i najtańszym systemem płatności na świecie o nieograniczonej wręcz przepustowości.

Wszystkie ułożone w bloki transakcje, rozproszone na całym świecie to wielki atut Bitcoina, ale jednocześnie ze względu na ograniczenia technologiczne również i jego słabość.

W chwili obecnej w sieci Bitcoin zachodzi kilka transakcji na sekundę. W sieci Visa, w szczycie mamy do czynienia nawet z 47000 transakcjami na sekundę. Gdybyśmy mieli podobną ilość transakcji przeprowadzanych Bitcoinem, to zwyczajnie nie byłoby szans, żeby każda z tych transakcji dochodziła w rozsądnym czasie do każdego z węzłów sieci. Rozgłaszanie bloków po 7GB, każdy co 10 minut technicznie w Bitcoinie nie jest jeszcze możliwe, ze względu na przepustowość łącz, przestrzeń dyskową użytkowników oraz wykorzystanie pamięci RAM.

Bitcoin może więc albo pozostać technologią niszową, albo musi nastąpić technologiczny przełom. Tym przełomem ma szansę stać się Lightning Network.

Jeśli Lightning Network nie napotka poważnych problemów podczas implementacji i faktycznie będzie działać tak jak obiecują pomysłodawcy, będzie w stanie obsłużyć nawet miliony transakcji na sekundę! Do tego nie będzie konieczne czekanie na potwierdzenia, a koszt transakcji będzie zbliżony do zera.

Podstawą działania sieci Lightning są transakcje, które odbywają się poza głównym łańcuchem bloków. Budzi to zazwyczaj duży sceptycyzm, ale trzeba zdać sobie sprawę, że jakiegokolwiek zdecentralizowanego systemu byśmy nie wymyślili, przy obecnym zaawansowaniu technologicznym (przepustowość łącz, przestrzeń dyskowa, pamięć RAM ), naprawdę duża przepustowość jest możliwa tylko pod warunkiem, że transakcje nie będą zapisywane w łańcuchu bloków. Nie oznacza to jednak, ze łańcuch bloków nie odgrywa w sieci Lightning istotnej roli. Wręcz przeciwnie – jest gwarantem tego, że transakcje poza blokiem będą prawidłowe.

Teoria

Użytkownicy Bitcoina łączeni są w pary. Załóżmy, że w taką wirtualną „parę” połączeni zostali Jan i Agata. Wpłacają oni daną część swoich bitcoinów na wspólny adres. Ta transakcja trafia do łańcucha bloków tak jak każda inna. Nie zagłębiając się w techniczne szczegóły, dzięki pewnym kryptograficznym trikom, zarówno Jan jak i Agata mają możliwość ponownego dokonania „wypłaty” środków zgromadzonych na tym wspólnym adresie na własne, odrębne adresy. Jeśli więc każdy z nich wpłacił po 3 bitcoiny na wspólny adres, to każdy z nich ma również możliwość „wypłaty” swojej części z powrotem na własny adres. Zarówno Jan jak i Agata posiadają odpowiednie, lustrzane transakcje, które w każdej chwili mogą rozgłosić w sieci Bitcoin by odzyskać włożone fundusze. Sęk w tym, że nie chcą tego robić, ponieważ wspólny adres założony jest po to, by mogli między sobą dokonywać szybkich i tanich transakcji.

Załóżmy teraz, że Jan „wysyła” Agacie 1BTC w sieci Lightning. Odbywa się to nie tylko bez konieczności „dotykania” łańcucha bloków. Mogą to zrobić bezpośrednio między sobą, między własnymi komputerami podłączonymi do siebie, nawet bez konieczności dostępu do Internetu.

Jak to możliwe? W gruncie rzeczy ustalają oni miedzy sobą nowy bilans. Dotychczas każdy mógł wypłacić ze wspólnego adresu po 3BTC. Teraz ustalają, że Jan będzie mógł wypłacić 2BTC, a Agata 4BTC. Wymieniają się nowymi transakcjami, dzięki którym Jan może wypłacić ze wspólnego adresu 2BTC, a Agata 4BTC. Co istotne, te transakcje nie są rozgłaszane w sieci Bitcoin, ale w każdej chwili mogą być. To daje Janowi i Agacie gwarancję, że skoro w każdej chwili mogą wypłacić ze wspólnego adresu odpowiednią ilość BTC, to w zasadzie jest to tak, jakby te bitcoiny posiadali.

Stare transakcje (o innym bilansie) staja się nieaktualne, a dokładnie mówiąc – wymiana na nowe transakcje powoduje, że użycie starych może być zablokowane przez drugą stronę. Nie wdając się w szczegóły, wymiana bitcoinów między Janem a Agatą to po prostu ustalanie nowego bilansu i poprzez kryptograficzne triki – dawanie sobie możliwości zrealizowania tego bilansu, gdy tylko któraś ze stron będzie chciała zerwać współpracę.

Przykład działania

W jaki sposób osoby dobrane w pary mogą stworzyć sieć i umożliwić transfer bitcoinów pomiędzy osobami, które nie łączą się ze sobą bezpośrednio?

Jan i Agata wpłacili część swoich bitcoinów na wspólny adres, tak jak to opisano w części pierwszej. Jan i Agata umawiają się bezpośrednio między sobą co do podziału środków ze wspólnego adresu. Zawsze mogą wypłacić bitcoiny na swoje prywatne adresy w proporcjach w jakich się umówili, ale im się to nie opłaca.

Jedna osoba może założyć wspólny adres również z kimś innym. Przykładowo Jan może również założyć wspólny adres z Magdą. Mamy więc sytuację, w której Jan współdzieli 2 adresy. Jeden z Agatą, a drugi z Magdą. Z każdą z tych osób może dokonywać transferu bitcoinów poza łańcuchem bloków, tak jak to zostało opisane w części pierwszej.

Załóżmy, że wspólne adresy wyglądają następująco:

Wspólny adres Jana i Agaty na którym jest łącznie 4BTC
2BTC – Tyle Jan może wypłacić korzystając z łańcucha bloków
2BTC – Tyle Agata może wypłacić korzystając z łańcucha bloków

Sytuacja wygląda ciekawie, gdy Agata chce przesłać bitcoiny Magdzie. Nie posiada z Magdą wspólnego adresu, ale łączy ich Jan. Jan posiada wspólny adres zarówno z Magdą, jak i z Agatą. Oznacza to, że Magda może wysłać bitcoiny do Jana, a Jan może w zamian wysłać bitcoiny do Agaty. Dzięki odpowiednim kryptograficznym trikom takie pośrednictwo jest dla wszystkich bezpieczne.

W momencie w którym Agata chce wysłać 1BTC Magdzie, Magda tworzy pewną tajna liczbę R. Nie ujawnia jej nikomu, ale ta liczba umożliwia nowy podział środków na wspólnych adresach.

Wspólny adres Jana i Agaty, która chce wysłać 1BTC do Magdy:
2BTC – Tyle Jan może wypłacić korzystając z łańcucha bloków

1BTC – Tyle Agata może wypłacić korzystając z łańcucha bloków

1BTC – Tyle dodatkowo Jan będzie mógł wypłacić z Puli Agaty pod warunkiem, że pozna tajną liczbę R utworzoną przez Magdę.

Wspólny adres Jana i Magdy na którym jest łącznie 4BTC

1BTC – Tyle Jan może wypłacić korzystając z łańcucha bloków

2BTC – Tyle Magda może wypłacić korzystając z łańcucha bloków

1BTC – Tyle dodatkowo Magda może wypłacić, ale gdy to zrobi ujawni tajną liczbę R.

Umowa między Janem, a Magdą wygląda teraz tak, że Jan daje Magdzie możliwość wypłaty dodatkowego 1BTC pod warunkiem, że Magda posiada liczbę R. Magda, jako jedyna zna tą liczbę. Może więc wypłacić dodatkowy 1BTC od Jana. Jeśli jednak zrealizuje tą umowę przy użyciu Blockchaina to z automatu wszyscy poznają liczbę R. Po ujawnieniu liczby R Jan również będzie w stanie zrealizować umowę między Agatą, a więc 1BTC utracone na wspólnym koncie z Magdą może odzyskać na wspólnym koncie a Agatą.

Nie ma tu konieczności, aby odwoływać się do łańcucha bloków. Magda może po prostu podać Janowi bezpośrednio liczbę R w zamian za ustalenie nowej umowy na podział środków:

Wspólny adres Jana i Magdy, na którym jest łącznie 4BTC, po tym jak Jan poznał liczbę R

1BTC – Tyle Jan może wypłacić korzystając z łańcucha bloków

3BTC – Tyle Magda może wypłacić korzystając z łańcucha bloków

Jan znając liczbę R może zmodyfikować swoją umowę z Agatą:

Wspólny adres Jana i Agaty na którym jest łącznie 4BTC po tym jak Agata poznała liczbę R

3BTC – Tyle Jan może wypłacić korzystając z łańcucha bloków

1BTC – Tyle Agata może wypłacić korzystając z łańcucha bloków

Na koniec mamy więc sytuację, w której Agata ma o 1BTC mniej, a Magda o 1BTC więcej. Jan, który działał jako pośrednik ma na wspólnym adresie z Magdą o 1BTC mniej, ale za to na wspólnym adresie z Agatą ma o 1BTC więcej. Łącznie ma więc tyle samo.

Możemy więc mówić o transferze środków za pośrednictwem Jana. Wszystko to odbyło się bez dotykania łańcucha bloków i było bezpieczne, ponieważ na każdym etapie, każda ze stron może odwołać się do łańcucha bloków. Sęk w tym, że nie musi i jest to mniej opłacalne niż kooperacja i zawieranie kolejnych umów.

Oczywiście pośredników takich jak Jan może być dowolnie wielu, a często może prowadzić wiele różnych dróg między Agatą i Magdą. Tych pośredników mogą być tysiące dla każdej transakcji, ale nadal jest to angażowanie w transakcję małego wycinka sieci. To daje sieci Lightning ogromną skalowalność, bo różne transakcje będą przesyłane w tym samym czasie różnymi drogami. Taka skalowalność nie jest jeszcze możliwa do osiągnięcia w przypadku transakcji dokonywanych tradycyjnie w łańcuchu bloków.

Pierwsza działająca implementacja Lightning Network – czyli Thunder Network już ujrzała światło dzienne w wersji Alpha. Na oryginalne rozwiązanie Blockstream (twórcy Lightning Network), sprzężone już z samym Bitcoinem, zapewne poczekamy jeszcze wiele miesięcy.

Cezary Dziemian

Fotografia na licencji Creative Commons:Flickr.com

Tagi
bitcoin Blockstream btc Lighting Network

Newsletter

Najważniejsze newsy i insiderskie informacje prosto na Twój email.

Dbamy o ochronę Twoich danych. Przeczytaj naszą Politykę Prywatności.