Wprowadzenie
Lightning Network to technologia, która z dużą dozą prawdopodobieństwa będzie powszechnie wykorzystywana we wszystkich projektach kryptowalutowych opartych na blockchainie. Sposób, w jaki ona funkcjonuje sprawi jednak, że o jej istnieniu większość użytkowników nie będzie sobie zdawać sprawy. Podobnie z resztą było z szeregiem innych technologii i usprawnień wprowadzanych w sieci Bitcoin na przestrzeni ostatnich lat. Najlepszym przykładem będzie implementacja technologii o nazwie Segregated Witness (Segwit) z sierpnia 2017 roku, która dzisiaj domyślnie występuje w wielu rodzajach portfeli Bitcoinowych, a nawet jest obsługiwana przez wiele giełd i kantorów mimo, że spora część użytkowników nie zdaje sobie z tego sprawy. Adopcja tej technologii mimo ogromnej fali oburzenia ze strony przeciwników jakichkolwiek zmian w protokole ( odłam w społeczności Bitcoin cash ) osiągnęła już ponad 44%, jak podaje seriwis transactionfee.info. Jest to ogromny sukces z racji na całkowicie zdecentralizowaną społeczność, która nie może zmusić reszty do zaktualizowania swojego oprogramowania.
Podobnych aktualizacji w protokole sieci jest na tyle dużo, że wiedza o nich wszystkich dla osób nie związanych w żaden sposób z programowaniem jest całkowicie zbędna. Przeciętnemu użytkownikowi wystarczy natomiast fakt, iż kod źródłowy całego Bitcoina jak i wszystkich technologii na nim opartych jest otwarty. Jeśli jest więc ktoś kto chciałby zainwestować większe pieniądze w ten projekt, a nie chciałby ufać opiniom nieznajomych sobie ludzi, to zawsze może on wynająć jakieś firmy które dla niego zupełnie bezstronnie wydobędą niezbędne informacje.
Dokładnie tak samo było podczas powstawania internetu, którego w tamtym okresie też nikt nie rozumiał. Obecnie mniej niż 0,01% osób korzystających z sieci potrafi wytłumaczyć czym są adresy DNS, HTTP, FTP a mimo to każda z nich bez najmniejszego problemu jest w stanie z niego korzystać. Nawet osoby starsze są w stanie samemu zaprojektować własną stronę www przy pomocy prostych szablonów, co kiedyś wydawałoby się dla nich totalną abstrakcją. Każda najnowsza technologia musi być więc z czasem przyjazna dla użytkowników, w przeciwnym razie nikt z niej nie będzie korzystał i nie spełni ona swojej funkcji.
Zatem czym jest technologia Lightning Network ?
Przez programistów jest ona nazywana „drugą warstwą sieci” lub „nakładką” na łańcuch Bitcoina, jednak to nie są określenia przemawiające do nas wszystkich jednakowo. Najprościej rzecz ujmując Lightning Network (LN) dla Bitcoina jest jak karta płatnicza dla systemu bankowego. Bez kart płatniczych banki działały by dalej, jednak bez nich wielogodzinne lub nawet kilkudniowe czekanie na przelew nie pozwoliłoby na efektywne płatności w sklepach, co znacznie ograniczyłoby konieczność korzystania z banków. Karty płatnicze zatem nie są niezbędne dla funkcjonowania banków jednak są bardzo potrzebne, podobnie będzie w przypadku technologi Lightning Network.
Podobieństwo między Lightning Network i kartami płatniczymi nie kończy się jednak na samym zastosowaniu obydwu mechanizmów. Z technicznego punktu widzenia obie technologie pełnią rolę „drugiej warstwy” systemów płatniczych. Termin ten oznacza, iż każda transakcja która odbywa się tą metodą jest do pewnego momentu niezależna od całego systemu. W momencie kiedy dokonujemy płatności kartą nasze środki nie wędrują od razu do sprzedawcy, a są jedynie blokowane na naszym rachunku. Procesor płatniczy posiada bowiem własną bazę danych klientów, która jest aktualizowana z systemem bankowym podczas najbliższych sesji przychodzących. W przypadku Lightning Network środki również są blokowane, jednak nie są one w żaden sposób zależne od osób trzecich. Jakakolwiek próba wywołania błędu w systemie mającego na celu przejąć zablokowane środki innych użytkowników sieci Bitcoin, natychmiast jest karana przez protokół całkowitą utratą wszystkich środków „włamywacza”. Jest to bardzo rygorystyczne zabezpieczenie, które wielokrotnie podczas testów sieci niemile zaskoczyło kilku programistów. Zaleca się więc czekać na finalną wersję tej technologi przeznaczona dla dużych przedsiębiorstw i nie należy już dzisiaj blokować w niej większych kwot pieniędzy.
Aby zrozumieć to lepiej potraktujmy przez chwilę Bitcoina jak zwykły system bankowy bez właściciela. Każdy w nim będzie miał swój numer konta (adres publiczny) i hasło (klucz prywatny). W momencie kiedy dokonujemy jakiegoś przelewu, to po jego zatwierdzeniu przez bank (społeczność) musimy poczekać do najbliższej sesji przychodzącej (nowego bloku), aż odbiorca zobaczy środki na swoim koncie. Gdy zastosujemy jednak technologię Lightning Network i zablokujemy sobie odpowiednią ilość środków za pomocą specjalnie do tego przeznaczonego portfela , będziemy mieli możliwość dokonywania natychmiastowych i przy okazji anonimowych przelewów. Proces ten będzie możliwy dzięki istnieniu tzw „hub’ów” czyli specjalnie do tego zaprojektowanych pośredników. W przeciwieństwie jednak do tradycyjnego systemu bankowego pośrednicy Ci nie mają żadnej władzy nad środkami zablokowanymi z ich pomocą.
Korzystając z tradycyjnych pośredników płatności typu Visa czy Mastercard używamy systemów całkowicie zależnych od osób trzecich. Banki czy wszelkiego rodzaju instytucje mogą więc ingerować w nasze konta bez pytania nas o zgodę, z racji na to że to nie my jesteśmy właścicielami konkretnej bazy danych zawierającej informacje o naszym stanie posiadania. Technologia Lightning Network w przeciwieństwie do kart płatniczych czy innych procesorów płatniczych, nie daje technicznej możliwości ingerencji w stany naszych kont, ani nie daje nikomu upoważnienia do zawierania transakcji bez naszej zgody. Zwiększa ona również naszą prywatność, gdyż jej protokół jest tak skonstruowany, by w większości przypadków nawet tzw pośrednik nie wiedział jaki jest nadawca ani odbiorca konkretnej płatności.
Kanały transakcyjne
Jednym z głównych mechanizmów na którym opiera się technologia LN, jest sieć tzw kanałów transakcyjnych którymi są tak naprawdę w odpowiedni sposób powiązane ze sobą „numery kont Bitcoinowych”. Sposób w jaki one funkcjonują jednak wcale nie jest skomplikowany, gdyż mechanizm ten znamy z tradycyjnej bankowości podczas korzystania np. z firm oferujących natychmiastowe przelewy krajowe czy nawet międzynarodowe. W tradycyjnym systemie bankowym gdy ktoś chce przelać środki do znajomego, bez czekania na kolejną sesję bankową, może skorzystać właśnie z takiego procesora będącego jednocześnie pośrednikiem. Firmy świadczące tego typu usługi chcące zrealizować taki przelew muszą mieć więc pootwierane rachunki w większości krajowych lub nawet międzynarodowych banków. Dzięki temu przekazywane przez nich przelewy w całości odbywają się podczas bankowych sesji wewnętrznych co zajmuje zazwyczaj kilka minut.
Zarówno otwieranie jak i zamykanie kanałów w sieci Lightning jest bardzo proste. Wystarczy zeskanować kod QR od osoby z którą chcemy mieć wspólny kanał i dokonać pierwszej transakcji. Gdy otrzyma ona odpowiednią ilość potwierdzeń z sieci Bitcoin natychmiastowe przelewy będą już możliwe. Podobnie jest z resztą przy zamykaniu kanałów transakcyjnych. Wystarczy bowiem jedno kliknięcie i stan konta zostaje aktualizowany, wysyłany do tzw pełnych węzłów sieci (komputerów przetrzymujących pełną historię transakcji w sieci Bitcoin) i tam czeka na kolejny blok transakcyjny który będzie uwiarygodnieniem naszego stanu konta w przyszłości.
Technologia Lightning Network lub jakiś jej odpowiednik jest konieczny nie tylko w Bitcoinie ale i każdym innym projekcie kryptowalutowym nie tylko ze względu na prędkość transakcji która po zastosowaniu tej technologii astronomicznie wzrasta lecz również i ze względu na sposób ich magazynowania i przetwarzania.
Odrobina wyliczeń
Na pierwszy rzut oka wydawać by się mogło, iż każda transakcja mająca miejsce w sieci Bitcoin to zaledwie niewielka cząstka danych. Jest to oczywiście prawdą, jednak trzeba wziąć pod uwagę to, iż główni developerzy Bitcoina patrzą na ten projekt w dużo dłuższej perspektywie, dopuszczając nawet do myśli sytuację w której Bitcoin mógłby się stać globalną światową walutą. Przy tak ogromnej skali wówczas każdy jeden zaoszczędzony bajt danych jest na wagę złota.
Spójrzmy teraz na poniższą tabelkę symulującą nam sytuację, w której każdy z klientów firmy Amazon wykonuje zaledwie jedną transakcję do tej firmy. Tabelka przedstawia zarówno rozmiar jak i koszt takiej transakcji w sieci Bitcoin oraz w alternatywnym projekcie o nazwie Bitcoin Cash który nie chce wprowadzać jakichkolwiek zmian w protokole.
Jak widać, skalowanie „off-chain” jest konieczne dla utrzymania decentralizacji sieci. Gdyby dzisiaj nagle cały świat korzystał z sieci Bitcoin wówczas każdy z nas, kto chciałby mieć dla swojego bezpieczeństwa pełną historię transakcji w swoim domu, musiałby wydawać dziesiątki tysięcy złotyc miesięcznie na magazynowanie takiej bazy danych. W przeciwnym razie prędzej czy później mogłoby dochodzić do nadużyć w sieci przez tylko nieliczne firmy które byłoby stać na takie dyski.
Zróbmy szybką kalkulacje:
Na świece mamy 7,44 miliarda ludzi i dziesiątki jak nie setki milionów firm świadczących różne usługi. Przyjmijmy jednak, że system płatności musiałby być zdolny obsłużyć jedynie 2 transakcje dziennie średnio na obywatela.
7,44 MLD ludzi x 2 transakcje dziennie x ~400 bajtów ( średni rozmiar transakcji segwitowych w bloku) = ~6 TB danych dziennie czyli 180 TB danych miesięcznie ! Dzisiaj największe dyski SSD dostępne dla firm jak np LaCie6big Thunderbolt 3 60TB STFK60000400 mają pojemność ok 60 TB i kosztują ok 17 tys złotych. Miesięczny koszt utrzymania więc takiej przestrzeni dyskowej już dzisiaj wynosiłby ok 51 000 zł. Należy jednak pamiętać że wyliczeń dokonujemy dla zaledwie 2 transakcji dziennie, dla obecnej populacji naszego globu i dla obecnego w miarę szczupłego protokołu Bitcoina. Wraz z rozwojem jego samego jak i innych kryptowalut z pewnością pojawi się szereg innych technologii opartych o jego łańcuch. Oznaczać by to mogło nawet kilkudziesięciokrotnie większe zapotrzebowanie na pamięć sprzętową co jak Państwo sami widzicie potrafi kosztować.
Bezpieczeństwo
W odróżnieniu od pośredników bazujących na systemie bankowym, którzy przecież mogą nie przekazać środków należących do ich klientów jeśli w jakiś sposób unikną odpowiedzialności względem instytucji finansowych, technologia Lightning Network takich sytuacji nie dopuszcza. Otwieranie kanału jest bowiem mechanizmem przypominającym otwieranie wspólnego rachunku bankowego dla jakiejś firmy, gdzie tylko określony zakres osób jest do niego upoważniony i to my decydujemy kto do tych osób będzie wliczony. Sposób w jaki wprowadzane są zaś zmiany w tej wewnętrznej bazie danych również nie jest przypadkowy. W momencie otwierania kanału transakcyjnego pośrednik płatności z góry musi zaakceptować stan konta wprowadzony przez nadawcę i odpowiednio go podpisać. Dzięki temu wydanie środków ze wspólnego rachunku wiąże się jedynie z podpisaniem transakcji przez nadawcę a jakiekolwiek próby blokowania wydania tych środków czy wywołania jakiegoś błędu nie są w stanie przeszkodzić w ewentualnym zamknięciu kanału z prawidłowym stanem kont.
Zastosowanie
Korzystać z natychmiastowych przelewów wykorzystujących technologię Lightning Network można już dzisiaj. Istnieją już nawet specjalne portfele mobilne w wersji na Androida np portfel o nazwie „Eclair” lub „Bitcoin Lighning Wallet” które umożliwiają nam otwieranie kanałów jak i dokonywanie szybkich płatności. Należy jednak pamiętać, że to nie jest jeszcze w pełni gotowa technologia i nie należy umieszczać w kanałach więcej środków niż jesteśmy w stanie stracić, przynajmniej do czasu kiedy główni developerzy pracujący nad projektem nie oznajmią ukończenia prac.
Rozwój
Zamysł utworzenia technologii Lightning Network zrodził się już w 2015 roku. Głównym pomysłodawcą tej technologi był Joseph Poon i Thaddeus Dryja którzy blisko 3 lata temu pierwszy raz opublikowali „white paper” zawierający podstawowe specyfikacje tej technologii. Przełom w niej miał miejsce jednak dopiero 6 grudnia 2017 roku i to ta data jest uważana za powstanie „bańki” w tamtym okresie. Data ta była przełomowa, gdyż właśnie tego dnia pierwszy raz dokonano płatności za pomocą Lightning Network na głównej sieci Bitcoin, co wcześniej miało miejsce jedynie na sieci testowej. Było to dość spore wyzwanie, ponieważ nad rozwojem tej technologii pracują obecnie co najmniej 3 większe grupy developerów, z których każda posługuje się innym językiem programowania. Te grupy developerskie to : Lightning Labs (twórcy whitepapera), Blockstream oraz ACINQ.
wszelkie dokładne informacje dotyczące specyfikacji projektu znajdziemy pod linkiem Lightning_Network na wikipedi oraz na Github’ie gdzie można wgłębić się w sam kod źródłowy tej technologii.
Problem jaki mieli przed sobą developerzy chcący uzyskać kompatybilność swoich technologii w 3 różnych językach kodowania, można śmiało porównać z problemem rosyjskich astronautów próbujących zadokować w międzynarodowej stacji kosmicznej lata temu. Mimo iż zaawansowanie technologiczne po obu stronach było bardzo zbliżone, to jednak systemy metryczne całkowicie pokrzyżowały plany jakiejkolwiek kooperacji. Rosjanie używali bowiem cali i stóp a na stacji kosmicznej miary wszystkich elementów podawane były w metrach i centymetrach. Tylko bardzo szybka reakcja naziemnych programistów i zręczność pilota pozwoliła na ręczne przestawienie maszyn, gdyż komputery same z siebie nie byłyby w stanie wprowadzić odpowiednich wyliczeń w odpowiednio do tego wyznaczonym czasie. W związku z powyższym choć wydawać by się mogło, iż języki programowania są do siebie w jakiś sposób podobne to jednak zawsze trafiają się jakieś okazje do wystąpienia różnych błędów i niepożądanych reakcji.
Dzięki ogromnemu wysiłku który w cały ten projekt wkładają developerzy już od 18 stycznia 2018 roku jest możliwość podłączania się pod sieć Lighnitng Network, zarówno jako zwykły użytkownik jak i pośrednik który chciałby za niewielką opłatą zarówno przetwarzać cześć z tych transakcji jak i strzec jej bezpieczeństwa przechowując pełną historię Bitcoinowych transakcji.
Na poniższym wykresie widać wzrost ilości kanałów płatności od stycznia 2018 roku do dzisiaj oraz wartość środków która jest już zablokowana w tych kanałach i gotowa do użycia.
Myślę jednak, że dużo większe wrażenie robi grafika pokazująca połączenia między użytkownikami tych sieci gdyż mam świadomość że każdy jedno połączenie otwierają osoby które nie tylko są zaciekawione tą technologią ale i w większości Ci którzy nad nią w jakiś sposób pracują i starają się jak najszybciej wcielić ją w życie.
Adopcja
Mimo że technologia Lightning Network wciąż nie jest jeszcze bezpieczna na tyle by śmiało mogli z niej korzystać wszyscy użytkownicy, to jednak powstała już strona ze spisem punktów w których można już płacić dzięki niej. lightningnetworkstores.com
Oczywiście niektóre z tych firm wciąż jedynie testują jej zastosowanie to jednak cieszy chęć jak najszybszego wdrożenia już tej technologii w życie.