Prywatne kanały

private

Dziś artykuł o tym, dlaczego LN już dziś mógłby teoretycznie być używany przez cały świat oraz dlaczego nigdy nie poznamy ani ilości transakcji w sieci, ani nawet całkowitej liczby nodów i kanałów.

Jako miłośnicy LN często śledzimy statystyki dotyczące ilości kanałów. Mozna je znaleźć choćby na https://1ml.com/. Są to jednak jedynie kanały publiczne, czyli takie, o których informacja jest rozgłaszana w całej sieci LN. Dzięki temu wszyscy o nich wiemy. Oprócz kanałów publicznych istnieje też coś takiego jak kanały prywatne. Takie kanały tworzy choćby portfel Bitcoin Lightning Wallet. Kanałów w tym portfelu nie znajdziemy na stronie 1ML czy też innej związanej ze statystykami. Jak więc taki kanał działa i skąd osoba wysyłająca środki wie, że może go użyć?

Ale najpierw, co nieco o kanałach publicznych

Zasada działania kanałów publicznych jest prosta. Informacja o nowym kanale rozsyłana jest do każdego uczestnika sieci LN. Nasz portfel zna więc wszystkie kanały istniejące w sieci. Kiedy chce dokonać płatności, w invoice otrzymuje numer noda do którego płatność ma trafić. Jeśli node też ma otwarty chociaż jeden kanał publiczny, to nasz portfel powinien znaleźć go na liście kanałów i użyć kanału do wysłania środków.

Jak działają kanały prywatne

Z punktu widzenia twórców/założycieli kanału prywatnego, wszystko odbywa się tak jak w kanale publicznym. Taki kanał musi być otwarty na blockchainie jak i zamknięty na blockchainie. Różnica jest tylko jedna – po otwarciu takiego kanału, nody nie wysyłają informacji o nim do innych. W związku z tym wiedza o prywatnych kanałach nie jest ogólnie dostępna. Rodzi się tu jednak podstawowe pytanie – w jaki sposób osoba wysyłająca płatność może użyć kanału, o którego istnieniu nie została poinformowana? Odpowiedź jest dość prosta – informacja o tym kanale wysyłana może zostać wraz z invoice “zaklęta” w kodzie QR.

Kiedy więc chcąc dokonać płatności skanujemy kod QR, odbiorca płatności oprócz podania kwoty  i innych informacji, może też zawrzeć w kodzie QR listę swoich prywatnych kanałów. Przy obecnej jakości i rozdzielczości kamer cyfrowych, spokojnie da się odczytać kod QR nawet z kilkoma kanałami prywatnymi zawartymi wewnątrz. Po prostu portfel, który używa kanałów prywatnych, zamiast rozsyłać informacje o tych kanałach do wszystkich, wysyła je jedynie do tych, którzy chcą wysłać do niego płatność. Wysyłający płatność używa kanałów publicznych w połączeniu z otrzymanymi kanałami prywatnymi do wysłania transakcji.

Skalowalność

W chwili obecnej używany jest tzw. source routing. Zaletą tego rozwiązania jest prostota, wysoki stopień anonimizacji i brak potrzeby jakiegokolwiek zaufania. Wysyłający samodzielnie określa ścieżkę routingu i tylko on ją zna. Wadą jest natomiast skalowalność, choć w tym przypadku nazwałbym to raczej problemem wydajności. Im więcej publicznych kanałów tworzonych lub zamykanych na sekundę, tym więcej danych nasz portfel musi przetwarzać. Duża liczba kanałów może też wydłużać samą płatność. Miliardy publicznych kanałów? W chwili obecnej jest to niemożliwe. Miliardy kanałów prywatnych? Jak najbardziej. Nie jest to co prawda możliwe w chwili obecnej na samym bitcoinie ze względu na limit wielkości bloku, jednak ja pisząc o LN mam na myśli samo LN, w oderwaniu od waluty bazowej.

Kanały publiczne są potrzebne tam, gdzie chcemy użyć kanału do routowania różnych płatności. Kanał publiczny jest jak dom publiczny – nigdy nie wiadomo, kto zechce go użyć. Dla zdecydowanej większości użytkowników LN wystarczające jest tworzenie kanałów prywatnych. Taki kanał nie nadaje się co prawda do routowania, ale powiedzmy sobie szczerze – standardem w płatnościach są i będą małe urządzenia w stylu telefonów czy smartwatchy, a użycie tych urządzeń do routowania mija się z celem choćby ze względu na zużycie baterii czy ryzyko kradzieży.

Możemy sobie więc wyobrazić setki tysięcy kanałów publicznych, a na około nich podłączone miliardy kanałów prywatnych. I taki LN, w takiej formie mógłby działać już dzisiaj. I to wszystko bez potrzeby dokonywania zmian w kodzie już istniejących implementacji.

 

 

Leave a Reply

Your email address will not be published.