Lightning Network - informacje

Weteran
Awatar użytkownika
Posty: 4557
Rejestracja: 14 kwietnia 2016
Reputacja: 2659
Reputacja postu: 
10
Napiwki za post: 0 BTC

Lightning Network - informacje

Postautor: mecenas » poniedziałek, 11 lipca 2022, 09:48

:arrow: Wizualizacja mempool: https://txstreet.com/v/bch-btc
:arrow: Zdecentralizowane kontrakty (beta): https://bchbull.com/

Wygadany
Awatar użytkownika
Posty: 525
Rejestracja: 8 lutego 2020
Reputacja: 966
Reputacja postu: 
0
Napiwki za post: 0 BTC
Lokalizacja: ghidra-sre.org

Lightning Network - informacje

Postautor: garlonicon » poniedziałek, 11 lipca 2022, 13:58

Not your keys, not your coins. This also applies to Lightning wallets.
To prawda. Jak ktoś nie ma kluczy prywatnych do swojego portfela LN, to równie dobrze może używać scentralizowanej giełdy. Swoją drogą, LN jest lepsze od takiej giełdy, bo sytuacja jest niemal identyczna, ale LN działa tutaj na korzyść użytkownika: jest możliwość włożenia środków do kanału (odpowiednik wpłaty na giełdę), jest możliwość przesuwania środków wewnątrz (odpowiednik tradingu), no i jest możliwość zamknięcia kanału (odpowiednik wypłaty z giełdy). Co nie zmienia faktu, że jeśli ktoś nie używa swoich własnych kluczy prywatnych do robienia tych rzeczy, to znaczy, że nie dotyka w ogóle krypto.

Początkujący
Posty: 9
Rejestracja: 28 września 2022
Reputacja: 0
Reputacja postu: 
0
Napiwki za post: 0 BTC

Lightning Network - informacje

Postautor: piotrjuszczyk » czwartek, 29 września 2022, 11:15

Może mi ktoś rozjaśnić pewne wątpliwości odnośnie LN?
Bo jak tak zacząłem używać to mi się LN na BTC kojarzy z Polygon na Ethereum, z tym że nie zrobiono dodatkowego tokenu LN ale bazowano na BTC.
Czyli osobna sieć tylko zamiast robić nowy token to użyto BTC.
Dobrze myślę, że lepiej to traktować jako nową sieć z tą samą krypto niż jako BTC?

Wygadany
Awatar użytkownika
Posty: 525
Rejestracja: 8 lutego 2020
Reputacja: 966
Reputacja postu: 
0
Napiwki za post: 0 BTC
Lokalizacja: ghidra-sre.org

Lightning Network - informacje

Postautor: garlonicon » piątek, 30 września 2022, 06:56

LN to warstwa półtora: nie jest pierwszą warstwą jako sieć sama w sobie, no ale też nie jest na tyle odczepioną warstwą, aby można było mówić o tym, jako o drugiej warstwie. Jest gdzieś pomiędzy nimi. Co do tego, że nie zrobiono dodatkowego tokenu, to przyczyna jest dość prosta: gdyby zrobiono, to byłoby wiele sidechainów i sytuacja wyglądałaby zupełnie inaczej, to znaczy: dałoby się samodzielnie tworzyć dowolne niższe warstwy. Główną przyczyną braku sidechainów jest strach przed zmianami oraz to, że aktywowanie tego soft-forkiem doprowadziłoby do legitymizacji altcoinów, czego niektórzy unikają jak ognia.

Początkujący
Posty: 9
Rejestracja: 28 września 2022
Reputacja: 0
Reputacja postu: 
0
Napiwki za post: 0 BTC

Lightning Network - informacje

Postautor: piotrjuszczyk » piątek, 30 września 2022, 13:11

Dzięki, czyli na ile rozumiem sieć BTC sama z siebie nie będzie nigdy zawierała LN? LN można traktować jako projekt dodatkowy.
Tak jak do przegladarki instaluję plugina ale nie muszę.

Wygadany
Awatar użytkownika
Posty: 525
Rejestracja: 8 lutego 2020
Reputacja: 966
Reputacja postu: 
12
Napiwki za post: 0 BTC
Lokalizacja: ghidra-sre.org

Lightning Network - informacje

Postautor: garlonicon » piątek, 30 września 2022, 17:03

Dzięki, czyli na ile rozumiem sieć BTC sama z siebie nie będzie nigdy zawierała LN?
Sieć sama z siebie zawiera LN.

Może inaczej: wyobraź sobie, że chcesz przesuwać koraliki na sznurku. W przypadku sieci głównej możesz rzucić nitkę z M punktów naraz do N punktów naraz w ramach jednej transakcji. W przypadku LN po prostu zmieniasz liczbę koralików na istniejących sznurkach tak, aby wykonać płatność. Czyli: sznurki to są transakcje on-chain, na warstwie głównej. Jak masz BTC, to po prostu każda transakcja idzie on-chain. Jak masz LN, to założenie jest takie, że najpierw otwierasz kanał (zaczepiasz sznurki z koralikami), następnie przesuwasz monety wewnątrz LN (przesuwasz koraliki bez zmiany liczby sznurków oraz bez zmiany liczby koralików na tych sznurkach, jedynie je przesuwasz po istniejących sznurkach), na końcu zaś zamykasz kanał (odczepiasz sznurki z koralikami).

Czyli: na pierwszej warstwie masz transakcje, które mają M wejść oraz N wyjść, możesz zrobić tutaj absolutnie wszystko. Natomiast w sieci LN masz trzy operacje:

1) otwarcie kanału (normalna transakcja na pierwszej warstwie)
2) przesuwanie monet w LN (transakcja na warstwie półtora, pierwsza warstwa nie musi o tym wiedzieć)
3) zamknięcie kanału (normalna transakcja na pierwszej warstwie)

Przy czym warto dodać, że w ramach jednej transakcji można otworzyć i zamknąć wiele kanałów naraz, oczywiście domyślnie jest tak, że jest jeden kanał pomiędzy dwiema stronami i na wszystko są osobne transakcje (no ale w nowszych wersjach to się zmienia).
LN można traktować jako projekt dodatkowy.
Tak.
Tak jak do przegladarki instaluję plugina ale nie muszę.
Zgadza się. Zwykle warto otworzyć sobie kalkulator i policzyć, co się w danym momencie bardziej opłaca. Parę przykładów:

1) Chcesz puścić jedną transakcję do kogoś. Robisz to jeden jedyny raz, nie planujesz nigdy więcej takiej transakcji powtarzać. Robisz to on-chain, tak jest najtaniej.

2) Chcesz handlować na giełdzie. Wrzucasz środki do kanału (odpowiednik wpłaty na giełdę on-chain), wykonujesz mnóstwo drobnych transakcji, a na końcu wypłacasz wszystko na adres on-chain. Tutaj opłaca się zastosować LN, bo dwie transakcje on-chain będą zawsze, natomiast przy LN masz coś więcej niż przy typowych, scentralizowanych giełdach, bo wtedy masz kontrolę nad środkami. Oczywiście, typowe scentralizowane giełdy nie wspierają LN z automatu, między innymi dlatego, że nie muszą, no i też to wymaga tego, aby użytkownicy umieli korzystać z LN, więc biznesowo to się średnio spina pod kątem liczby reklamacji. Niemniej jednak, LN tutaj pasuje lepiej niż puszczanie transakcji on-chain na każdą transakcję kupna/sprzedaży.

3) Chcesz grać w kasynie. Podobnie, jak w przypadku giełdy: wpłacasz kwotę początkową, następnie grasz wielokrotnie, a na końcu wypłacasz ewentualną wygraną, bądź kasyno robi to samodzielnie, jeśli wszystkie środki zostały stracone. Taki model pasuje do dowolnych gier.

4) Chcesz wymieszać swoje monety. Zwykle wystarczy wybrać odpowiedni portfel, następnie otworzyć jakiś kanał w LN, później zrobić zamianę na monety on-chain w innych kanałach (tak zwany swap), a następnie zamknąć nowe kanały. Jeśli nie masz zaufania do scentralizowanych mikserów, to LN pozwala całkiem nieźle zminimalizować tutaj ryzyko i uzyskać monety z kompletnie innych kanałów. Niektóre portfele mają taką funkcjonalność automatycznie wbudowaną, na przykład Phoenix, który zawsze przy próbie wypłaty on-chain robi swap, czy tego chcemy, czy nie.

5) Chcesz pozbierać drobne monety on-chain w większe. Tutaj polecam transakcję on-chain z odpowiednimi sighashami. Na przykład: jeśli masz wyjście, na którym jest 1000 satoshi, to możesz je wykorzystać do odebrania płatności. Przykładowo: chcesz, aby ktoś zapłacił 30k satoshi on-chain. Tworzysz zatem transakcję ze swoim wejściem 1000 satoshi, z wyjściem 31000 satoshi i podpisujesz to jako SIGHASH_SINGLE|SIGHASH_ANYONECANPAY. Wtedy odbiorca dokłada swoje wejścia i swoje wyjścia, tworząc transakcję, która jednocześnie zapłaci to, co trzeba, a także połączy to z drobnicą uzyskaną wcześniej. Transakcję najlepiej przesłać w formacie HEX, jeśli odbiorca umie robić takie rzeczy, to będzie wiedział, jak się za to zabrać.

6) Chcesz potwierdzić, że konkretne dane istniały w wybranym czasie. Tutaj polecam zrobić to on-chain, istnieją gotowce typu Open Timestamps, ale w ramach własnej transakcji też da się to zrobić. Aby uzyskać dowolny commitment, wystarczy wziąć dowolną własną transakcję, która jest podpisana, a następnie do wartości R sygnatury dołożyć wybrane przesunięcie jako commitment. Na przykład: "nowe_R=stare_R+SHA-256(uint256(stare_R.x)||uint256(commitment))". Ujawniając stare_R oraz commitment, jesteśmy w stanie później udowodnić, że takie dane są powiązane z naszą transakcją. Dodatkowo, SHA-256 najlepiej wywołać jako tagged-hash po to, aby nasz commitment nie został użyty w innym kontekście.

Przykładów może być więcej. W największym skrócie: BTC on-chain pozwala na zrobienie wszystkiego, masz M wejść i N wyjść w ramach jednej transakcji i robisz z tym to, co chcesz. Natomiast w przypadku LN masz dwie transakcje: jedna otwiera kanał, a druga go zamyka. Wykonujesz płatność, zmieniając transakcję zamykającą (czyli przesuwasz koraliki po istniejących sznurkach).

Najlepiej jest ustalić, co konkretnie jest do zrobienia, wziąć jakiś portfel, zapoznać się z opłatami i zwyczajnie policzyć, co się bardziej opłaca. Czasem jedna transakcja on-chain załatwi wszystko, a czasem widać, że transakcji będzie wiele i że taniej jest otworzyć kanał, porobić je przez tydzień/miesiąc, a następnie zamknąć, wypychając na główną warstwę jedynie podsumowanie tego, co się zadziało wewnątrz LN. Warto też policzyć opłaty zgarniane przez dany portfel. Bo nawet przy 0.1%, to przy dużych kwotach on-chain jest taniej, zwłaszcza jeśli się nie spieszymy. Najlepiej to zrobić na konkretnych przykładach: jak chcemy przesłać 1 BTC, to opłata rzędu 0.1% oznacza 100k satoshi. Nijak się to nie opłaca przez LN, bo on-chain możemy to zrobić za kilkaset satoshi. Natomiast jeśli kwoty są małe, to łatwo policzyć, że przy stu transakcjach LN na kwotę 1000 satoshi zapłacimy jakieś 100 satoshi (jeśli minimalna opłata wynosi jeden satoshi za transakcję), zaś on-chain za tyle puścimy jedynie pierwszą transakcję. Wniosek jest prosty: kalkulator w garść i liczymy. A jak się nam nie chce liczyć tego ręcznie, no to po to są sieci testowe, żeby sobie porobić transakcje i się przekonać, gdzie zapłacimy więcej.

Początkujący
Posty: 9
Rejestracja: 28 września 2022
Reputacja: 0
Reputacja postu: 
0
Napiwki za post: 0 BTC

Lightning Network - informacje

Postautor: piotrjuszczyk » piątek, 30 września 2022, 20:32

Dziękuję za obszerną wypowiedź ale nie wszystko zrozumiałem.
Nie rozumiem dalej twierdzenia że sieć sama z siebie zawiera LN. To w takim razie czemu na Binance i w całej masie giełd mam BTC a nie mam LN?
Dodatkowo załóżmy mam gdzieś na jakimś portfelu zwykłym BTC 100 satoshi? Mogę to pozbierać wykorzystując LN?

Wygadany
Awatar użytkownika
Posty: 525
Rejestracja: 8 lutego 2020
Reputacja: 966
Reputacja postu: 
0
Napiwki za post: 0 BTC
Lokalizacja: ghidra-sre.org

Lightning Network - informacje

Postautor: garlonicon » piątek, 30 września 2022, 23:21

Nie rozumiem dalej twierdzenia że sieć sama z siebie zawiera LN.
Transakcja otwierająca i zamykająca kanał jest na głównej sieci. Oznacza to tyle, że BTC zawiera LN bezpośrednio.

Parę przykładów:

1) Alicja z Bobem chcą mieć wspólny kanał, Alicja wkłada 1 BTC, Bob nie wkłada niczego, transakcja otwierająca kanał wygląda tak:

+------------------------------------------+
| 1.00 BTC Alicja -> Alicja i Bob 1.00 BTC |
+------------------------------------------+

2) Alicja ma na wspólnym kanale 1 BTC po swojej stronie, przesuwa 0.5 BTC do Boba w sieci LN:

+------------------------------------------+
| 1.00 BTC Alicja i Bob -> Alicja 0.50 BTC |
|                          Bob    0.50 BTC |
+------------------------------------------+

3) Alicja wysyła jeszcze 0.1 BTC do Boba w sieci LN, nie zamykając kanału:

+------------------------------------------+
| 1.00 BTC Alicja i Bob -> Alicja 0.40 BTC |
|                          Bob    0.60 BTC |
+------------------------------------------+

4) Bob wysyła Alicji 0.05 BTC z powrotem w sieci LN, bez zamykania kanału:

+------------------------------------------+
| 1.00 BTC Alicja i Bob -> Alicja 0.45 BTC |
|                          Bob    0.55 BTC |
+------------------------------------------+

5) Obie strony są online i decydują się wspólnie zamknąć kanał, Alicja otrzymuje 0.45 BTC, zaś Bob 0.55 BTC. Oczywiście, ten model jest najprostszym z możliwych, tak naprawdę kwoty będą odrobinę inne z kilku powodów (opłaty od transakcji, anonimowość). Niemniej jednak sama idea jako taka jest prosta: jak tworzysz kanał, to masz na BTC współdzielone monety i budujesz alternatywne transakcje, które mogą to przesunąć. Możesz tworzyć takich transakcji wiele, ale ostatecznie całość się sprowadza do tego, aby ostatni stan kanału wysłać do głównej sieci. No i nawet na tym prostym przykładzie widać potencjalne ataki, na przykład polegające na tym, że któraś ze stron wyśle stary stan kanału. Wtedy są rozsyłane transakcje kary, które zabierają wszystkie środki z konta atakującego. No ale ten prosty przykład powinien co nieco rozjaśnić: żeby przesunąć monety w LN, zmieniasz transakcję zamykającą kanał. Tyle.
To w takim razie czemu na Binance i w całej masie giełd mam BTC a nie mam LN?
Bo wsparcie LN jest opcjonalne. Różne giełdy mają różne podejście do tematu, niektórzy nie dotykają w ogóle LN, bo nie chcą, bo nie muszą, bo nie mają ochoty użerać się z potencjalnymi reklamacjami, bo im się to nie opłaca, przyczyn jest wiele i są różne. No ale nadal: jak chcesz wejść do LN, to po prostu używasz dowolnego portfela, który to wspiera. Dostaniesz adres do wpłaty on-chain, a potem portfel zajmie się resztą. Natomiast przy wypłatach albo zamykasz aktualnie otwarty kanał, albo podajesz adres on-chain, na który chcesz wykonać zamianę monet (tak zwany swap). Oprócz tego, typowy portfel ma w opisie wyjaśnione, czy środki są custodial (kontrolowane przez twórców portfela), czy też non-custodial (kontrolowane wyłącznie przez użytkownika), ewentualnie może wystąpić jedno i drugie. Tak samo z opłatami, konkretne strony konkretnych portfeli to opisują, na przykład: https://phoenix.acinq.co/faq
Dodatkowo załóżmy mam gdzieś na jakimś portfelu zwykłym BTC 100 satoshi? Mogę to pozbierać wykorzystując LN?
Nie sądzę, że masz 100 satoshi. Progi pyłu wynoszą nieco ponad 500 satoshi w przypadku starych adresów i około 300 satoshi na adresach Segwit. Jeśli rzeczywiście masz pojedyncze wyjścia z naprawdę drobnymi wartościami, to znaczy, że zostały utworzone w sposób niestandardowy, na przykład jako górnik w starych czasach.

Nie polecam zbierania drobnych kwot on-chain za pomocą LN. Każde otwarcie kanału kosztuje tyle, ile normalna transakcja. Tutaj nie ma drogi na skróty, co oznacza tyle, że on-chain jest to najtańsze. Skoro nie masz pootwieranych żadnych kanałów, to LN tutaj nie pomoże. Sieć LN może obniżyć opłaty, jak kanały są już otwarte.

Obecnie minimalna opłata w transakcjach on-chain wynosi standardowo jeden satoshi per bajt. I musisz tyle zapłacić, chyba że jesteś górnikiem lub masz dobry kontakt z mining poolami, które są w stanie załatwić to niestandardowo. Jeśli jednak jesteś typowym użytkownikiem, to musisz się liczyć z typowymi opłatami.

Chyba że masz takie 100 satoshi na jakichś scentralizowanych stronach, wtedy pozbieranie tego zależy od warunków trzeciej strony.

Początkujący
Posty: 9
Rejestracja: 28 września 2022
Reputacja: 0
Reputacja postu: 
1
Napiwki za post: 0 BTC

Lightning Network - informacje

Postautor: piotrjuszczyk » sobota, 1 października 2022, 13:43

Nie sądzę, że masz 100 satoshi.
Proszę tu masz wykaz kilku milionów portfeli BTC z wartościami od 1 satoshi w górę, do powiedzmy kilkuset satoshi.
http://addresses.loyce.club/?C=M;O=D
Jak napisałem wyżej: "załóżmy" bo takie sytuacje są.
BTW. Czyli można też rozumieć że jak ktoś ma na BTC <1000 satoshi to w zasadzie nic z tym raczej nie zrobi (chyba że wcześniej otworzył kanał do LN) bo koszty transakcji czynią nieopłacalnymi jakiekolwiek transakcje na takich portfelach? Czyli idąc dalej to są w zasadzie BTC poza obiegiem.

Wróć do „Rozwój projektu”

Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 1 gość