Boltz to usługa i otwarte oprogramowanie do wymiany między Bitcoinem, Lightning i innymi obsługiwanymi sieciami. Taka wymiana nazywa się swapem. Możesz na przykład wysłać bitcoiny ze zwykłego portfela, a po drugiej stronie otrzymać płatność przez Lightning, sieć szybkich płatności bitcoinowych. To nie samo wyjście transakcji Bitcoin przenosi się do innego środowiska: obie strony łączą transakcje warunkowe. Stąd nazwa Atomic Swap — wymiana, której części wiążą warunki kryptograficzne. Nie oznacza to jednak, że wszystko zakończy się samo. Liczą się także poprawne działanie aplikacji, zachowane klucze i terminowe rozgłoszenie transakcji. Boltz służy do transferu, a nie jako konto do przechowywania wieloletnich oszczędności.
Zacznij od kierunku. Jeśli masz bitcoiny na głównym łańcuchu i chcesz zasilić portfel Lightning, używasz Submarine Swap: płacisz on-chain, czyli transakcją zapisywaną w blockchainie, i otrzymujesz płatność przez Lightning. Reverse Swap działa odwrotnie. Opłacasz fakturę Lightning, żądanie płatności zawierające potrzebne dane, i uzyskujesz możliwość odebrania środków na łańcuchu. Chain Swap łączy dwa łańcuchy, na przykład Bitcoin i Liquid. Przy dwóch ostatnich rodzajach aplikacja musi rozgłosić claim, transakcję rzeczywiście odbierającą środki. Samo zapłacenie nie kończy więc twojej części zadania. Na Liquid otrzymujesz ponadto L-BTC, aktywo tej odrębnej sieci, a nie zwykłe wyjście transakcji głównego łańcucha Bitcoin. Przed potwierdzeniem sprawdź również sieć docelową. [1]
Wyobraź sobie, że serwer podaje adres i kwotę do zapłaty. Bez dalszej kontroli po prostu ufasz, że zgadzają się z ustalonym swapem. Klient Boltz, czyli aplikacja na twoim urządzeniu, powinien sam obliczyć kwotę i sprawdzić hash płatności z faktury Lightning. Hash to obliczony odcisk, który wiąże płatność z właściwą wymianą. Aplikacja kontroluje też adres i skrypt — warunki określające, kto i kiedy może wydać środki. W Taproot, sposobie budowania wyjścia Bitcoin, obejmuje to klucze i drzewo skryptów porządkujące możliwe warunki wydania. Nie musisz liczyć tego ręcznie; ważny jest klient, który rzeczywiście wykonuje kontrole. Otwarty kod boltz-web-app pozwala go zbadać, lecz sam nie dowodzi poprawności innej integracji ani aplikacji właśnie wczytanej w przeglądarce. [5] [9]
Adres swapu nie jest kontem, na którym stopniowo zbierasz potrzebną sumę. Dokumentacja Boltz wymaga jednej transakcji lockup, początkowego przelewu blokującego środki według zasad wymiany. Kolejne płatności na ten sam adres nie są dodawane; do swapu służy tylko pierwsza. Jeśli omyłkowo wyślesz za mało, nie przelewaj automatycznie różnicy. W Chain Swap klient może zamiast zwrotu zaproponować nową wycenę na podstawie otrzymanej kwoty. Musi jednak zostać dość czasu, kwota musi mieścić się w limitach i nie może istnieć podpis refund, czyli zwrotu. Znaczenie mają też dostępne środki usługi. To konkretny sposób naprawy źle sfinansowanego Chain Swap, a nie ogólna możliwość dopłacania do każdego nieudanego transferu. [2] [8]
Porównując koszty, prześledź całą drogę, nie tylko reklamowany procent. Boltz pobiera opłatę za usługę, a transakcje na poszczególnych łańcuchach mają własne koszty. W Reverse Swap techniczne pole onchainAmount oznacza kwotę blokowaną dla ciebie przez Boltz po uwzględnieniu jego opłaty lockup. To jeszcze nie kwota netto w portfelu, bo zapłacisz za własny claim, czyli transakcję odbierającą środki. Przy Chain Swap płacisz również za początkową transakcję wysyłającą. Porównuj więc całkowity wydatek z końcowym wpływem. Stawki, minima i limity dotyczą konkretnego kierunku i pary sieci, a warunki sieciowe mogą je zmieniać. Stary przykład reklamowy nie jest aktualną ofertą. [6]
Jeśli Submarine Swap albo Chain Swap zawiedzie po wysłaniu środków, odzyskanie ich może wymagać twojej własnej transakcji. Potrzebujesz klucza refund i zachowanych danych swapu. Przy Taproot współpracujący Boltz może umożliwić szybszy key path refund: wspólnie podpisany zwrot bez czekania na warunek czasowy. Gdy współpracy nie ma, script path pozwala zwrócić środki według ustalonego wcześniej skryptu po spełnieniu timelocku, ograniczenia czasowego zapisanego w regułach transakcji. Sama ta możliwość niczego nie rozgłasza; musi to zrobić klient. Inny przypadek to anulowanie nierozliczonej jeszcze płatności Lightning w Reverse Swap, które odblokowuje oczekujące środki. Nie wynika z tego automatyczny zwrot po każdej awarii aplikacji lub nieodebraniu środków na czas. [3]
W Reverse Swap rozliczenie płatności Lightning i odebranie środków na łańcuchu to różne zdarzenia. Stan invoice.settled może oznaczać, że Boltz poznał preimage — tajną wartość pozwalającą zakończyć płatność powiązaną z jej hashem. Serwer nie śledzi, czy aplikacja następnie rzeczywiście rozgłosiła claim. Klient musi więc sprawdzić własne wyjście, środki przeznaczone dla ciebie, i odebrać je przed timeoutem, granicą, po której druga strona może je odzyskać. Zamknięta aplikacja, utracone dane lub zbyt niska opłata transakcyjna mogą utrudnić zakończenie. Powiadomienie w telefonie może obudzić aplikację, ale nie zastępuje wysłanej transakcji. Oceniaj wynik po rzeczywistym odbiorze, nie tylko zielonym komunikacie o sukcesie. [1] [2]
Zwykła kopia portfela może nie zawierać wszystkiego, czego potrzebuje niedokończony swap. Boltz Rescue Key to zestaw słów zapasowych dla obsługiwanego sposobu odzyskiwania. Swap Restore odtwarza z niego zgodne swapy UTXO, wykorzystujące pojedyncze niewydane wyjścia transakcji. Klient wyprowadza xpub, rozszerzony klucz publiczny do odnalezienia powiązanych swapów, oraz odpowiednie klucze prywatne. Claim wymaga też poprawnego odzyskania preimage. Dowolny seed, początkowy sekret innej aplikacji, nie nadaje się więc automatycznie: muszą zgadzać się metoda wyprowadzania i format odzyskiwania. Klucze prywatne pozostają na urządzeniu. Wysłany xpub nie pozwala wydawać środków, ale ujawnia historię swapów serwerowi Boltz. Zachowaj zatem również dane konkretnego klienta i ewentualne starsze pliki refund, obok zwykłej kopii portfela. [4] [2]
Transakcja może pojawić się w sieci, zanim trafi do bloku. Jej przyjęcie na tym etapie określa się jako 0-conf, bez potwierdzeń. Według dokumentacji Boltz nie przyjmuje takich wpłat użytkowników na głównym łańcuchu Bitcoin ze względu na upowszechnienie full-RBF. Te reguły pozwalają w określonych warunkach zastąpić niepotwierdzoną transakcję inną, z wyższą opłatą, nawet bez wcześniejszego zasygnalizowania tej możliwości. W Reverse Swap ryzyko przyjęcia niepotwierdzonej transakcji spoczywa natomiast na odbiorcy. Zasad jednej pary sieci nie można przenosić na wszystkie pozostałe. Dostępna dokumentacja nie dowodzi też, że usługa ma właśnie dość środków na twój transfer. Przed zapłatą sprawdź aktualne parametry, czas na zakończenie i stan konkretnego swapu. [7] [6]
Pełniejszy obraz uzyskasz, czytając to hasło razem z Samodzielne przechowywanie bitcoinów, Submarine Swap, Lightning Network, Timelock. Do tego hasła prowadzą również odsyłacze z Bull Bitcoin.