31 października 2008 roku Satoshi Nakamoto opublikował propozycję dotyczącą stworzenia systemu elektronicznej gotówki peer-to-peer bez konieczności korzystania z niezawodnej strony trzeciej. Jako pierwszą reakcję na ten pomysł James A. Donald skomentował w następną niedzielę, mówiąc, że tego typu system jest bardzo potrzebny, ale w jego rozumieniu propozycja nie wydaje się zdolna do skalowania do pożądanych rozmiarów.
Po upływie dekady ta krytyka jest wciąż aktualna: nawet najbardziej stanowczy zwolennicy Bitcoina zgadzają się, że nie nadaje się on do dokonywania drobnych, codziennych zakupów. Jednak Lightning Network, który należy do najbardziej zachęcających projektów skalowania Bitcoina, może potencjalnie zmienić tę sytuację.
Zrozumienie lightning Network
Podczas Blockstack Summit w lipcu 2017 roku Elizabeth Stark, dyrektor generalny Lightning Labs, odniosła się do początkowego sceptycyzmu elektronicznej waluty Nakamoto, ale wyraziła pewność, że Bitcoin może faktycznie zwiększyć swoje możliwości, jeżeli chodzi o jego skalowalność.
Wspomnianą przez wielu “warstwą 2” aplikacji dla blockchaina Bitcoina jest sieć Lightning Network, która została po raz pierwszy zaproponowana przez Josepha Poona i Thaddeusa Dryja w 2015 roku. W luźnym tłumaczeniu na nasz język – błyskawiczna sieć została przekształcona w funkcjonującą specyfikację zwaną lightning-rfc lub “BOLTS” przez trzy firmy, z których każda posiada własną implementację. Te implementacje obejmują lnd firmy Lightning Labs, c-lightning firmy Blockstream oraz eclair firmy ACINQ. Inne implementacje, niebędące BOLTS, takie jak thunder, są również w trakcie rozwoju.
Sieć Lightning funkcjonuje już od jakiegoś czasu, jednak wciąż jest w fazie rozwoju. Transakcje prawdziwych bitcoinów zostały przeprowadzone przy użyciu implementacji Lightning Labs, Blockstream i ACINQ, a wszystkie trzy są ze sobą kompatybilne. Pojawiło się wideo, na którym inżynier ACINQ praktycznie natychmiast przekazuje 0,000001 bitcoina (blisko 0,01$) z węzła eclair do węzła lnd poprzez węzeł c-lightning.
Aby pokazać, jak duży jest to postęp, w teście próbowano przeprowadzić porównywalną transakcję na blockchainie bitcoina z pomocą GreenAddress, mobilnej aplikacji portfelowej. Aplikacja zaoferowała, że zapłaci górnikom 0,00001907 BTC (0,19 USD) jako opłatę, co stanowiło 1,907%. Chociaż nie ma pewności, w ilu blokach ta opłata miała być potwierdzona. Najprawdopodobniej odpowiedzią będzie sześć bloków, czyli mniej więcej godzina oczekiwania.
Lightning Labs przeprowadziło eksperymenty z cross-chainowymi wymianami atomic swaps, które przenoszą środki pomiędzy różnymi blockchainami, w tym przypadku Bitcoinem i Litecoinem. Jest to krok w kierunku budowy zdecentralizowanych giełd.
Lightning jest w stanie przetwarzać mikropłatności, coś, czego Bitcoin nie może zrobić samodzielnie. Wciąż jednak istnieją pewne usterki w obecnych implementacjach. Stark zachęca użytkowników do wypróbowania sieci Lightning za pomocą “testnetu” Bitcoina, który wykorzystuje wirtualne pieniądze zamiast prawdziwych. Mimo wszystko już w 2018 roku za pośrednictwem mainnetu miały miejsce transakcje o wartości około 50 000 dolarów, co doprowadziło do tego, że niektóre osoby straciły pieniądze z powodu błędu c-lightning. Christian Decker, core tech engineer w Blockstream, stwierdził, że w większości przypadków środki zostały na szczęście odzyskane.
Jak działa technologia Lightning Network?
Konstrukcja Lightning Network opiera się na dwukierunkowych pasach płatności off-chain. Jako przykład, jedna strona transakcji (dla przykładu nazwijmy ją Agnieszką) i druga strona transakcji (dla przykładu Jacek) mają regularne transakcje na niewielkie kwoty. Korzystanie z płatności on-chain jest niewykonalne, ponieważ opłaty są zbyt wysokie, a czas potwierdzenia długi, więc decydują się na ustanowienie kanału, który pozwala im szybko przenieść bitcoiny do siebie bez dodatkowych opłat.
Otwieranie kanału transakcyjnego
Aby otworzyć kanał, Agnieszka, Jacek lub oboje razem mogą dokonać wpłaty określonej ilości bitcoinów na odrębny adres poprzez proces znany jako transakcja finansowania (zielone pole na diagramie). Załóżmy, że Agnieszka płaci 1 BTC. Jest to wysyłane na adres 2-of-2 multisig, wymagający, aby zarówno Agnieszka, jak i Jacek cyfrowo “podpisali” każdą z wysyłających transakcji swoimi kluczami prywatnymi. Podczas gdy zwykła transakcja wymaga po prostu podpisania za pomocą (unikalnego) klucza prywatnego, który odpowiada kluczowi publicznemu adresu wysyłającego.
Warto zauważyć, że transakcja finansowania nie została jeszcze podpisana ani przekazana do sieci na tym etapie.
Agnieszka i Jacek następnie konstruują „transakcję zobowiązania” wykorzystując transakcję finansowania jako jej podstawę: wykorzystują jej niezweryfikowany wynik 1 BTC jako wejście dla transakcji, która wysyła 0,5 BTC do Agnieszki (wyjście 0) i 0,5 BTC do Jacka (wyjście 1).
Alice następnie podpisuje wyjście, wysyłając 0,5 BTC do Jacka, a on podpisuje wyjście, przekazując 0,5 BTC do Alice. Oboje następnie podpisują i wydają transakcję finansowania, która jest zaangażowana w blockchain Bitcoin (i podlega opłatom sieciowym i okresom oczekiwania).
Mają teraz otwarty kanał płatności, przez który mogą przenosić Bitcoin tam i z powrotem natychmiast i bez opłat. Agnieszka lub Jacek mogą go zamknąć w dowolnym momencie i zapewnić sobie 0,5 BTC, lub jakąkolwiek kwotę znajdującą się w zaktualizowanej transakcji.
Działanie kanału wyjaśnione w kilku prostych zdaniach
Transakcja finansowania dostarcza kanałowi gotówkę, jednocześnie go ograniczając: żadna z zaangażowanych stron nie może skończyć z sumą większą niż początkowy wymiar finansowania, a ogólne saldo obu musi być równe tej samej kwocie. Tworzenie najpierw transakcji finansowania, a następnie nadanie jej jako ostatniej odbywa się po to, aby poza pojedynczą, nieskomplikowaną transakcją nie osiągnąć nic więcej.
Poprzez posiadanie otwartej transakcji finansowania, wprowadzenie transakcji zobowiązania – która służy jako rodzaj zautomatyzowanego kontraktu – a następnie zawarcie transakcji finansowania, lightning tworzy rodzaj ślimaka w sieci. Dzięki temu Bitcoin może poruszać się tam i z powrotem wzdłuż jednej, ustalonej ścieżki. Uzyskujesz dostęp do protokołu Bitcoin, ale omijając opóźnienia i wydatki wymuszone przez górników podczas korzystania z mainnetu.
Lightning Network – łączenie kanałów
W rzeczywistym świecie Agnieszka i Jacek nie tylko chcą robić interesy ze sobą; mają szereg osób, którym muszą zapłacić, jak również otrzymać od nich zapłatę. Ustanowienie kanału z każdym z tych kontaktów byłoby nieefektywne. Nawet gdyby interfejs użytkownika był tak łatwy w użyciu, jak to tylko możliwe, większość użytkowników nie miałaby wystarczającej ilości Bitcoinów, aby pokryć koszty posiadania tak wielu otwartych kanałów.
Użytkownicy mogą wysyłać pieniądze przez pośrednie kanały użytkowników, co oznacza, że każdy z co najmniej dwoma otwartymi kanałami jest osiągalny. Transakcje wielokanałowe wiążą się z kosztami, które mają motywować węzły do finansowania i utrzymywania otwartych kanałów. Onion routing, z którego korzystają użytkownicy przeglądarki TOR. Anonimowa przeglądarka ukrywa całą ścieżkę transakcji, więc nie trzeba się martwić o prywatność.
Czy sieć Lightning Network może zachować swoją decentralizację?
Krytycy podkreślają poważny problem z Lightning Network, którym jest fakt, że każdy kanał ma górną granicę. Ilość BTC w startowej transakcji określa maksymalną ilość środków dostępnych w danym kanale.
Dla użytkowników z ograniczonymi środkami stanowi to problem. Mogą albo umieścić w kanale dużą ilość Bitcoinów, aby mieć możliwość dokonania każdej wymaganej płatności, albo mogą umieścić mniejszą ilość i użyć pozostałych BTC do innych celów. (Możliwe jest kierowanie płatności przez powiązane kanały, a użytkownicy mogą nie potrzebować więcej niż kilku z nich).
Wszystko sprowadza się do tego, czy trzymać środki w kanałach płatniczych, czy z dala od nich. Jeśli wieże strażnicze lub inna forma zabezpieczeń zawiedzie, przechowywanie pieniędzy w płynnym kanale płatniczym może być ryzykownym posunięciem. Z drugiej strony, jeśli te kanały płatności są bezpieczne, a Lightning Network stanie się podstawowym sposobem korzystania z Bitcoina, nie będzie większego problemu z pozostawieniem środków w tych kanałach. Działałyby one jako rodzaj “uzupełnianej karty debetowej lub waluty” podczas gdy główny łańcuch byłby bardziej podobny do konta oszczędnościowego.
Warto również zwrócić uwagę na podobną kwestię: zdeponowanie Bitcoina w kanale Lightning oznacza, że nie można go użyć do niczego innego, poza “siecią licznych węzłów, które mogą natychmiast przyjąć Bitcoina”. Uważa się, że finansowanie kanału Lightning będzie korzystniejsze dla transakcji ze względu na ich natychmiastowość.
Nody Lightning Network – element niezbędny do obsługi sieci
Jeśli ktoś chce tworzyć te kanały, to będzie opierał swoją decyzję raczej na względach ekonomicznych niż na kryptografii, a dla tych, którzy mają wątpliwości co do bezpieczeństwa Lightning Network, najlepszą prawdopodobną opcją będzie coś, co nazywa się “hubem” – węzeł z dużym kapitałem, pozwalającym mu na utrzymywanie otwartych wielu kanałów z wieloma grupami jednocześnie.
Koncepcja, że bankowość Bitcoin może mieć miejsce poza blockchainem martwi wielbicieli Bitcoina, którzy postrzegają główną sieć jako jedyne bezpieczne pole do zawierania transakcji.
Pytanie brzmi, czy w przyszłości sieć blockchain będzie składać się z dużej ilości niezawodnych węzłów, funkcjonujących jako struktura wsparcia systemu.
Pierre-Marie Padiou, prezes ACINQ, nie chce zakładać, że wie, jaka będzie przyszłość sieci Lightning. Skomentował jednak, że trudno jest określić poziom centralizacji i decentralizacji, jaki będzie, mówiąc, że choć w sieci powstaną większe i mniejsze węzły, to wyzwaniem jest przewidzieć, w jakim stopniu zostanie rozłożona dystrybucja związana z różnorodnością.
Mimo wszystko Lightning Network jest technologią, która już od kilku lat napawa optymizmem zwolenników Bitcoina. Wierzymy, że rozwiąże problem przepustowości trawiący blockchain od czasów jego debiutu w 2008 roku.