Poniżej znajduje się krótkie wprowadzenie do sieci Lightning Network. Część z poniższych informacji została zawarta w osobnym temacie Częste pytania dotyczące sieci Lightning Network.
Już kilkukrotnie dyskutowaliśmy czy taki sposób skalowania sieci jest dobry dla Bitcoina. Oto przykładowe wątki:i: Is the Lightning Network centralized?, Lightning Network Discussion Thread, Lightning Network fraud possible?
SPIS TREŚCI
1. Czym jest Lightning Network?
2. Jak to działa?
3. Portfele i nody (węzły)
4. Znane problemy
5. Planowane funkcje
6. Zagrożenia bezpieczeństwa
7. Inne rozwiązania skalowania drugiej warstwy (second layer)
8. Przydatne źródła informacji
1. Czym jest Lightning Network?
Sieć Lightning jest alternatywą dla tradycyjnych transakcji on-chain Bitcoina. Nie zastępuje ich całkowicie, ponieważ transakcje w łańcuchu są nadal potrzebne do zamykania i otwierania kanałów płatności. Lightning Network to rozwiązanie "drugiej warstwy" (second layer) i jest w pełni opcjonalne. Transakcje przeprowadzane pomiędzy uczestnikami Lightning Network nie mają negatywnego wpływu na sieć Bitcoin.
Sieć Lightning Network pozwala na błyskawiczne i niezwykle tanie (mikro) płatności P2P .
2. Jak to działa?
Tworzenie kanału
Czym dokładnie jest kanał płatności? Zgodnie z Bitcoin wiki, kanał płatności to technika zaprojektowana w celu umożliwienia użytkownikom dokonywania wielu transakcji bez przeprowadzania wszystkich tych tranzakcji na blockchainie Bitcoina. Maksymalnie dwie transakcje będą transmitowane do łańcucha blockchain.
Aby rozpocząć korzystanie z Lightning Network, musisz użyć kompatybilnego oprogramowania. Dwie osoby mogą ustanowić kanał płatności, blokując fundusze w adresie multi-sig, który potrzebuje obu podpisów, aby je wydać. Ta transakcja jest czasowo zablokowana, więc środki zostaną automatycznie zdyskontowane w przypadku, gdy jedna ze stron nie będzie współpracować. Kanał płatniczy może być używany, o ile obaj uczestnicy pozostają chętni do współpracy.
Wysyłanie i przekierowywanie płatności
Obie strony przeprowadzają transakcje bez emisji bieżącego ich stanu do Blockchaina. Obaj zachowują kopię informacji o kanale. Wysyłanie płatności za pośrednictwem Lightning Network jest możliwe pod warunkiem, że istnieje co najmniej jedno połączenie z drugą osobą i wystarczające środki w kanałach, które kierują transakcją. Każdy węzeł jest nagradzany za przeprowadzenie (routing) tranzakcji zgodnie z polityką opłat.
Bezpieczne kierowanie płatności nie byłoby możliwe bez Hashed Timelock Contracts (HTLCs). Poniższy przykład wyjaśnia, dlaczego są one potrzebne.
2. Alicja chce kupić coś od Charliego za 1000 satoshi.
3. Charlie generuje liczbę losową i hash SHA256. Charlie daje ten hash Alicji.
4. Alicja używa swojego kanału płatności do Boba, by zapłacić mu 1000 satoshi, ale dodaje hash, który Charlie dał jej do zapłaty wraz z dodatkowym warunkiem: aby Bob mógł ubiegać się o płatność, musi podać dane, które zostały użyte do wytworzenia tego hashu.
5. Bob wykorzystuje swój kanał płatności do Charliego, aby zapłacić Charliemu 1000 satoshi, Bob dodaje kopię tego samego warunku, który Alice użyła przy płatności dla Boba.
6. Charlie ma oryginalne dane, które zostały użyte do wytworzenia tego hashu (zwanego obrazem wstępnym, pre-image), więc Charlie może użyć go do sfinalizowania swojej płatności i pełnego otrzymania płatności od Boba. W ten sposób Charlie koniecznie udostępnia pre-image Bobowi.
7. Bob używa pre-image do sfinalizowania płatności od Alicji.
Zamykanie kanału
Istnieją dwa sposoby zamknięcia kanałów płatności. Chętny do współpracy i brak współpracy (Cooperative and uncooperative).
Ta ostatnia metoda zajmuje więcej czasu, ponieważ druga strona jest w trybie offline. Aby uniknąć oszustw, przed emisją transakcji trzeba poczekać pewien okres czasu, który został wynegocjowany podczas otwierania kanału, przed emisją transakcji końcowej.
3. Portfele i nody (węzły)
Istnieje kilka implementacji Lightning Network i każda z nich może zawierać pewne błędy, które mogą prowadzić do utraty funduszy. Większość z nich wymaga od użytkownika uruchomienia pełnego węzła bitcoin, ale dzięki neutrino, możesz go zastąpić lekkim węzłem, jeśli zdecydujesz się użyć LND. Portfele iOS i Android są łatwe w użyciu i nie wymagają wiele konfiguracji, ale większość z nich nie może być używana do żądania płatności.
Każda implementacja ma inny proces konfiguracji.
Portfele desktop
- LND (przewodnik)
- Eclair (Linux and Windows guides)
- c-lightning (przewodnik)
- Zap wallet (Bitcoin Core potrzebny, jeśli chce się go używać w sieci głównej; nieaktualne przewodniki)
Portfele mobilne
- Eclair (Android)
- Bitcoin Lightning Wallet (obsługuje żądania płatności po wydaniu około 2% funduszy kanału)
- Thin Wallet (iOS) [Wymagane LND!]
Powyższa lista zawiera oprogramowanie, które jest oficjalnie dostępne i można je skonfigurować do korzystania z mainnetu Bitcoin. Każdy użytkownik uruchamiający węzeł sieci Lightning bierze udział w (routingu) przeprowadzaniu płatności. Liczba transakcji routowanych zależy od tego, jak dobrze węzeł jest połączony, ilości bitcoinów zamkniętych w kanale i polityki opłat. Nie ma sensu opisywać cech tych portfeli, ponieważ są one stale aktualizowane.
4. Znane problemy
węzły w trybie offline są uważane za zdolne do routingu, co powoduje, że płatności nie są realizowane w niektórych przypadkach,wyjaśnione tutaj- nie ma standardu bezpiecznego tworzenia kopii zapasowych. Używanie starej kopii zapasowej jest uważane za oszustwo, dlatego transmitowana jest transakcja karna,
- nie można odbierać płatności i bronić się przed oszustwem od drugiego użytkownika, jeśli jeden z nodów jest w trybie offline,
- nadal może być problem z pełnymi blokami w przyszłości. Jednak programiści pracują nad rozwiązaniami, które zwiększą liczbę transakcji na blok, np. Schnorr signatures.
5. Planowane funkcje
- Watchtowers - możliwe jest, że druga strona podejmie próbę oszukania przez transmisje starego stanu kanału płatności. Zwykle nie byłoby to możliwe, ponieważ drugi węzeł emitowałby transakcję karną. Aby zapobiec oszustwom, opracowywana jest koncepcja Watchtowers (strażników). Watchtowers będą mogły emitować transakcję karną, jeśli będzie to konieczne.
- Atomic swaps - metoda bezpiecznej wymiany dwóch różnych kryptowalut bez potrzeby korzystania z depozytu (escrow).
- Płatności Multi-path - obecnie można wysłać transakcję przy użyciu tylko jednej trasy. W przyszłości możliwe będzie podzielenie transakcji na wiele tras w celu zmniejszenia liczby niepowodzeń transakcji, co często jest spowodowane brakiem funduszy w węzłach.
- Dual-funded channels - dwóch użytkowników zamiast jednego będzie mogło sfinansować kanał płatniczy, jak pierwotnie opisano w Lightning Network Paper.
- Eltoo - eltoo będzie alternatywą dla obecnej metody rozliczania płatności między użytkownikami. Aktualizowanie kanałów odbywa się poprzez budowanie łańcucha transakcji czasowo zablokowanych. Potrzebny jest soft fork, aby uczynić eltoo dostępnym w sieci Lightning Network (aby uniknąć konieczności transmitowania całej historii transakcji między użytkownikami)
Tutaj możesz dowiedzieć się, które opcodes należy zmodyfikować. - Channel factories - Istniejące kanały sieci Lightning Network mogą być wykorzystywane do tworzenia nowych kanałów bez transmitowania czegokolwiek do reszty sieci Bitcoin. Zwykle kanał jest otwarty tylko dla jednej osoby. W Channel factories mamy wielu ludzi tworzących grupę. Członkowie grupy utrzymują kanały między sobą. Więcej zainteresowanych użytkowników = większe oszczędności. Jeśli jeden z uczestników nie współpracuje, istniejące kanały nie są zagrożone - nie można jednak utworzyć nowych kanałów.
Jest kilka rzeczy, które można zmienić w kodzie Bitcoin, aby poprawić prywatność. Wprowadzenie Schnorr, MAST and Taproot sprawiłoby, że transakcje otwierające / zamykające kanał byłyby nieodróżnialne od innych transakcji porządkowych.
6. Zagrożenia bezpieczeństwa
- Nieprawidłowe blokady czasowe - należy zapewnić wystarczającą ilość czasu na interakcję z niewspółpracującymi lub złośliwymi kontrahentami kanału.
- Wymuszone wygaśnięcie spamu - zamykanie wielu kanałów w tym samym czasie może doprowadzić do całkowitego zapełnienia całego bloku. Jeśli spam trwa wystarczająco długo, czasami zablokowane transakcje mogą stać się ważne.
- Utrata danych - większość klientów Lightning Network nie zapewnia niezawodnej metody tworzenia kopii zapasowych. Używanie starej kopii bazy danych może być uznane za oszustwo. Druga strona emituje w tym przypadku transakcję karną.
- Kradzież monet - większość węzłów sieci Lightning Network pracuje 24 godziny na dobę, 7 dni w tygodniu, a ich monety są przechowywane w gorących portfelach, co ułatwia intruzowi wykradanie prywatnych kluczy.
- Wspólne ataki górników - górnicy mają możliwość decydowania, które transakcje chcą uwzględnić w bloku, aby mogli odrzucić niektóre transakcje wybrane przez atakującego. Ten atak jest mało prawdopodobny ze względu na wysokie koszty i złożoność (wszyscy górnicy musieliby współpracować).
Większość klientów mobilnej sieci Lightning Network będzie działać dzięki neutrino który korzysta z BIP 157 & BIP 158. Czy ma to jakiś pozytywny wpływ? Tak, pomaga to w ograniczeniu liczby przesłanych danych przy zachowaniu tego samego poziomu prywatności i zmniejszeniu obciążenia węzła, który je udostępnia.
7. Inne rozwiązania dla skalowania drugiej warstwy (second-layer scaling solutions)
- RSK – umożliwia inteligentne kontrakty (smart contracts), wykorzystuje scalone wydobycie.
- MimbleWimble
8. Przydatne źródła informacji
https://1ml.com/ (Lightning Network Explorer)
https://lightblock.me/ (Lightning Network Explorer)
http://lightning.network/docs/ (w szczególności “Bitcoin Lightning Network Paper”)
https://cointelegraph.com/tags/lightning-network
https://lnroute.com/
https://dev.lightning.community/
https://blog.lightning.engineering/
https://en.bitcoin.it/wiki/Lightning_Network
https://bitcoinmagazine.com/articles/future-bitcoin-what-lightning-could-look/
Link do tekstu źródłowego w języku angielskim: https://bitcointalksearch.org/topic/basics-of-the-lightning-network-4940536