Czym jest klucz xPub? Krótka odpowiedź
Klucz xPub (rozszerzony klucz publiczny) to klucz publiczny plus kod łańcucha, z których można wyprowadzić nieograniczoną sekwencję adresów Bitcoin, nie ujawniając przy tym nigdy klucza prywatnego. Procesor płatności używa twojego xPub, aby generować świeży adres dla każdego zamówienia i wypatrywać przychodzących środków, będąc przy tym matematycznie niezdolnym do wydania czegokolwiek. Dokładnie to umożliwia niepowiernicze płatności krypto.
Problem, który płatności niepowiernicze musiały rozwiązać
Gdy przyjmujesz płatności kartą, procesor zajmuje się wszystkim: trzyma dane uwierzytelniające, generuje tokeny i przemieszcza pieniądze. Ufasz mu. W krypto cały sens polega na tym, że nie musisz ufać nikomu. To jednak rodzi oczywiste pytanie: skoro twój procesor płatności nigdy nie dotyka twoich kluczy prywatnych, skąd wie, które adresy obserwować pod kątem przychodzących płatności?
Odpowiedzią jest rozszerzony klucz publiczny, powszechnie nazywany kluczem xPub. To jedno z najważniejszych pojęć w Bitcoinie, a poza kręgami deweloperów prawie nikt nie wie o jego istnieniu.
Co robi zwykły klucz publiczny
W Bitcoinie każdy adres portfela jest wyprowadzany z klucza prywatnego. Klucz prywatny jest tajny: to on pozwala wydawać środki. Klucz publiczny jest wyprowadzany z klucza prywatnego przy użyciu kryptografii krzywych eliptycznych. Można go bezpiecznie udostępniać, bo nie jest znana żadna matematyczna droga prowadząca od klucza publicznego z powrotem do prywatnego.
Standardowy adres Bitcoin to w istocie zahaszowana wersja klucza publicznego. Udostępniasz adres, otrzymujesz środki. Proste. Ale jeśli masz tylko jeden klucz publiczny, masz tylko jeden adres, a używanie tego samego adresu do każdej płatności jest fatalne dla prywatności i czyni twoją historię transakcji całkowicie publiczną.
Czym jest klucz xPub
Rozszerzony klucz publiczny (xPub) to klucz publiczny plus dodatkowa porcja danych zwana kodem łańcucha. Razem tworzą klucz nadrzędny, który potrafi matematycznie wyprowadzić praktycznie nieograniczoną sekwencję potomnych kluczy publicznych, a więc i praktycznie nieograniczoną sekwencję potomnych adresów.
Nie potrzebujesz do tego klucza prywatnego. Sam xPub wystarcza, aby wygenerować każdy adres w sekwencji. To kluczowa idea BIP32, propozycji ulepszenia Bitcoina, która w 2012 roku zdefiniowała portfele hierarchiczno-deterministyczne.
xPub pozwala każdemu generować twoje adresy odbiorcze, nie dając nigdy możliwości wydania twoich środków.
Klucz xPub wygląda tak:
xpub6CUGRUonZSQ4TWtTMmzXdrXDtypWKiKrhko4egpiMZbpiaQL2jkwSB1icqYh2cfDfVxdx4df189oLKnC5fSwqPfgyP3hooxujYzAu3fDVmz
To długi ciąg zakodowany w base58. Każdy, kto go ma, może obserwować twoje przychodzące transakcje. Nikt, kto go ma, nie może ruszyć twoich pieniędzy.
Jak działa derywacja adresów potomnych
Zaczynając od xPub, portfel wyprowadza adresy potomne według deterministycznej formuły zdefiniowanej w BIP32. Podajesz indeks: 0, 1, 2, 3 i tak dalej, a algorytm produkuje unikalny klucz publiczny dla każdego z nich. Ten klucz odpowiada unikalnemu adresowi Bitcoin.
Ścieżka derywacji wygląda tak:
m / purpose' / coin_type' / account' / change / index
Dla typowego adresu odbiorczego Bitcoin według BIP44:
m/44'/0'/0'/0/0 → pierwszy adres odbiorczy
m/44'/0'/0'/0/1 → drugi adres odbiorczy
m/44'/0'/0'/0/2 → trzeci adres odbiorczy
Apostrofy oznaczają derywację utwardzoną (hardened): te kroki wymagają klucza prywatnego i służą do rozdzielania kont. Dwa ostatnie segmenty (change i index) używają wyłącznie xPub i właśnie dlatego procesor może wygenerować każdy potrzebny adres odbiorczy, dysponując niczym więcej niż kluczem tylko do odczytu.
Dlaczego to przydatne dla sprzedawców
Gdy podłączasz procesor płatności krypto do swojego portfela za pomocą klucza xPub, dzieje się następująco:
- Eksportujesz xPub ze swojego portfela (sprzętowego lub programowego) i wklejasz go w procesorze.
- Dla każdego nowego zamówienia procesor wyprowadza kolejny nieużywany adres w sekwencji.
- Procesor monitoruje te adresy pod kątem przychodzących transakcji.
- Gdy płatność dociera, powiadamia twój serwer webhookiem.
- Środki lądują bezpośrednio w twoim portfelu: procesor nigdy ich nie trzymał.
Procesor w żadnym momencie nie ma najmniejszej możliwości ruszenia twoich środków. Może tylko patrzeć. To właśnie znaczy niepowierniczy w praktyce: nie mglista obietnica, lecz konkretna techniczna gwarancja oparta na architekturze xPub. Z tego samego powodu zasada nie twoje klucze, nie twoje monety działa tu na twoją korzyść, a nie przeciwko tobie.
xPub vs klucz prywatny vs fraza seed
| Typ klucza | Może odbierać | Może wydawać | Można bezpiecznie dać procesorowi |
|---|---|---|---|
| xPub (rozszerzony klucz publiczny) | Tak | Nie | Tak |
| Pojedynczy adres publiczny | Tylko jeden adres | Nie | Tak, ale powiela jeden adres |
| Klucz prywatny | Tak | Tak | Nigdy |
| Fraza seed | Tak | Tak (cały portfel) | Nigdy |
Prywatność: dlaczego świeże adresy mają znaczenie
Blockchain Bitcoina jest w pełni publiczny. Jeśli wielokrotnie używasz jednego adresu, każda otrzymana przez ciebie płatność jest widoczna dla każdego, kto zna twój adres. Dostawcy, klienci i konkurenci widzą twoje przychody. Ponowne używanie adresów to jeden z najczęstszych błędów prywatności w krypto.
Ponieważ portfele oparte na xPub generują nowy adres dla każdej transakcji, każda płatność jest odizolowana. Powiązanie ich ze sobą wymaga analizy łańcucha, co jest możliwe, ale znacznie trudniejsze i poza zasięgiem przypadkowych obserwatorów.
Czego nie należy udostępniać
Klucz xPub to nie to samo co klucz prywatny, ale nie jest też całkiem niegroźny:
- Udostępniaj: swój xPub procesorowi płatności. Po to właśnie istnieje.
- Nie udostępniaj: swojego xPub publicznie. Ktoś, kto ma twój xPub, widzi każdy adres, jaki masz wygenerowany i jaki kiedykolwiek wygenerujesz, co łączy wszystkie twoje transakcje w całość.
- Nigdy nie udostępniaj: frazy seed ani klucza prywatnego. Nigdy. Nikomu.
xPub to widok przestrzeni adresowej twojego portfela w trybie tylko do odczytu. Traktuj go jak poświadczenie do bazy danych tylko do odczytu: można je przekazać systemowi, który go potrzebuje, ale nie wolno publikować go w internecie.
xPub a inne formaty kluczy rozszerzonych (ypub, zpub)
Możesz też natknąć się na klucze ypub i zpub. To ta sama koncepcja, rozszerzone klucze publiczne, ale zakodowane inaczej, aby wskazać, jakiego formatu adresów używa portfel:
- xpub: adresy legacy P2PKH (zaczynają się od 1)
- ypub: adresy SegWit opakowane w P2SH (zaczynają się od 3)
- zpub: adresy natywnego SegWit (Bech32) (zaczynają się od bc1)
Większość nowoczesnych portfeli używa dla Bitcoina zpub i domyślnie wystawia adresy natywnego SegWit. Jeśli twój procesor płatności prosi o xpub, a portfel eksportuje zpub, niektóre narzędzia potrafią je między sobą konwertować.
Sedno sprawy
Klucz xPub jest tym, co umożliwia płatności krypto bez zaufania. Oddziela zdolność odbierania środków od zdolności ich wydawania, dając infrastrukturze płatności dokładnie taki dostęp, jakiego potrzebuje, i nic ponadto. Za każdym razem, gdy sprzedawca krypto generuje świeży adres dla nowego zamówienia bez oddawania kontroli nad swoim portfelem, w tle pracuje klucz xPub.
Jeśli porównujesz procesory płatności krypto, pierwsze pytanie brzmi: czy wspierają integrację przez xPub. Jeśli nie, to trzymają twoje środki, a to zupełnie inny model ryzyka. GriffNode działa w pełni w oparciu o xPub na Shopify i WooCommerce; załóż darmowe konto, aby podłączyć swój portfel.
Najczęściej zadawane pytania
Czym jest klucz xPub w prostych słowach?
To rozszerzony klucz publiczny, który potrafi wygenerować nieograniczoną listę adresów odbiorczych twojego portfela, nie mogąc nigdy z nich wydawać. Pozwala usłudze wypatrywać twoich płatności, ale nigdy ich nie ruszać.
Czy ktoś może ukraść moje bitcoiny, mając mój xPub?
Nie. xPub może jedynie wyprowadzać adresy i obserwować transakcje. Wydawanie wymaga klucza prywatnego, którego xPub nie zawiera. Najgorsze, co może zrobić wyciek xPub, to ujawnić twoją historię transakcji.
Czy mogę bezpiecznie dać swój xPub procesorowi płatności?
Tak: to jego przewidziane zastosowanie. Procesor generuje świeże adresy odbiorcze i je monitoruje, ale nie może ruszyć twoich środków. Właśnie to czyni integrację niepowierniczą.
Czym różnią się xpub, ypub i zpub?
To ta sama koncepcja rozszerzonego klucza publicznego zakodowana dla różnych formatów adresów: xpub dla adresów legacy, ypub dla opakowanego SegWit, a zpub dla natywnego SegWit (bc1).
Jak xPub generuje nieograniczone adresy?
Łączy klucz publiczny z kodem łańcucha i podaje rosnący indeks do formuły derywacji BIP32. Każdy indeks produkuje nowy, unikalny adres, więc ich zasób jest praktycznie nieograniczony.
Gdzie znajdę swój klucz xPub?
Większość portfeli pokazuje go w szczegółach konta albo w informacjach o portfelu; na przykład Electrum wyświetla go w menu Wallet, pozycja Information. Portfele sprzętowe eksportują go przez aplikację towarzyszącą.
Powiązane materiały
- Portfele sprzętowe vs programowe: którego sprzedawca naprawdę potrzebuje.