57 / 736TOWER

Lightning Watchtower

Watchtower — delegowany nadzór nad kanałem

Gdy twój węzeł Lightning jest offline, ktoś nadal powinien pilnować, czy druga strona nie zamyka kanału według już odwołanego podziału środków. Lightning Watchtower może wykryć taką próbę i zareagować na podstawie danych otrzymanych wcześniej.

Lightning Watchtower to usługa monitorująca łańcuch Bitcoina w imieniu użytkownika kanału płatniczego. Gdy druga strona opublikuje odwołany stan, może wysłać przygotowaną transakcję odzyskania środków. Pomaga to podczas awarii węzła, ale wymaga prawidłowych danych, łączności i potwierdzenia reakcji na czas. Węzeł to program, który zarządza kanałami i przetwarza płatności Lightning; bez połączenia nie może wymieniać danych z innymi uczestnikami.

Anna i Paweł mają kanał płatniczy: środki są wspólnie zablokowane w Bitcoinie, a płatności Lightning zmieniają ich podział. Paweł płaci Annie, oboje uzgadniają nowe salda i odwołują poprzedni stan. Potem Anna traci internet. Gdyby Paweł opublikował stary stan, mógłby próbować odzyskać już wydane pieniądze. Na taki wypadek Anna może korzystać z Lightning Watchtower. Jej węzeł wcześniej przesyła mu zaszyfrowane dane do ochrony odwołanych stanów. Kiedy usługa rozpozna odpowiednią transakcję w łańcuchu, może wysłać transakcję odzyskania środków bez połączenia z Anną. Nie dokonuje za nią płatności ani nie naprawia jej węzła. [1] [8]

Każdy uzgodniony podział środków ma swoją commitment transaction — podpisaną transakcję pozwalającą zamknąć kanał w łańcuchu Bitcoina. Przy aktualizacji uczestnicy wymieniają dane umożliwiające ukaranie publikacji poprzedniego, odwołanego stanu. Opisujemy tutaj właśnie ten model kanału z mechanizmem kary. Jeśli Paweł użyje aktualnego, prawidłowego stanu, może jednostronnie zamknąć kanał także podczas nieobecności Anny. Watchtower nie ma tego blokować. Reaguje na konkretny odwołany stan, niezależnie od tego, czy Paweł opublikował go celowo, czy przez pomyłkę ze starej kopii. Liczy się odwołanie stanu, a nie wiek transakcji. [1] [8]

Seed Phrase to kopia zapasowa w postaci słów, z której można odtworzyć klucze prywatne potrzebne do podpisywania płatności. LND jest jednym z programów do uruchamiania węzła Lightning. Anna nie przekazuje usłudze Seed Phrase ani kluczy prywatnych całego portfela. Dostarcza ograniczone dane i podpisy potrzebne do konkretnej reakcji; w LND taki pakiet nazywa się JusticeKit. Transakcja odzyskania środków, określana jako justice transaction, zwraca chronione fundusze na wcześniej przygotowanych warunkach. Nie daje to Watchtowerowi swobody wydawania innych monet Anny. W modelu bez wynagrodzenia dla usługi od chronionej kwoty odejmuje się opłatę za transakcję bitcoinową. Kod przewiduje też typy z wynagrodzeniem dla wieży, ale samo ich istnienie nie dowodzi, że dany operator oferuje płatną usługę. [3] [4] [5]

Aby Watchtower mógł pomóc, musi faktycznie otrzymać potrzebne dane. Samo wpisanie adresu w ustawieniach lub zadanie oczekujące w kolejce wysyłki nie wystarczy. Klient, czyli część węzła Anny komunikująca się z wieżą, musi otrzymywać potwierdzenia odbioru aktualizacji. Łączność może zawieść, umowa przechowywania zwana session może wyczerpać pojemność albo kopia może zostać odrzucona. Dlatego Anna powinna też śledzić niedostarczone aktualizacje i błędy. Nawet przyjęte dane nie gwarantują sukcesu: wieża musi nadal obserwować właściwy łańcuch, a jej reakcja musi na czas uzyskać potwierdzenie w bloku. [6] [8]

Jeśli Anna zgubi urządzenie, nie odtworzy go z Watchtowera. Usługa pilnuje nadużyć związanych z odwołanymi stanami, ale nie odtwarza portfela i nie pomaga na kradzież kluczy. LND do odzyskiwania kanałów używa Static Channel Backup (SCB). Wraz z seedem portfela pomaga odzyskać środki przez zamknięcie kanałów, zamiast wznowić pracę dokładnie od ostatniego stanu węzła. SCB nie jest kopią każdej aktualizacji ani zaszyfrowanym pakietem dla wieży. Szczególnie niebezpieczne jest uruchomienie starej bazy channel.db bez prawidłowej procedury odzyskiwania: węzeł mógłby opublikować własny odwołany stan. Przygotowuj kopie zgodnie z dokumentacją konkretnego portfela i jego wersji. [7]

Wyjście transakcji określa kwotę oraz warunki, na jakich można ją wydać. Ochrona działa dzięki temu, że osoba publikująca swój stan kanału nie może od razu wydać swojego opóźnionego wyjścia. W BOLT 3 wyjście to nazywa się to_local, a czas oczekiwania — to_self_delay. CSV jest regułą mierzącą to opóźnienie w blokach od potwierdzenia wyjścia. Druga strona może skorzystać ze ścieżki kary bez czekania, jeśli ma właściwy klucz odwołania. Watchtower zyskuje więc czasową przewagę. Po upływie opóźnienia ścieżka kary nie znika, lecz środki może już wydać również druga strona. Wynik zależy od tego, która ze sprzecznych transakcji uzyska prawidłowe potwierdzenie. Samo rozgłoszenie transakcji odzyskania nie wystarcza, a liczba bloków nie oznacza dokładnej liczby godzin. [1] [9]

Przed wyborem usługi ustal, co rzeczywiście chroni. HTLC to płatności warunkowe, które mogą jeszcze oczekiwać w kanale; monitorowanie sald nie dowodzi ich ochrony. Dust oznacza tu wyjście zbyt małe, by znalazło się w danej transakcji. Zweryfikowany backupTask w LND v0.21.3-beta przygotowuje istniejące wyjścia to_local i to_remote odwołanej transakcji commitment, które nie są dust. Nie obejmuje ogólnej ochrony wszystkich wyjść HTLC; odpowiednia dokumentacja wskazuje ją jako przyszłe rozszerzenie. Bitcoin Script to język opisujący warunki wydania wyjścia. Możliwość wydania wyjścia ścieżką karną nie oznacza jeszcze, że konkretna wieża otrzymała potrzebne dane i potrafi zapewnić taką ochronę. [3] [5]

Zaszyfrowany pakiet nie wymaga, by wieża stale odczytywała wszystkie salda Anny. Szuka dopasowania za pomocą krótkiego znacznika, a do odszyfrowania wykorzystuje informacje z rozpoznanej transakcji. Poniżej znajduje się opis techniczny konkretnej wersji LND; txid oznacza identyfikator transakcji, a blob pakiet danych. W LND v0.21.3-beta BreachHint to pierwsze 16 bajtów SHA-256 binarnego txid. BreachKey powstaje przez obliczenie SHA-256 z połączenia tego samego binarnego txid dwukrotnie, jedno po drugim. Nie chodzi o pierwsze 16 znaków wyświetlanego txid ani po prostu jego pierwszą połowę. Klient szyfruje JusticeKit; znajomość odpowiedniej transakcji pozwala wyprowadzić klucz i odszyfrować dane. [2] [3]

Uruchomienie wieży dla innych i zlecenie ochrony własnych kanałów to różne zadania. Te ustawienia dotyczą operatorów LND; RPC to interfejs, przez który program otrzymuje polecenia. LND oddziela watchtower.active dla serwera od wtclient.active dla klienta. Samo włączenie serwera nie konfiguruje kopii własnych kanałów u innej wieży. lncli tower info pokazuje pubkey, listeners i uris serwera; lncli wtclient add rejestruje wieżę dla klienta. Klucz publiczny wieży różni się od klucza węzła Lightning. Sprawdź sieć, dostępność adresu i obsługę RPC w używanej kompilacji. [5]

Reakcja musi opłacić miejsce w bloku Bitcoina. Satoshi to najmniejsza jednostka bitcoina. Wirtualny bajt mierzy rozmiar transakcji, uwzględniając różną wagę jej części. Stawka oznacza satoshi za wirtualny bajt transakcji, nie procent chronionych pieniędzy. W LND v0.21.3-beta pole sweep_sat_per_vbyte w polityce i sesji podaje stawkę w sat/vB. Opłata zmniejsza zwracaną kwotę. backupTask może odrzucić stan o zbyt małej wartości lub nieodpowiednich parametrach sesji; nie każde przygotowane zadanie jest kopią, którą można wykorzystać do ochrony. Późniejsza zmiana ustawień nie dowodzi zmiany wcześniej podpisanych transakcji, a niewystarczająca stawka może opóźnić interwencję. [3] [6]

Druga wieża pomoże przy awarii pierwszej tylko wtedy, gdy sama otrzymała potrzebne dane. Niezależność dotyczy także połączenia i operatora, nie tylko nazwy usługi. Kilka niezależnych wież i własny monitoring mogą ograniczyć skutki pojedynczej awarii. Sprawdź jednak, które konkretne aktualizacje przyjęła każda wieża; kilka zarejestrowanych adresów samo w sobie nie dowodzi replikacji wszystkich stanów. Oddzielne maszyny, sieci i lokalizacje zmniejszają ryzyko wspólnych awarii. Zaszyfrowane bloby i uwierzytelnione połączenia ograniczają widoczność sald, ale nie usuwają metadanych, widoczności częstotliwości aktualizacji ani ryzyka korelacji. [5] [8]

Podczas kontroli odróżniaj aktualizację wysłaną od rzeczywiście odebranej. Te polecenia i pola stanowią dokładniejszą pomoc dla administratorów LND; potwierdzenie odbioru kopii nie jest potwierdzeniem transakcji w bloku. Użyj lncli wtclient towers, lncli wtclient tower, lncli wtclient stats i lncli wtclient policy. W LND v0.21.3-beta odróżniaj num_backups od num_pending_backups; drugie pole oznacza kopie oczekujące na potwierdzenie wieży. num_failed_backups w odpowiedzi stats zlicza niepotwierdzone nieudane kopie. Statystyki obejmują okres od uruchomienia klienta. active_session_candidate oznacza kandydata do sesji, a nie dowód pełnej ochrony. [6]

Prawidłowa konfiguracja to początek. Test powinien obejmować cały przebieg od wykrycia odwołanego stanu po odzyskanie chronionych środków; nie przeprowadzaj go na prawdziwych pieniądzach. Sprawdzaj konkretne wydanie klienta i wieży, obsługiwany typ kanału i sesji, aktualność danych, opłaty i synchronizację z łańcuchem. Funkcjonalny test reakcji przeprowadzaj w odizolowanym środowisku testowym; zwykłe jednostronne zamknięcie (force close) nie dowodzi interwencji przeciw odwołanemu stanowi. Wynik potwierdzają publikacja odwołanego stanu (breach), zbudowana justice transaction i jej potwierdzone wyjścia. Udana demonstracja nie gwarantuje przyszłej dostępności ani usunięcia wszystkich ryzyk Lightning. [1] [3] [6]

Pełniejszy obraz uzyskasz, czytając to hasło razem z Lightning Network, Payment Channel, Samodzielne przechowywanie bitcoinów. Do tego hasła prowadzą również odsyłacze z Payment Channel.

DOC · 001BOLT 3 — Revocation and delayed outputsSpecyfikacja DOC · 002LND v0.21.3-beta — Breach hint and key derivationDokumentacja DOC · 003LND v0.21.3-beta — Watchtower backup taskDokumentacja DOC · 004LND v0.21.3-beta — Watchtower blob typesDokumentacja DOC · 005LND v0.21.3-beta — Watchtower configurationDokumentacja DOC · 006LND v0.21.3-beta — Watchtower client RPCDokumentacja DOC · 007LND v0.21.3-beta — Recovery and static backupsDokumentacja DOC · 008Lightning Labs — Watchtower operationDokumentacja DOC · 009BIP 112 — CHECKSEQUENCEVERIFYSpecyfikacja
Zaktualizowano: Najpierw źródła · To nie jest porada inwestycyjna