Niedawno podczas balansu kanałów LN skorzystałem z https://tippin.me żeby z jednego kanału przeżocić sobie gdzieś środki. Chciałem wysłać 100k sat, ale otrzymałem błąd o braku ścieżki. Standardowo, pomyślałem że po prostu balans kanałów pośredniczących nie pozwala na przesłanie takiej ilości. Po chwili spróbowałem dwa razy ponownie i znów ten sam błąd, więc zmniejszyłem wypłatę do 50k sat. Po kilku kilku sekundach, jak widziałem że balans środków się nie zmniejszył, omyłkowo uznałem że znów ten sam błąd, więc już dla testu, bo dziwne że tak małe wartości nie przechodzą zmniejszyłem wypłatę tylko do 10k sat. żeby zobaczyć czy cokolwiek może przejść. No i nagle dostałem dwa raporty naraz o transferze tych 50k sat. i 10k sat. Okazało się że z tymi 50k nie było błędu o braku ścieżki, tylko dłużej to trwało (kilkanaście sekund). Problem jest to że w obu transakcjach skorzystałem z tego samego invoce z tippin. Obie transakcje miały taki sam hash. Po sprawdzeniu stanu konta na tippin miałem jednak tylko 50k sat. ale z mojego kanału zniknęło 60k w dwóch transakcjach.

No i teraz zaczyna się ciekawie. Pomyślałem że po prostu to błąd tippin i że dostał obie płatności, ale nie przypisał mi drugiej do mojego konta, bo dla każdej płatności powinno być inne invoce. 10k sat to drobiazg, ale stwierdziłem że napiszę maila do tpka od tippina że jest taka sytuacja i żeby poprawił błąd u siebie. Opisałem wszystko, hash transakcji i załączyłem screenshot. Najpierw odpisał mi że po hashu odnajduje u siebie, tylko tą jedną transakcję na 10k sat.

Thank you for writing! Apparently it’s a known bug of LND, once the invoice is paid, it doesn’t store any successive payments. Actually, this is the only entry I get on tippin’s node when I try looking up the hash. For some reason, it only stored the first one. I’ll keep on looking into it, to see if I can find a solution.

i załączył screena. Po chwili że to znany błąd LND i podrzucił link do dyskusji na githubie. 

Hi again!

No workaround yet
waiting for a solution!


No i trochę mnie zdziwiło to, więc mu napisałem że nie chodzi o odzyskanie tych 10k sat, tylko o to że to poważny błąd bo co by było, gdybym stracił w ten sposób więcej? Np. 1 BTC? Po drugie to zastanawia mnie gdzie są te środki, bo one nie mogą po prostu wyparować. To że to jest LN to jedno, ale BTC nie mogą zniknąć, muszą gdzieś być. To działa na tej zasadzie że po prostu na moim kanale z hubem te środki zostają przypisane na jego stronę a kiedy wychodzą od niego to na drugim kanale (czyli na wspólnym adresie multisig) który ma spięty z innym hubem taka sama ilość środków zostaje przypisana do tamtego huba.

Po prostu moje środki nie idą do celu tak naprawdę, ja po prostu je oddaję hubowi z którym jestem połączony a on z innego konta oddaje inne BTC innemu hubowi z którym ma osobny kanał i tak te środki są przekazywane aż do celu. Zdziwiło mnie że tippin nie widzi tych środków u siebie, więc piszę mu że zastanawia mnie gdzie są te środki bo gdzieś muszą być i żeby skontaktował się z ANCIQ, bo to przez kanał, który mam otwarty z ich hubem (podałem mu id) przeszło to 10k sat. Powinni dojść do tego gdzie one są i dlaczego a nie pierdolić o błędzie węzłów... Dostałem odpowiedź:

Hi,

It's not that it's not enough, it is just that this escapes my control. And I'm really sorry about it; but it's not a bug on tippin, but a bug on LN itself. That's the risk of running BETA projects I guess!

As I just sent you in my second email, there is an open BUG in LND Github project (which is the official Lightning Network implementation, made by the team behind LN itself). Sadly it's not a tippin bug, I'd happily fix that; it's a bug on LN itself. It's a pity, I know.

I've just talked to one of the developers behind LND (Lightning Network), and he said two things:

- This shouldn't happen, because the sender shouldn't allow it. Eclair should avoid this double-spent situation. LND already prevents this. 

- If this happens (like just happened), funds are “lost”. Not sure how can be recovered, because there is no “record” on the receiver.

What else can I say. I'm sorry, and thanks god it was a small amount.

If I find a solution to claim or find those satoshis, believe me, I'll send them to you right away!


Ja używam węzła Eclair a ta odpowiedź mnie znów wkurwiła bo ci się przekomarzają że Eclair nie powinien pozwolić na wysyłkę drugi raz takiego samego invoce itd. a ja mam to w dupie. Skoro to nie błąd tippina i on nie ma tych środków to gdzie one kur... są? To mnie zastanawia i to powinno być wyjaśnione. Te bugi niech sobie łatają, ale dla mnie istotne jest gdzie po drodze utknęły te środki. Napisałem mu że gdybym to opisał na reddicie to powinna być spora afera.

Hi again!

Just in case you didn’t get my previous email talking about this, here you can take a look at the open bug at LND:


I’m also wondering who would claim the funds in case of a channel closure.. I guess Tippin’s would claim it somehow, just because your node would think it’s on my side! But not sure…

Anyway, I just sent you 10k sats to your tippin account ;)

Have a nice weekend!


Oddał mi te 10k, ale nie o to mi chodziło, tylko o to że to poważna sprawa i powinniśmy dojść gdzie one są. Poza tym uważam z tego co wiem jak funkcjonuje LN że to jednak tippin dostał te środki i doradziłem mu żeby nie szukał po samym hashu, ale sprawdził w logach po tej transakcji na 50k czy nie ma kolejnej na 10k zaraz po niej. Ci teraz się między sobą spierają ANCIQ pisze że LND nie powinien przyjąć dwóch takich samych invoce a LND piszą że ANCIQ nie powinien pozwolić na wysłanie dwóch takich samych invoce!!! :DDD Ch... z tym, oba węzły powinny to poprawić, ale do cholery gdzie te środki? :D To mnie zastanawia. Ja uważam że one są u tippina, bo z tego co wiem to środki nie idą po kolei jeden kanał, po tym drugi kanał, trzeci i tak dalej aż do celu, tylko wszystkie kanały jednocześnie wysyłaja środki. Tak zbudowane jest LN, żeby z powodu jakiejś awarii po drodze w trakcie transakcji BTC nie utkwiły w środku drogi. Albo wszystkie kanały wysyłają, albo żaden, to dpodstawa działania LN. Nie instnieje możliwość że jakiś węzeł pośredniczący odbierze środki, ale nie wyśle ich dalej. To przecież podstawy funkcjonowania LN i tak było tworzone. Inaczej to by wiecznie środki nie dochodziły do celu, albo właściciele hubów by je sobie kradli nie przesyłając ich dalej.

Ten oddał mi środki z własnej kieszeni (choć jestem pewien że po prostu je dostał na swój hub. W końcu on ma jeden hub i ileś kanałów i wszystkie środki do tippina lecą na jeden hub a jedynie on w zwykłej bazie danych przypisuje odpowiednie wartości użytkownikom. Tak samo jak na zapread, tu nie ma osobnych kont, jak przesyłamy wewnątrz zapread sobie środki to nie ma żadnych transakcji LN, tylko w bazie skaczą pomiędzy nami. Już mi nie odpisał, tylko życzył miłego weekendu i myśli że jak oddał mi nędzne 10k to sprawa załatwiona a mnie to kur... męczy.

Podsumowując, to uważam że to jednak błąd tippina, bo na 100% on ma te środki a nie utkwiły one gdzieś po drodze. Tak działa LN z resztą dostałem dwa potwierdzenia że doszły do celu.  On to olał jak na razie, zobaczymy czy pociągnie tą sprawę i czy odpisze.

Ja was jednak przestrzegam przed tippinem, żebyście uważali i nie wysyłali dwa razy środków na tym samym invoce. Ktoś wyśle więcej, straci a ten powie że nie dostał i wam nie odda. Jak oleje temat to opiszę to dokładnie na reddicie. On tam ma konto i to tam opisywał ten projekt, nawet zrobił bota do tipowania na reddicie użytkowników za pomocą tego tippina. Zobaczymy czy pociągnie temat, nie podoba mi się że stwierdził, że to nie błąd u niego i oddał mi środki z własnej kieszeni zamykając temat.