Lightning Network to tzw. druga warstwa Bitcoina. To rewolucyjna technologia mająca na celu rozwiązać problemy skalowalności Bitcoina i umożliwić bardzo tanie i szybkie mikropłatności Bitcoin. W tym artykule:

    • opiszemy metody skalowania blockchaina:
      • on-chain – warstwa główna blockchain
      • sidechains – łańcuchy boczne
      • off-chain – druga warstwa
    • opiszemy czym jest Lightning Network i jak działa
    • przedstawimy praktyczny przykład użycia Lightning Network w płatności
    • opiszemy relację Lightning Network i blockchaina Bitcoin w kontekście bezpieczeństwa

Metody skalowania blockchain

Pod pojęciem skalowania blockchain należy rozumieć rozwiązania technologiczne mające na celu zwiększenie wydajności/przepustowości/efektywności blockchaina. Klasycznej budowy blockchain to rozproszona sieć synchronizujących się ze sobą węzłów wymieniających dane, ktorych zatwierdzanie na podstawie reguł węzła i konsensus odbywa się we wszystkich węzłach tworzących sieć.

Metody skalowania on-chain

Metody optymalizacji blockchaina, skupiające się na zwiększeniu wydajności sieci bazowej blockchain określane są jak metody skalowania on-chain (pierwszej warstwy). Jedna z metod on-chain skalowania blockchaina to zwiększenie częstotliwości tworzonych bloków, tak żeby bloki były wykopywane szybko, tym samym transakcje zatwierdzane szybciej. Podejście to jest w pewnym zakresie skuteczną techniką skalowania blockchaina, natomiast niesie ze sobą wzywania dotyczące osiągania konsensusu i wpływu określonego czasu na stworzenie nowego bloku w sam proces konsensusu. W Bitcoinie nowe bloki są tworzone co około 10 minut, w Ethereum jest to kilkanaście sekund. Szybkie tworzenie bloków w algorytmie konsensusu Proof of Work oznacza niską trudność sieci, a to prowadzi do kolizji – zagadka rozwiązywana jest szybko i przez wielu górników równocześnie. Ethereum musiało “poradzić” sobie z marnowaniem mocy obliczeniowej górników (bezsensowny koszt), gdzie ze względu na niski czas bloku dochodziło do tego, że wielu górników wykopywało blok równocześnie (mowa oczywiście o Ethereum opartym o PoW). Czas tworzenia bloku ma wpływ na konsensus (szczególnie PoW) i nie istnieją skuteczne techniki zmniejszania czasu tworzenia bloku niezależne od konsensusu, dlatego Bitcoin nie rozwija skalowalności w tym zakresie.

Kolejne popularne podejście skalowania blockchaina to większy rozmiar bloku, przez co transakcji w bloku jest więcej i efektywnie sieć blockchain przetwarza i zapisuje więcej danych. Bitcoin odrzucił to rozwiązanie ze względu na to, że nie jest to efektywna metoda skalowania blockchaina. Zawsze istnieje limit wielkości bloku, który w rozproszonej sieci będzie maksymalny, gwarantując poprawne działanie węzłów, nawet biorąc pod uwagę coraz większe możliwości sprzętu i większą przepustowość sieci. Ponadto rozwiązanie to w pewien sposób koliduje z ideą decentralizacji – miejszy blok to mniej danych do przetwarzania, przez co utrzymanie węzła wymaga mniej zasobów. Ideą Bitcoina jest być niezależną, zdecentralizowaną siecią wielu, niezależnych węzłów. Węzeł wymagający więcej zasobów nie ułatwia realizacji tej idei. Warto jednak wspomnieć, że na przestrzeni lat pojawiały się tematy rozwoju skalowalności Bitcoina w tym zakresie. Rezultatem tych prac jest fork Bitcoina, czyli Bitcoin Cash, a także niechlubny fork samego Bitcoina Cash zwany BitcoinSV – oba z tych projektów posiadają większy niż Bitcoin dopuszczalny rozmiar bloku (w Bitcoinie w praktyce jest to 2-4 MB, a BCH i BSV dopuszczają blok do 32 MB).

Sidechain’y – łańcuchy boczne

Do technik skalowania blockchaina można zakwalifikować tzw. sidechain’y, czyli łańuchy boczne (określane także jako np. parachains w Substrate). Są to w praktyce alternatywne sieci blockchain, których celem jest realizacja części transakcji na blockchainie “bocznym” – zamiast przetwarzania ich na blockchainie głównym. Ich rola to odciążenie łańcucha głównego lub np. dostarczenie nowych funkcjonalności (np. parachain Moonbeam wspierający kontrakty oparte o EVM w Substrate). Przykładem technologii sidechain dla Ethereum jest Plasma. Popularnym sidechainem Bitcoin jest Liquid Network.

Metody skalowania off-chain

Bardzo dynamicznym rozwojem w zakresie rozwiązania problemu wydajności technologii blockchain cieszą się rozwiązania drugiej warstwy, czyli tzw. metody skalowania off-chain. Celem tych metod jest wydzielenie przetwarzania danych z węzłów oraz zmniejszenie ilości transakcji blockchain. Wymogiem rozwiązań drugiej warstwy jest zagwarantowanie bezpieczeństwa najlepiej równego warstwie pierwszej, co sprawia, że budowa takich rozwiązań to bardzo duże wyzwanie. Stosunkowo chwytliwe rozwiązania off-chain to np. technologia ZK-Rollups w Ethereum. W Bitcoinie rozwijaną już od kilku lat technologią skalowania off-chain jest Lightning Network.

Czym jest Lightning Network?

Pod określeniem Lightning Network należy rozumieć:

  • technologię tzw. drugiej warstwy blockchaina Bitcoin (ang. second layer), w tym specyfikację i protokoły komunikacji:
  • wysoce skalowalną, działająca w czasie rzeczywistym, otwartą sieć węzłów, umożliwiająca dokonywanie za pośrednictwem Bitcoina błyskawicznych, tanich, bezpiecznych mikrotransakcji bez pośredników

Technologia składająca się na cały ekosystem Lightning Network jest szeroka i dynamicznie rozwijana, dlatego pojęcie te wykorzystywane jest często w szerszym kontekście.

Jak działa Lightning Network?

Sieć Lightning Network (w skrócie LN) to sieć kanałów płatniczych tworzonych między węzłami tworzącymi tę sieć. Blockchain Bitcoin to sieć węzłów Bitcoin (ang. node’ów), natomiast Lightning Network to sieć węzłów Lightning Network. Blockchain może działać niezależnie od Lightning Network, ale sieć Lightning Network wymaga do poprawnego działania sieci blockchain, ze względu na interakcję, jaką z siecią blockchain prowadzą węzły sieci LN.

Bitcoin and Lightning Network
Blockchain Bitcoin i sieć Lightning Network to dwie niezależne sieci. Lightning Network wymaga do działania sieci blockchain.

Czym jest węzeł? Zarówno w przypadku Bitcoina, jak i w przypadku Lightning Network węzeł to oprogramowanie, które komunikując się z innymi węzłami, tworzy sieć. To program komputerowy, zbiór reguł, które umożliwiają mu komunikację, przetwarzanie i zapisywanie danych. Węzły tworzące sieć, zarówno sieć blockchain, jak i sieć LN przestrzegają tego samego protokołu, dzięki czemu choć niezależne, wymieniają i przetwarzają dane w poprawny i spójny sposób. Dane, jakie przetwarzane są przez węzły LN to dane transferu Bitcoinów lub jego części, określane jako “płatności”. Węzły Lightning Network umożliwiają wymianę (transfer) Bitcoinów z innymi węzłami, czyli dokonywanie płatności. Istnieje jednak różnica między płatnością w warstwie głównej, czyli blockchain, a warstwie drugiej – Lightning Network.

Przesył Bitcoinów w blockchainie (płatność) oparty jest o transakcje. Użytkownik kontrolujący adres, pod kontrolą którego, jest określona ilość kryptowaluty Bitcoin – może zatwierdzić transakcję przesyłu Bitcoina lub jego części z jednego adresu na inny. Transakcję traktuję jako się zatwierdzoną (wykonaną) po zapisie w blockchainie – po tym, jak blok zawierający daną transakcję, zostanie wykopany przez górników i stanie się częścią blockchaina Bitcoin.

Płatności w sieci Lightning Network odbywają się za pośrednictwem kanałów płatniczych. Kanał płatniczy tworzony jest między 2 węzłami sieci LN. Dla kanału płatniczego istnieją 2 bardzo istotne operacje: otwarcie i zamknięcie kanału. Otwarcie kanału płatniczego odbywa się poprzez zatwierdzenie transakcji w blockchainie przez węzeł LN nadawcy, która definiuje “zasilenie” tego kanału określoną ilością Bitcoinów. Otwarty kanał umożliwia następnie wykonanie płatności, przesyłu Bitcoinów lub jego części na drugą stronę kanału. Kluczowa jest cecha tego kanału: przesył wartości na drugą stronę kanału, czyli płatność – jest błyskawiczna i bezkosztowa. Dzieje się to ponieważ przesył w kanale nie opiera się o transakcje blockchain – jest to mechanizm off-chain, nieangażujący blockchaina Bitcoin. Środki przesłane na drugą stronę kanału, trafiają pod kontrolę drugiego węzła LN (odbiorcy) i mogą być np. odesłane z powrotem. Nie istnieje formalny limit dozwolonej ilości przesyłów w kanale między stronami, a najmniejsza wartość, jaka może być przesłana to zaledwie 1 satoshi (1 Bitcoin = 100 milionów satoshi)

Praktyczny przykład użycia Lightning Network

Płatność oparta o transakcje

Bob codziennie kupuje kawę w kawiarni. Kawa kosztuje 10 zł. Jest poniedziałek i Bob chciałby w tym tygodniu kupić kawę, płacąc Bitcoinem. Kawiarnia przyjmuje standardowe płatności Bitcoin – oparte o transakcje. Bob mając na swoim telefonie portfel kryptowalutowy kontrolujący 0.2 BTC, płaci za kawę 10 zł, wysyłając transakcję na wskazany przez sprzedającego kod QR, będący adresem do wykonania płatności. Bob ustawił w opcji transakcji maksymalnie długi czas wykonania, ponieważ kawiarnia, chcąc zapewnić najwyższą jakość obsługi – nie wymaga potwierdzenia transakcji. Czas oczekiwania na zatwierdzenie będzie długi, ale przez to transakcja będzie tania – koszt transakcji wyniesie około 4 zł. Po dokonaniu płatności sprzedawca potwierdza Bobowi, że płatność została dokonana.

Czas realizacji: 10 sekund.
Poniesiony koszt w BTC: 14 zł (10 zł za kawę i 4 zł za transakcję).

Powyższy przykład ilustruje niedogodności związane z płatnościami blockchain opartymi o transakcje. W praktyce jest to przede wszystkim wysoki koszt transakcji, niewspółmierny do poniesionego kosztu zakupu.

Płatność oparta o Lightning Network

Pay with ln
Terminal płatniczy Lightning Network w formie tabletu.

Bob postanawia zapłacić za kawę Bitcoinem za pośrednictwem Lightning Network. Kawiarnia umożliwia płatności Lightning Network. Bob kupuje kawę za 10 zł – dokonuje płatności, jednocześnie otwierając kanał płatniczy z kawiarnią. Kupując kawę codziennie, postanawia zasilić kanał kryptowalutą Bitcoin o wartości 100zł. Bob skanuje kod QR z tabletu sprzedawcy, który posiada na tablecie uruchomione oprogramowanie węzła Lightning Network. Portfel Bitcoin Boba wspiera Lightning Network i także ma uruchomiony węzeł Lightning Network na telefonie (w aplikacji portfela). Po zeskanowaniu – płatność zostaje zatwierdzona przez sprzedawcę. Bob zatwierdził transakcję blockchain, która otworzyła kanał między Bobem a kawiarnią, jednocześnie płącąc za kawę. Kawiarnia, choć mogłaby czekać na choćby jedno potwierdzenie transakcji otwarcia kanału – nie robi tego, ponieważ nie chce wymuszać od klientów oczekiwania na potwierdzenie transakcji. Ryzyko niepowodzenia tej transakcji, z powodu niezatwierdzenia jej w blockchainie jest bardzo niskie. Bob kupił kawę.

Czas realizacji: 10 sekund.
Koszt poniesiony w BTC: 14zł (10 zł za kawę i 4 zł za transakcję).

Wykorzystując Lightning Network do przeprowadzenia pojedynczego zakupu – Bob nie zyskał nic względem standardowej płatności opartej o blockchain. Zobaczmy jednak, na czym polega fenomen Lightning Network.

W kolejny dzień Bob znów jest w kawiarni i znów kupuje kawę, płacąc Bitcoinem. W poprzedni dzień dokonał płatności za pośrednictwem Lightning Network, otwierając kanał płatniczy zasilony kwotą 100 zł (w Bitcoinie). Po wczorajszej opłacie za kawę – 10 zł, kanał został zatwierdzony i jego bilans wygląda następująco: Bob – 90zł, Kawiarnia – 10zł (oczywiście w Bitcoinie). Bob ponownie płaci za kawę, skanuje kod QR od sprzedawcy i w ciągu 2 sekund płatność zostaje zarejestrowana. Bilans kanału zmienia się na: Bob – 20zł, Kawiarnia  – 80zł (w Bitcoinie). Płatność dokonuje się błyskawicznie, jej efekt jest widoczny i gwarantowany zaraz po dokonaniu tej płatności i co najważniejsze: płatność jest darmowa. Opłata za płatność wyniosła 0.

W ciągu kolejnych kilku dni Bob kupuje jeszcze 8 kaw. Finalnie bilans kanału płatniczego jest następujący: Bob – 0zł, Kawiarnia – 100zł. Bob postanawia już więcej nie płacić Bitcoinem. Kawiarnia po 3 dniach od ostatniej płatności widzi, że kanał jest nie używany, więc zamyka go. Efektem tego jest zatwierdzenie w blockchain transakcji zamknięcia kanału przez kawiarnię. Koszt tej transakcji to 4zł. Po zatwierdzeniu transakcji w blockchainie, środki są kontrolowane wyłącznie przez kawiarnię i tracą one jakąkolwiek relację z siecią Lightning Network.

Lightning Network, a blockchain Bitcoin

Lightning Network to osobna sieć, która wykorzystuje blockchain Bitcoin do zagwarantowania bezpieczeństwa przesyłów środków w tej sieci. Płatność w Lightning Network nie jest określana jako transakcja, ponieważ transakcja w znaczeniu technologii blockchain ma specyficzne znaczenie: w Bitcoinie transakcją są dane transferu kryptowaluty z adresu na adres. Transakcje zatwierdzane są w blokach, które po wykopaniu są częścią blockchaina. Tylko gdy transakcja znajdzie się w wykopanym bloku – traktuje się ją jako zatwierdzoną.

Intencją Lightning Network jest nie wykonywać drogich i wolnych transakcji – celem jest odciążyć blockchain. Realizacja tego polega na przeniesieniu przetwarzania do osobnej sieci, jednocześnie nadal bazując na transakcjach blockchain w celu zagwarantowania bezpieczeństwa w tej sieci. Opisane wyżej transakcje otwarcia i zamknięcia kanału – to transakcje synchronizujące sieć blockchain i sieć Lightning Network. Otwarcie kanału można zrozumieć jako informację zapisaną w blockchain (w postaci transakcji), o przeniesieniu pewnej ilości kryptowaluty Bitcoin do sieci Lightning Network. Zamknięcie kanału, to informacja zapisana w blockchain definiująca bilans adresów po transferach dokonanych w sieci Lightning Network. Wykorzystując LN, możemy zminimalizować ilość wykonanych transakcji do zaledwie dwóch, a transfery (płatności) w tej sieci są błyskawiczne i bardzo tanie.

Bezpieczeństwo Lightning Network

Bitcoin wallets

Blockchain Bitcoin to niezmienny rejest transakcji – jego integralności strzegą zaprogramowane reguły i algorytm konsensusu. Ustaliliśmy, że optymalna interakcja z blockchainem w sieci LN obejmuje 2 transakcje: otwarcia kanału płatniczego i jego zamknięcia. Płatności dokonywane w kanale między uczestnikami nie są transakcjami, a transferami (płatnościami) sieci LN. Transfery w kanale nie są transakcjami w blockchain, jednak mechanizmy tej sieci gwarantują bezpieczeństwo płatności. W jaki sposób?

Sieć Lightning Network wykorzystuje zaawansowane mechanizmy programowania blockchaina Bitcoin, w taki sposób, że płatności w sieci LN są bezpieczne. Każda pojedyncza, wymiana środków w kanale płatniczym (płatność), czyli zamiana bilansu w kanale – to nieopublikowana transakcja blockchain, która w każdym momencie przez dowolną ze stron może zostać opublikowana. Publikacja nie następuje, ponieważ taka właśnie jest intencja – nie publikować kosztownych i wolnych transakcji. Interakcję z blockchainem w kanale płatniczym da się maksymalnie ograniczyć do opisywanych tu ciągle 2 transakcji: otwarcia i zamknięcia kanału, i w ten sposób realizowana jest idealna wymiana w kanale. Rejestrujemy stan wejściowy do sieci Lightning Network poprzez transakcję otwarcia kanału, a następnie zamykamy kanał, zatwierdzając stan końcowy. Transakcja zamknięcia kanału, agreguje w sobie końcowy bilans uczestników kanału, po wszystkich dokonanych wymianach w tym kanale płatniczym.

Pojedynczy transfer w kanale płatniczym tworzy w węzłach sieci LN nieopublikowaną transakcję. Lightning Network podobnie jak Bitcoin bazuje na asymetrycznej kryptografii. Podobnie jak Bitcoin jest to sieć bez pośredników, a klucze kontrolowane są przez użytkowników. Transakcja aktualizująca bilans 2 uczestników kanału – to transakcja typu multisignature 2-of-2. Oznacza to, że każda aktualizacja w kanale, każdy przesył środków w kanale płatniczym musi być kryptograficzne zaakceptowany przez obie strony kanału. Ten mechanizm nie pozwala na oszustwa w kanale, np. kradzież środków przez jedną ze stron. Tylko legalne płatności  uzyskują sygnaturę, przez co są poprawną transakcją. Architektura Lightning Network i bezpieczny mechanizm aktualizacji danych w kanale zabezpieczony jest jeszcze przed innymi zagrożeniami jak np. nieuczciwa publikacja (starych) transakcji.

Lightning Network ma na celu wydelegować z warstwy blockchain możliwie dużo transakcji, zapewniając bezpieczeństwo transferów poza blockchainem, jednak pozostawiając blockchain w roli arbitra. Innymi słowy: każda pojedyncza interakcja w kanale Lightning Network, każda wymiana środków, każda płatność – ma się ostatecznie sprowadzić do transakcji mogącej zostać w każdej chwili zatwierdzonej w blockchain.

Globalna sieć Lightning Network

Globalna sieć Lightning Network. Węzły i kanały je łączące.

Opisany wyżej przykład kanału płatniczego między 2 uczestnikami to prosty przykład ilustrujący działanie kanału płatniczego. Już dzisiaj Lightning Network, to sieć dziesiątek tysięcy kanałów płatniczych, łączących dziesiątki tysięcy węzłów. Możliwości skalowania tej sieci są w zasadzie nieograniczone. Wiele kanałów, łączących wiele węzłów ma umożliwić kluczową dla adopcji tej technologii właściwość: każdy uczestnik w sieci będzie mógł dotrzeć do innego uczestnika sieci, przy wykorzystaniu istniejących kanałów płatniczych. W praktyce oznacza to, że posiadając zasilony kanał Lightning Network – będziemy mogli dokonywać płatności do innych uczestników sieci Lightning Network, nie posiadając bezpośrednio kanału z tymi uczestnikami, a bazując na istniejącej sieci kanałów. Możliwe jest to dzięki wbudowanym w sieć mechanizmom odnajdowania ścieżek w połączeniu z inicjatywą ekonomiczną tzw. węzłów pośredniczących w płatności, które mogą pobierać opłatę za przekierowanie płatności. Wszystko to zaprojektowane w taki sposób, aby niezależnie od skali zagwarantować bezpieczeństwo, spełniając wymagania szybkości i niskiego kosztu płatności.

Podsumowanie

W 2022 roku sieć Lightning Network znajduje praktyczne zastosowanie w płatnościach Bitcoin. Przykładem jest Salwador, gdzie Bitcoin jest pełnoprawną walutą, a sklepy i punkty usługowe przyjmują płatności LN. Na dzień dzisiejszy (03.2022) sieć LN to ponad 35 tysięcy publicznych węzłow oraz 86 tysięcy kanałów między tymi węzłami (źródło: https://1ml.com/statistics).

Lightning Network to dynamicznie rozwijająca się sieć, w budowę której angażują się największe globalne firmy np. Spiral założone przez Jacka Dorsey, twórcę Twittera. Już dzisiaj pasjonujący ekosystem Lightning Network to rozwijane oprogramowanie umożliwiające płacenie za pomocą LN (portfele), przyjmowanie płatności w LN (terminale płatnicze), zarządzanie węzłami pośredniczącymi (operatorzy węzłów, analityka sieci), a nawet bardziej zaawansowane technologie, jak tworzenie oprogramowania wykorzystującego sieć LN jako warstwy API dla prawdziwie zdecentralizowanych aplikacji web3.

Bazując na najtwardszej kryptowalucie Bitcoin i skutecznie rozwiązując problemy skalowania blockchaina, Lightning Network staje się niezależnym i otwartym systemem płatniczym rewolucjonizującym funkcjonowanie nowoczesnych finansów.

W MobyCrypt zajmujemy się ekosystemem Bitcoin i Lightning Network, budując i eksperymentując z tymi technologiami. Zapraszamy do sprawdzenia naszych usług w tym zakresie.