Silent Payments pozwalają odbierać bitcoiny za pomocą jednego identyfikatora wielokrotnego użytku, bez kierowania każdej płatności na ten sam publicznie śledzony adres. Portfel to aplikacja lub urządzenie do odbierania i wysyłania bitcoinów. Portfel nadawcy oblicza nowy cel płatności, a portfel odbiorcy później rozpoznaje go w łańcuchu. Procedurę opisuje BIP352. Odbiorca nie musi być online ani przekazywać nowego adresu przed każdą płatnością.
Gdy Bob umieści zwykły adres Bitcoin na stronie, każdy może obserwować wpływy w eksploratorze. Eksplorator bloków to aplikacja do wyszukiwania transakcji i bloków w danej sieci. Lepiej dawać każdemu nowy adres, ale ktoś musi je dostarczać. Silent Payments rozwiązują ten problem: Bob publikuje stałe dane, a Alicja tworzy na ich podstawie wyjście dla konkretnej płatności, czyli zapis kwoty i warunku jej późniejszego wydania. Publiczny kontakt nie powtarza się więc w łańcuchu jako ten sam adres odbiorczy. [1] [3] [9] [7]
Adres Silent Payments zawiera publiczny scan key i publiczny spend key. Klucz prywatny jest tajną wartością liczbową; odpowiadający mu klucz publiczny można udostępniać innym. Nazwy wskazują ich role: scan key wiąże się z wyszukiwaniem płatności, a spend key z ich wydawaniem. Odpowiadające im klucze prywatne pozostają u Boba. W mainnet, głównej sieci Bitcoin, zaczyna się od sp1 i używa Bech32m. Nie jest zwykłym adresem Taproot zaczynającym się od bc1p ani kopią zapasową portfela. Publiczna para pozwala zgodnemu nadawcy obliczyć cel płatności, ale nie daje prawa wydawania ani listy wpływów Boba. [1] [5] [9]
Aby zapłacić Bobowi, portfel Alicji wybiera wcześniej otrzymane kwoty. Odwołania do nich tworzą wejścia nowej transakcji. Cel oblicza się przy użyciu kluczy tych wejść, które spełniają reguły BIP352; nie każdy typ wejścia się nadaje. Alicja łączy ich klucze prywatne z publicznym scan key Boba za pomocą ECDH. Ta metoda kryptograficzna pozwala obu stronom niezależnie uzyskać ten sam sekret bez przesyłania sobie kluczy prywatnych. Na jego podstawie, z uwzględnieniem konkretnych wejść, portfel modyfikuje publiczny spend key Boba i otrzymuje klucz nowego wyjścia. Powiązanie z wejściami zapobiega ponownemu użyciu celu, gdy klucz wejścia jest używany kolejny raz. Jeśli Alicja zastosuje RBF, czyli zastąpi niepotwierdzoną transakcję, na przykład żeby podnieść opłatę, i zmieni wejścia, portfel musi ponownie obliczyć cel. Nie może po prostu użyć starego wyniku. [1] [4]
Portfel Boba skanuje odpowiednie transakcje i oblicza możliwe wyjścia za pomocą jego prywatnego scan key i publicznych danych wejść. Po znalezieniu zgodności zalicza wyjście do jego środków. W łańcuchu jest to wyjście Taproot bez specjalnego powiadomienia. Bob nie musi być online podczas wysyłania ani wcześniej odpowiadać Alicji, ale jego portfel musi później przetworzyć potrzebne dane. [1] [6]
Scan key służy do wyszukiwania, a spend key wraz z wyprowadzonymi danymi pozwala wydawać środki. Prywatny spend key można trzymać oddzielnie od skanera online. Wyciek samego prywatnego scan key nie pozwala kraść, lecz z publicznymi danymi może ujawnić wpływy. Przekazanie go obcemu serwerowi skanującemu ma zatem skutki dla prywatności. Seeda ani prywatnego spend key nie wysyła się na taki serwer. [1]
Silent Payments nie potrzebują osobnej transakcji powiadamiającej, ale obliczenia i transmisja danych kosztują zasoby. Odbiorca analizuje odpowiednie transakcje i wykonuje opisane obliczenia kryptograficzne. Na telefonie liczą się indeksowanie, źródło danych i czas od ostatniego skanu. Zwykła lista adresów nie wystarczy. Węzeł to program, który sprawdza transakcje i bloki oraz wymienia dane z innymi uczestnikami sieci. Własny węzeł i zewnętrzny dostawca mają różne wymagania i konsekwencje dla prywatności oraz dostępności. [1] [2] [8]
Bob może używać labels, czyli wyprowadzonych wariantów płatności, na przykład dla różnych projektów. Nie musi wykonywać w pełni osobnego skanowania dla każdego wariantu. Publiczne warianty mają jednak wspólny scan key, więc obserwator może poznać ich wspólnego właściciela. Etykieta pomaga Bobowi przypisać wpływ, a nie tworzy oddzielnej anonimowej tożsamości. Specjalna etykieta reszty oznacza pozostałość z własnej płatności Boba. Jeśli wydaje wcześniej otrzymaną kwotę większą niż płatność wraz z opłatą, pozostała część wraca do jego portfela. Nie chodzi o zwrot od sprzedawcy. BIP352 rezerwuje do tego etykietę m = 0. Podczas odzyskiwania portfel zawsze jej szuka i nie może publikować jej jako kontaktu do płatności od innych osób. [1] [4]
Wyobraźmy sobie, że Bob zgubił telefon, lecz zachował kopię zapasową. Seed to tajna wartość początkowa, z której portfel wyprowadza klucze; użytkownik zwykle zabezpiecza ją poprzez Seed Phrase, słowa do odzyskiwania w ustalonej kolejności. Same słowa nie oznaczają jednak, że dowolna aplikacja odnajdzie Silent Payments. Musi obsługiwać ten sam sposób wyprowadzania kluczy i wyszukiwanie takich płatności. Kopia używanych labels oraz data rozpoczęcia korzystania z portfela ułatwiają odzyskiwanie. Bieżące środki można znaleźć, skanując potrzebne dane transakcji z pozostałymi UTXO: osobno otrzymanymi kwotami, których jeszcze nie wydano. Odtworzenie pełnej historii wymaga szerszego przeglądu łańcucha. Pusty ekran przed końcem skanowania nie musi więc oznaczać utraty pieniędzy. [1]
Silent Payments ograniczają łączenie płatności przez powtórzony adres, ale nie ukrywają kwot, czasu potwierdzenia ani historii wydawanych wejść. Alicja zna własną płatność dla Boba, a zamówienie może zawierać dane osobowe. Jeśli Bob później połączy kilka UTXO w jednej transakcji, może ujawnić ich związek. Silent Payments to nie CoinJoin, a połączenie nie jest automatycznie bezpieczne: BIP352 wskazuje brak formalnego dowodu dla współpracujących niezależnych nadawców. [1] [3]
BIP352 wymienia autorów josibake, Ruben Somsen i Sebastian Falbesoner; numer nadano w 2023 roku. Przy sprawdzeniu 17 października 2026 roku status to Complete. Nie oznacza to obsługi we wszystkich portfelach: wysyłanie, odbieranie, skanowanie i odzyskiwanie trzeba sprawdzić oddzielnie. Protokół używa istniejącego Taproot i nie wymaga nowego Soft Fork, czyli przyjętego przez sieć zaostrzenia reguł ważności transakcji i bloków. Starsze aplikacje bez obsługi nie przetworzą poprawnie adresu sp1. [1] [2]
Pełniejszy obraz uzyskasz, czytając to hasło razem z Prywatność w Bitcoinie, Pseudonimowość, Taproot, CoinJoin, Replace-by-Fee (RBF), UTXO. Do tego hasła prowadzą również odsyłacze z Prywatność w Bitcoinie, Transaction Labeling.