Autor grafiki tytułowej BTC Keychain, Licencja Creative Commons Generic 2.0 

Czy płaciłeś kiedyś Bitcoinem za gumę do żucia w kiosku? A może dokonałeś nim szybkiej płatność online? Ja też nie. Dwa z trzech głównych powodów dlaczego nie, to powolne potwierdzanie transakcji oraz jej duże koszty. A jakby tak transakcje Bitcoina były (niemal) natychmiastowe i (niemal) darmowe?

Najwiekszy problem Bitcoina (oraz innych blockchainów)

To co wyróżnia Bitcoina, a potem inne rozwiązania oparte o blockchain, to fakt, że nikt nie ma nad nimi bezpośredniej kontroli i są one nie do zatrzymania. Wynika to z ich zdecentralizowanej budowy.

W używanym na co dzień internecie króluje model scentralizowany. Za każdą aplikacją, stroną, serwisem internetowym stoi jakaś firma. To ona utrzymuje serwery, na których znajduje się strona. Ma też pełną kontrolę nad powierzonymi jej danymi. Ponieważ wszystko jest trzymane w jednym miejscu, to firma ta może świadczyć swoje usługi w bardzo szybki sposób. Ale też rodzaj świadczonych usług zależy też tylko od tej firmy. Może ona w dowolnym momencie zmienić zasady gry czy usunąć Twoje konto. Podobnie ma to miejsce z procesorami płatności. Kartą VISA czy Mastercard zapłacisz szybko, w kilka sekund. Ale równie szybko Twój sklep może być odsunięty od przyjmowania płatności 1 1. O koronnym przykładzie tego zjawiska mówi Maciej Aniserowicz, będąc gościem w podcaście Mała Wielka Firma. Opowiada on o tym, jak podczas sprzedaży szkolenia online dla programistów pośrednik płatności z dnia na dzień przestał obsługiwać płatności kartą. Bez żadnych wyjaśnień czy wcześniejszego kontakty. × .

W Bitcoinie i blockchainie jest inaczej. Nie ma firmy, która odpowiada za świadczenie usługi. Nie ma pojedynczego serwera, na którym znajdują się wszystkie dane. Jest za to grupa ochotników, którzy przyłączają się do sieci. Którzy z własnej woli świadczą dla niej usługi, prowadząc pełne węzły (dostarczenie danych) oraz kopiąc krypto (zabezpieczanie sieci oraz przeprowadzanie nowych transakcji). W wyniku tego nikt nie jest w stanie z dnia na dzień zmienić zasad gry w Bitcoinie. Nikt też nie jest w stanie go zatrzymać, wyłączyć. Ale jest za to cena do zapłacenia.

To ceną jest dość ograniczona liczba transakcji, jakie jest w stanie obsłużyć sieć. Dla Bitcoina będzie to mniej więcej kilkanaście transakcji na sekundę. Wynika to z dwóch faktów.

Po pierwsze dane o transakcjach muszą być rozsyłane po całym świecie. Do wszystkich wolontariuszy działających w sieci. Chcemy aby wszyscy mieli takie same dane. I to w takiej samej kolejności. Dlatego blockchain nazywa się właśnie blockchain. Nie wysyła pomiędzy sobą pojedynczych transakcji. Tylko najpierw je grupuje, w tak zwane bloki (ang. block). Następnie te bloki łączy ze sobą w odpowiedniej kolejności, tworząc łańcuch (ang. chain). Formowanie tych bloków zajmuje czas. W Bitcoinie około 10 minut. Ich przesyłanie po sieci również. 

Po drugie, chcemy aby wolontariuszy w sieci było jak najwięcej. Dzięki temu nasza sieć będzie bezpieczna i naprawdę zdecentralizowana. Nikt nie będzie mógł w niej namieszać, ani jej zatrzymać. Aby spełnić ten warunek nie możemy stawiać przed wolontariuszami zbyt dużych wymagań technologicznych i ekonomicznych. W przeciwnym wypadku tylko nieliczni będą w stanie je spełnić. I łatwiej będzie wejść w spisek, aby zmanipulować sieć.

Jak widzimy ograniczona przepustowość blockchaina, jest defacto wpisana w jego definicję. Dzięki takiej, a nie innej budowie całego systemu, jesteśmy w stanie zapewnić mu decentralizację, odporność na cenzurę i niemożliwość jego zatrzymania. Idąc na blockchainie w stronę lepszej wydajność zazwyczaj idziemy na kompromis z założeniami odnośnie decentralizacji. A to jest fundament Bitcoina. Tego nie chcemy ruszać. Bo jak to źle ruszymy, to wszystko jebnie (będzie łatwiej zmanipulować, cenzurować czy zatrzymać całą sieć). Więc jak fundamentu nie chcemy ruszać, to może by tak coś zbudować nad nim. Jakąś przybudówkę. Layer 2 (drugą warstwę).

Welcome to Layer 2

Idea drugiej warstwy wygląda następująco. Na chwilę wyjmujemy naszego Bitcoina z blockchaina, aby pozbyć się jego ograniczeń. Następnie te wyjęte Bitcoiny tworzą oddzielną warstwę, oddzielną sieć. Osoby, które znajdują się w tej sieci mogą między sobą przesyłać swoje Bitcoiny. Mogę to robić taniej i szybciej niż na blockchainie. Przy czym to cały czas musi być bezpieczne, niewymagające zaufania i odporne na cenzurę 2 2. Ostatni punkt - odporność na cenzurę - jest trochę ograniczony w Lightning Network. W przeciwieństwie do blockchaina, w sieci Lightning, węzeł operuje według własnego widzi mi się. Jak nie spodoba mu się adres nadawcy bądź odbiorcy, to może po prostu nie przesłać transakcji dalej. Więcej na ten temat przeczytasz w sekcji artykułu poświęconej mankamentom LN. × . Z tego powodu, giełdy nie mogą być traktowane jako rozwiązanie typu Layer 2. Ponieważ giełda stanowi w nich element sterujący, realizujący poszczególne transakcje. Mogący je tym samym nimi manipulować czy je cenzurować. 

Po przeprowadzenia szeregu operacji na drugiej warstwie może powrócić z powrotem na blockchain Bitcoina. Otrzymamy wtedy na nim nasze aktualne saldo z drugiej warstwy. Przy czym należy pamiętać o tym, że zarówno wyjście z blockchaina Bitcoina na drugą warstwę, i powrót z niej, są transakcjami zawieranymi na blockchainie. Oznacza to, żę będziemy przy nich standardowo czekać na potwierdzenie transakcji w blokach i poniesiemy jest standardowe koszty transakcyjne.

Lightning Network jest najpopularniejsza implementacji idei drugiej warstwy dla Bitcoina. Bitcoin nie jest też jednym projektem, dla którego rozwijane są rozwiązania drugiej warstwy. Przykładem jest Raiden Network 3 3. Więcej na temat projektu Raiden Network dowiesz się ze strony projektu. Wiedz też, że Raiden to nie jedna adaptacja drugiej warstwy dla Ethereum. A ani Bitcoin, ani Ethereum nie są jedynymi projektami, dla których pracuje się nad rozwiązaniami drugiej warstwy. × dla sieci Ethereum.

Lightning Network – jak działają błyskawiczne płatności na Bitcoinie

Autor grafiki G0DeX, Licencja Creative Commons Generic 2.0 

Podstawą działania LN są kanały, które użytkownicy zakładają między sobą. Każdy kanał ma dwa końce. Dwóch użytkowników, których łączy ze sobą. Kanał ma też jeszcze jeden bardzo ważny parametr – głębokość. Oznacza to ile środków może być maksymalnie przesłanych przy jego pomocy. Początkowo jest to liczba środków, jakie strony zamroziły na blockchainie Bitcoina podczas otwierania kanału. Potem jest to aktualne saldo wysyłającego użytkownika w tym kanale.

Rozważmy teraz hipotetyczny scenariusz wykorzystania Lightning Network. Załóżmy że Ty i ja jesteśmy znajomymi. Często razem chodzimy na obiad bądź wychodzimy do baru. W takich sytuacjach jeden z nas płaci rachunek, a drugi potem reguluje swoją należność. Nie są to zazwyczaj duże kwoty – od kilkunastu do kilkudziesięciu złotych. Płatności te zachodzę w dwie strony. Raz Ty płacisz rachunek, a ja Ci potem oddaje pieniądze. Innym razem jest odwrotnie. Tego typu okazje zdarzają się regularnie, co kilka dni.

Jeśli do tych rozliczeń używaliśmy Bitcoina, to co kilka dni trzeba by przeprowadzać nową transakcję. Najprawdopodobniej nie mielibyśmy problemu z poczekanie na transakcje. Bo się znamy i ufamy sobie. Ale mielibyśmy problem z ponoszeniem opłat transakcyjnych. Zwłaszcza, gdyby cena Bitcoina znowu poszła w górę wywołując większe zainteresowanie i zapchanie sieci. Nie mam zamiaru płacić kilkunastu czy nawet kilkudziesięciu złotych prowizji, za to by oddać Ci dwie dychy za dzisiejszy obiad. I tutaj z pomocą przychodzi nam Lightning Network.

Ponieważ zazwyczaj nie przelewamy sobie większych kwot, to postanawiamy stworzyć między sobą kanał płatności Lightning Network o głębokości 0.01 BTC. Ponieważ raz Ty mi oddajesz za obiad, raz ja Ci zwracam za drinki, to kanał musi być dwustronny. Oboje musimy móc przesyłać wartość. 

W tym celu każdy z nas tworzy transakcję na blockchainie, która zamraża na nim to 0.01 BTC i “przenosi” je do sieci Lightning Network. To jest transakcja blockchainowa, więc będziemy musieli za nią zapłacić i na nią poczekać.

Następnie każdy z nas ma na swoim saldzie w sieci Lightning po 0.01 BTC.

Teraz możemy między sobą dokonywać dowolną ilość transakcji, tak aby suma naszych sald mieściła się w 0.02 BTC (czyli to co zamroziliśmy na blockchainie Bitcoina). Transakcje, które są dokonywane pomiędzy nami w sieci Lightning mają dwie bardzo fajne cechy. Po pierwsze są niemal natychmiastowe. To kwestia sekund, czasem wręcz ułamków sekundy. Dzieję się to tak szybko, i doświadczenie płatności jest tak samo łatwe i przyjemne, jak przelewanie między sobą pieniędzy w Revolucie czy BLIKu. Po drugie transakcja jest praktycznie darmowa. Zapłacimy za nią maksymalnie kilka satoshi. Czyli musielibyśmy wykonać ich dziesiątki tysięcy, aby zapłacić chociaż grosz.

Możemy tak się przerzucać transferami w obrębie Lightning Network w nieskończoność. Ale też w dowolnym momencie każdy z nas może zamknąć kanał i wrócić na blockchain Bitcoina. Zamykający kanał przedstawia jego ostatni stan sieci. Tutaj może on próbować oszukać i przedstawić wcześniejsze saldo, które było dla niego korzystniejsze. Wtedy druga strona kanały ma czas na przedstawienie swojej wersji wydarzeń i jeśli jej saldo będzie późniejsze, to ono zostanie uwzględnione w rozliczeniu 4 4. A próbujący zamknąc kanał nieaktualnym saldem ponosi wyzyko utraty swoich środków zgromadzonych na kanale. × .

Płatności pośrednie w Lightning Network

No dobre, ale na te obiady i drinki nie chodzimy tylko we dwóch. Oprócz tego jest jeszcze szereg innych znajomych. I z nimi też chciałbym się rozliczać przy pomocy LN. Czy w związku z tym z każdym z nich muszę otwierać nowy kanał? I dla każdego z nich blokować 0.01 BTC potrzebnych na jego utworzenie?

Odpowiedź brzmi nie. Lightning pozwala nie tylko na płatności bezpośrednie. Możemy też realizować nasze płatności przez pośredników. Możemy więc kierować nasze płatności przez kanały innych osób. Lightning Network działa jak system naczyń połączonych. Wrzucamy płatność w kierunku naszego odbiorcy, i płynie ona do niego możliwie najkrótszymi możliwymi drogami. Pisze drogami, ponieważ finalnie może się rozgałęzić, jeśli głębokość kanału nie pozwoli zrealizować całej płatności przy wykorzystaniu jednego kanału. 

Czy korzystanie z pośrednictwa kanałów innych osób jest bezpieczne? Czy nie ma ryzyka, że któryś z pośredników po prostu przywłaszczy sobie nasze środki?

Nie, nie ma takiego ryzyka. A to dzięki wykorzystaniu mechanizmu znanego jako Hash Time Lock Contracts. W skrócie mechanizm ten sprawia, że pośrednik otrzymuje środki tylko na określony czas (Time Lock). Przez ten czas czeka, aż otrzyma potwierdzenie od kolejnego elementu łańcuszka płatności, że wykonał on swój krok. Jeśli tak, to przelew mu należność. I to jest jedyna rzecz, jaką jest w stanie zrobić z tymi środkami. Puścić je dalej. Jeśli tego nie zrobi, to po określonym czasie środki z powrotem wrócą do nas. Nie ma więc ryzyka, że nasze środki zostaną zagarnięte po drodze przez pośredników. W najgorszym wypadku może być tak, że one zostaną trochę przytrzymane, zanim do nas wrócą w przypadku niepowodzenia płatności 5 5. Więcej na temat technicznego działania Hash Time Lock Contracts dowiesz się z książki Mastering Bitcoin. Tutaj link do anglojęzycznego rozdziału na temat HTLC. × .

Invoice – czyli jednorazowe wezwanie do zapłaty 

Autor grafiki tytułowej miguelb, Licencja Creative Commons Generic 2.0 

Kanały sprawdzają się świetnie, jeśli mamy do czynienia z regularnymi płatnościami pomiędzy zainteresowanymi stronami. Jednak często będziemy chcieli wykonać jednorazową płatność. Gdzie nie ma sensu otwierać i utrzymywać ze sobą kanału. W tym kontekście znakomicie sprawdzają się Invoices. Czyli tłumacząc na polski faktury.

I działają one właśnie tak jak faktury. Mówią one chcę taką i taką kwotę dostać na taki a taki adres Lightning. Jak ktoś otworzy taki Invoice w swoim portfelu Lightning, to jednym kliknięciem może potwierdzić zrealizowanie tej płatności. Co ważne Invoices mają określony termin ważności i wymagają bycia online przez odbiorcę 6 6. Obecność online jest wymagana w przypadku portfeli nie custodialnych (w których to Ty jesteś jednym posiadaczem zgromadzonych środków). × . Tak więc jeśli wysyłamy komuś invoice, to osoba ta powinna od razu zrealizować płatność, a my w tym czasie powinniśmy mieć otwarty portfel Lightning.

Mankamenty Lightning Network

Na koniec skupimy się na chwilę na mankamentach sieci Lightning Network. 

Po pierwsze samo zakładanie, zmienianie głębokości czy likwidacja kanału cały czas muszą być przeprowadzane na blockchainie. Co wiąże się z kosztami.

Średni koszt transakcji na poziomie 0,30 USD wydaje się być akceptowalny. Zwłaszcza, jeśli nie śpieszy nam się z tym zakładaniem kanału i możemy dłużej poczekać. Wtedy może zmniejszyć opłatę transakcyjną i zapłacić jeszcze mniej.

Problem ten będzie jednak bardziej widoczny, gdy cena Bitcoina ruszy na północ, zwiększy się zainteresowanie, a tym samym wykorzystanie sieci. Koszty transakcyjne osiągną wtedy znowu kilka, czy nawet kilkanaście dolarów za transakcję. To już zdecydowanie za dużo, abyśmy otworzyli sobie kanał do rozliczeń za obiady. Tutaj z ratunkiem może nam przyjść koncepcja skalowania na jeszcze jednym poziomie – Layer 3. Wtedy na Bitcoinie tworzymy jedną transakcję, w której są zamrożone środki dla wszystkich naszych kanałów. Na następnym poziomie, już w obrębie Lightning Network, dzielimy ten nasz kanał ogólny, na kanały z poszczególnymi osobami, tworząc tym samym poziom trzeci.

Kolejny mankament to niepewność co do 100 procentowego bezpieczeństwa oprogramowania, o które oparta jest Lightning Network. Jest to bardzo nowa, nieustannie rozwijana technologia. Nic więc dziwnego, że mogą w nią się wkraść jakieś błędy. Jak ten sprzed kilku miesięcy, o nie weryfikowaniu poprawności utworzenia kanału przez poszczególne węzły, tylko wierzenie pierwszemu na słowo 7 7. Więcej na temat tego błędu dowiesz się z anglojęzycznego artykułu w serwisie Coindesk. × . Ponieważ w grę wchodzą pieniądze, to niespecjalnie chcemy być ofiarami tych błędów. Plusem LN jest to, że umożliwia ona transfery naprawdę niewielkich wartości (nawet poniżej satoshiego). To przyciąga większe rzesze użytkowników, którzy umieszczają w sieci niewielkie kwoty i następnie na nich eksperymentują. Im więcej ludzi korzysta z sieci, przez dłuższy okres czasu, tym więcej błędów i niedociągnięć jest wyłapywanych i naprawianych. A co za tym idzie sieć z czasem staje się coraz bardziej bezpieczna. Dokładnie jak to miało miejsce z blockchainem Bitcoina przed dekadą i innymi publicznymi blockchainami opensource.

Ostatnim mankamentem o jakim chciałbym wspomnieć, a który jest często wymieniany przez przeciwników, to ryzyko centralizacji sieci. W naszych przykładach mieliśmy pootwierane kanały ze swoimi znajomymi. A ruch do osób, z którymi nie mamy kanałów, przechodził przez wspólnych znajomych. Jednak istnieje duże ryzyko, że ludzie tak naprawdę nie będą zakładać kanałów między sobą, tylko z dużymi hubami (jak na przykład giełdy, banki czy procesory płatnicze). Korzyść z posiadania połączenia z hubem, z którym ma połączenie duża ilość użytkowników jest oczywista. Za jego pośrednictwem my też mamy do nich połączenie. Jakie ryzyka są wiążą z taką potencjalną centralizacją? 

Wiemy na pewno, że nie zagraża to bezpieczeństwu środków przesyłanych przez takie huby. Czy takie centralne węzły mogłby być punktem zapalnym, przez które system mógłby zostać regulowany? Czy takie huby mógłby cenzurować sieć?  Wykluczać z niej niepożądanych (przez nich bądź regulatorów) uczestników. 

Tylko w ograniczonym zakresie.

Po pierwsze dany węzeł lightning network, wie tylko od kogo dostał transakcje i do kogo ma ją przekazać dalej. Nie zna, a przynajmniej nie może być pewnym że zna, ani nadawcy, ani adresata. Ciężko mu będzie więc cenzurować. A i tak cenzurować mógłby tylko ruch przechodzący przez siebie. “Wykluczeni” cały czas mogliby realizować transakcje na około. O ilość niezależnych węzłów możemy być w miarę spokojni. Nie zapominajmy że u podstaw Bitcoina leży społeczność, która niezwykle ceni sobie wolność i prywatność.

Prywatność lepsza, niż na blockchainie

Jeśli już o prywatności mowa, to Lightning Network daje nam korzyści również w tym obszarze. Na blockchainie mamy zapis wszystkich przeprowadzonych transakcji. W Lightning Network tak nie jest. Mamy tylko ślad po otwarciu i zamknięciu kanału. Nie wiemy nic co się działo pomiędzy tymi transakcjami. Co znacząco poprawia prywatność. Zwłaszcza jeśli zastosujemy omawiany wcześniej mechanizm skalowania na trzecim poziomie, gdzie na blockchainie znajduje się ślad tylko po naszym ogólnym kanale “do wszystkich”.

Jak zacząć

Ekosystem Lightning Network jest już na tyle rozwinięty i bezpieczny, że z powodzeniem możemy spróbować swoich sił. Doświadczyć ekspresowo szybkich i prostych transakcji Bitcoinem, które właściwie nic nie kosztują. Tutaj znajdziesz listę portfeli lightning na telefony. Ja korzystam z Breez. Jeśli nie masz do kogo zrobić pierwszej transakcji, aby zobaczyć jak to działa, to możesz mi przesłać napiwek za ten artykuł. Jeszcze więcej na temat Lightning Network dowiesz się z poniższej godzinnej rozmowy, jaką przeprowadziłem z Rafałem Kiełbusem i Szczepanem Bentynem.

Leave a Comment