Altcoins Talks - Cryptocurrency Forum

Local => Forum kryptowaluty => Topic started by: EmoneyABC on November 10, 2018, 02:32:32 PM

Title: Podstawy Lightning Network - wyjaśnienia, portfele.
Post by: EmoneyABC on November 10, 2018, 02:32:32 PM
WPROWADZENIE

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 (http://No links to other forumsindex.php?topic=5064967.0).

SPIS TREŚCI

      1. Czym jest Lightning Network? (#post_point1)
      2. Jak to działa? (#post_point2)
      3. Portfele i nody (węzły) (#post_point3)
      4. Znane problemy (#post_point4)
      5. Planowane funkcje (#post_point5)
      6. Zagrożenia bezpieczeństwa (#post_point6)
      7. Inne rozwiązania skalowania drugiej warstwy (second layer) (#post_point7)
      8. Przydatne źródła informacji (#post_point8)

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 (https://en.bitcoin.it/wiki/Payment_channels), 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 (https://en.bitcoin.it/wiki/Hashed_Timelock_Contracts) (HTLCs). Poniższy przykład wyjaśnia, dlaczego są one potrzebne.

Quote from: https://en.bitcoin.it/wiki/Hashed_Timelock_Contracts
1. Alicja otwiera kanał płatności dla Boba, a Bob otwiera kanał płatności dla Charliego.
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 (https://github.com/lightninglabs/neutrino), możesz go zastąpić lekkim węzłem, jeśli zdecydujesz się użyć LND (https://github.com/lightningnetwork/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
Portfele mobilne
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
5. Planowane funkcje

Jest kilka rzeczy, które można zmienić w kodzie Bitcoin, aby poprawić prywatność. Wprowadzenie Schnorr, MAST and Taproot (https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2018-May/015961.html) sprawiłoby, że transakcje otwierające / zamykające kanał byłyby nieodróżnialne od innych transakcji porządkowych.

6. Zagrożenia bezpieczeństwa

Większość klientów mobilnej sieci Lightning Network będzie działać dzięki neutrino (https://github.com/lightninglabs/neutrino) który korzysta z BIP 157 (https://github.com/bitcoin/bips/blob/master/bip-0157.mediawiki) & BIP 158 (https://github.com/bitcoin/bips/blob/master/bip-0158.mediawiki). 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)

8. Przydatne źródła informacji


https://1ml.com/ (https://1ml.com/) (Lightning Network Explorer)
https://lightblock.me/ (https://lightblock.me/) (Lightning Network Explorer)
http://lightning.network/docs/ (http://lightning.network/docs/) (w szczególności “Bitcoin Lightning Network Paper (https://lightning.network/lightning-network-paper.pdf)”)
https://cointelegraph.com/tags/lightning-network (https://cointelegraph.com/tags/lightning-network)
https://lnroute.com/ (https://lnroute.com/)
https://dev.lightning.community/ (https://dev.lightning.community/)
https://blog.lightning.engineering/ (https://blog.lightning.engineering/)
https://en.bitcoin.it/wiki/Lightning_Network (https://en.bitcoin.it/wiki/Lightning_Network)
https://bitcoinmagazine.com/articles/future-bitcoin-what-lightning-could-look/ (https://bitcoinmagazine.com/articles/future-bitcoin-what-lightning-could-look/)