Lighting Network, twórcy Joseph Poon i Thaddeus Dryja.
Lighting Network, twórcy Joseph Poon i Thaddeus Dryja.
Postaram się wytłumaczyć to rozwiązanie na przykładzie, w prosty i nietechniczny sposób, proszę jednak pamiętać, że mówimy o świecie komputerów i kryptografii – miejscu gdzie są banalnie proste rzeczy trudne do wykonania w prawdziwym świecie. Zaznaczam, że jest to uproszczenie.
Przypomnijmy problem z skalowalnością Bitcoina, blok o wadze 1 MB da możliwość wykonania około 220 miliony transakcji w ciągu roku – mało dla jednego miasta, nie wspominając o całym świecie. Zakładając, że 7 miliardów ludzi na świecie, robiłoby codziennie 2 transakcje to blok musiałby ważyć 24 GB a dziennie łańcuch powiększałby się o 3,5 TB. Im większe bloki tym mniej pełnych węzłów, mniej górników i większa centralizacja.
Alice często odwiedza swój ulubiony sklep należący do Boba, aby nie płacić za każdym razem opłaty transakcyjnej tworzą pomiędzy sobą kanał płatności poprzez zamrożenie określonej kwoty, powiedzmy 100 mBTC w banku(którym to jest Blockchain). Ustalają założenia tego kanału, kto ile środków zamraża, jak długo kanał będzie otwarty i oboje się pod tym podpisują. Kiedy Alice dokonuje zakupów za 5 mBTC, nie ogłaszają oni tego w banku, Alice dostaje potwierdzenie podpisane przez Boba, że aktualne saldo to 95 mBTC Alice i 5mBTC Bob, tak samo Bob dostaje takie potwierdzenie z podpisem Alice. Jak widzicie zapis transakcji jest natychmiastowy i nie generuje kosztów. Kiedy Alice znowu przychodzi po zakupy, wymieniają się nowymi potwierdzeniami z aktualnym saldem i tak dalej. Aż do momentu kiedy któreś z nich zdecyduje pójść do banku i zamknąć kanał.
Wtedy Alice sama podpisuje najnowsze potwierdzenie na którym do tej pory widniał jedynie podpis Boba, a bank zgłasza się do Boba z pytaniem czy to potwierdza i czeka za odpowiedzią. Jak widzicie Alice podpisuje się dopiero kiedy chce zamknąć kanał, ponieważ inaczej każdy mógłby pójść do banku z potwierdzeniem na którym by widniały potrzebne podpisy i z czystej złośliwości zamknąć cudzy kontrakt jeśli by miał do niego dostęp. Jeśli Alice dałaby nieaktualne potwierdzenie wtedy Bob bez problemu udowodniłby prawdziwy stan konta dzięki podpisowi Alice na najnowszym potwierdzeniu zgodnie z którym zostaliby rozliczeni. Kanał zostaje zamknięty a ostateczne saldo trafia do banku(łańcucha bloków). Jeśli Bob nie byłby w stanie potwierdzić zgodności salda, przez chociażby brak dostępu do internetu to w sieci działały by osoby, które weryfikowałyby stan konta za opłatą.
A co jeśli w naszej historii byłby też Charlie z którym Alice nie ma otwartego kanału płatności i chciałaby przeprowadzić transakcję, równocześnie zaznaczając, że Charlie też robi zakupy u Boba?
Wtedy Charlie podaje Alice bezpośrednio tajne hasło (którym to jest hash) a Alice przekazuje środki do Boba z zaznaczeniem, że można je wydać tylko znając owe hasło. Bob nie może ich wykorzystać dla swoich korzyści i podaje je do Charliego, on potwierdza, że są to środki od Alice sprawdzając hasło i podając je do Boba. Środki trafiły tam gdzie miały, wszyscy znają hasło, kontrakt zostaje zamknięty.
Mamy tutaj do czynienia z hipotezą sześciu stopni oddalenia mówiącej, że „Liczba stopni znajomości między dwiema dowolnymi osobami w całej populacji ludzi na Ziemi nie przekracza sześciu.”. Tak więc bez problemów powinniśmy być w stanie przeprowadzić transakcję z kimkolwiek na świecie. A wszystko dzieje się poza bankiem – offchain – i nie obciąża sieci. Zyskujemy niski poziom opłat transakcyjnych, natychmiastowe płatności i zdolność przetwarzania miliardów przelewów na sekundę – skalowalność.
Coś w czym projekt by się mógł naprawdę sprawdzał to mikropłatności, jak chociażby płacenie jednej setnej grosza za każdą sekundę oglądanego streamu nie stanowiłoby problemu. Muzyk mógłby wystawić swoją piosenkę do odsłuchania za jedną dziesiątą grosza, jakby osiągnęła popularność i ludzie odsłuchaliby ją milion razy – a na YouTube filmy mają często dużo więcej wyświetleń – to jego twórczość zostałaby nagrodzona 1000 złotych i to bez pośredników.
Podsumowując, Lighting Network to projekt, który działa poza blockchainem, jest dodatkiem do sieci Bitcoin, używającej określonych czasowo kontraktów na umówioną kwotę co zapobiega oszustwom, ponieważ suma środków musi się zgadzać na początku podczas zamrażania i na końcu podczas zamykania kanału płatności. Fakt, że nie ogłaszamy każdej transakcji całemu światu zwiększa prywatność i bezpieczeństwo. Transakcje chociaż mają miejsce poza siecią to nadal są transakcjami Bitcoin, ponieważ kontrakt został ogłoszony a środki zamrożone.
Z drugiej jednak strony Lighting Network ma pewne ograniczenia. Jeśli mamy otwarty kanał z zamrożonym 100 mBTC to nie da się zrobić przelewu na 101 mBTC, dopóki nie otworzy się kanału na którym by było 101 mBTC. Jest to niezbyt wygodne i wymaga od użytkowników oszacowania ile pieniędzy powinni zamrozić na określony czas aby móc zaspokajać swoje potrzeby. A otwarcie kanału nie przebiegałoby natychmiastowo bo musiałoby być ogłoszone w sieci. Szacowanie ile środków zamrozić byłoby też niekorzystne dla przedsiębiorców którzy potrzebują płynności finansowej, nie wspominając, że gdy każdy zablokowałby jakąś część swoich Bitcoinów zmniejszyłoby to też ogólną płynność w całej sieci. Każdy używający Lighting Network posiada portfel podłączony do internetu. Jak wiadomo jednym z najbezpieczniejszych sposobów aby trzymać środki jest portfel typu „cold-storage”, który nigdy nie miał dostępu do sieci. Tak więc projekt mógłby okazać się bardzo kuszącą propozycją dla hakerów, ryzyko chociaż małe to i tak warte uwagi. Kwestią otwartą pozostaje jak zareagowałyby rządy i jakie regulacje by mogły próbować wprowadzić co do takiego prowadzenia transakcji. Idealnie by było jakby projekt był całkowicie zdecentralizowany, jednak w związku z płynnością środków handel mógłby się skupić wokół dużych organizacji co też niesie zagrożenie większej centralizacji a to dobrze nie wróży.
Lighting Network to interesujący projekt dający dużo nowych możliwości bez ingerowania w sieć Bitcoin, kosztem płynności ze względu na zamrażane środki.
Janusz Zieliński