140 / 736P2EP

Payjoin

Płatność przygotowana wspólnie z odbiorcą

Przy zwykłej płatności portfel wybiera monety nadawcy i przesyła część ich wartości odbiorcy. Payjoin zaprasza do przygotowania także drugą stronę: odbiorca dodaje własne monety do tej samej transakcji. Płatność dociera, ale obserwator samego publicznego łańcucha ma mniej wiarygodnych wskazówek co do właścicieli wejść.

Payjoin pozwala przygotować płatność Bitcoin wspólnie z odbiorcą. Obie strony dodają własne środki do jednej transakcji, ale każda zachowuje klucze prywatne i sama zatwierdza wydanie swoich pieniędzy. Obserwatorowi publicznego łańcucha trudniej wtedy odgadnąć, do kogo wcześniej należały użyte monety. Nie powstaje przy tym inna waluta ani gwarancja anonimowości.

Alicja płaci Bobowi. Portfel to aplikacja lub urządzenie do odbierania i wysyłania bitcoinów. Jej portfel nie operuje na jednym saldzie bankowym: wybiera niewydane wyjścia wcześniejszych transakcji, czyli UTXO. Każde wyjście określa kwotę i warunki jej wydania. Wejścia nowej transakcji wskazują zużywane UTXO, a nowe wyjścia przekazują środki Bobowi i ewentualną resztę Alicji. Przy zwykłej płatności tylko Alicja dostarcza środki. W Payjoin dołącza Bob ze swoim UTXO. Nadal otrzymuje uzgodnioną płatność, ale jednocześnie przenosi pieniądze, które już miał. Oba portfele muszą sprawdzić wynik. Następnie każda strona podpisem cyfrowym zatwierdza wydanie własnych wejść; kluczy prywatnych sobie nie przesyłają. Klucz prywatny to tajna wartość liczbowa służąca do utworzenia takiego podpisu. [1] [3] [8] [6]

Analityk często zakłada, że wejścia wydane wspólnie należą do jednego portfela. Tę wskazówkę nazywa się common-input-ownership heuristic. Nie jest ona regułą Bitcoina ani dowodem tożsamości, lecz wnioskiem z typowych zachowań. Payjoin tworzy poprawne transakcje, w których ten wniosek zawodzi. Obserwator nie może więc automatycznie przypisać wszystkich wejść Alicji. Nadal mogą mu jednak pomagać inne informacje. [1] [3]

Kwoty podamy w sats, najmniejszych jednostkach bitcoina. Dla przejrzystości pomińmy na chwilę opłatę. Alicja ma wejście o wartości 100 000 sats i płaci Bobowi 20 000 sats; 80 000 sats wraca do niej jako reszta. Bob dodaje własne wejście 50 000 sats, a jego wyjście rośnie do 70 000 sats. Suma wejść i suma wyjść nadal wynoszą po 150 000 sats. Bob nie dostał dodatkowego prezentu: 50 000 sats już posiadał, a przybyło mu tylko umówione 20 000 sats. Prawdziwa transakcja musi oczywiście zapłacić także opłatę. [1] [6]

Do współpracy portfele potrzebują wspólnej procedury i formatu wiadomości. BIP78, dokument techniczny Nicolasa Doriera, któremu nadano numer w 2019 roku, wykorzystuje PSBT — Partially Signed Bitcoin Transaction. To pakiet danych z transakcją i informacjami potrzebnymi do jej sprawdzenia oraz podpisania, a nie płatność już wysłana do sieci. Żądanie płatności zawiera parametr pj, czyli adres usługi, z którą portfel ma się skontaktować. Nadawca najpierw przesyła pierwotną płatność jako w pełni podpisaną i sfinalizowaną PSBT. Jest już gotowa do rozgłoszenia, mimo słowa „partially” w nazwie formatu. Odbiorca zwraca zmienioną propozycję ze swoimi dodatkowymi wejściami i ich podpisami. Nadawca ją sprawdza, ponownie podpisuje własne wejścia i rozgłasza wynikową transakcję w sieci Bitcoin. Połączenie musi być szyfrowane, a zdalna usługa uwierzytelniona. PSBT nie jest kopią zapasową portfela: nie przesyła się seeda, z którego wyprowadzane są klucze, kluczy prywatnych ani zbędnych informacji o ich wyprowadzaniu. [1] [5]

Portfel nadawcy musi sprawdzić, czy zachowano jego wejścia i chronione wyjścia, czy reszta nie została dowolnie zmniejszona i czy wkład w opłatę mieści się w dozwolonym limicie. Podpisuje tylko własne pierwotne wejścia. Protokół dopuszcza pewne zmiany wyjść odbiorcy na ściśle określonych warunkach, a nie dowolne przekierowanie całej płatności. Na urządzeniu podpisującym trzeba rozumieć pokazane kwoty, nie tylko zatwierdzać kolejny ekran. [1] [5]

Dodatkowe wejście zajmuje miejsce i może podnieść bezwzględną opłatę za daną płatność. Portfele uzgadniają, kto ją pokryje i do jakiego limitu. Odbiorca może jednak jednocześnie połączyć własne UTXO lub dodać płatność, którą inaczej wykonałby osobno. Całkowita oszczędność zależy zatem od porównania tych samych operacji, a nie od hasła, że każdy Payjoin jest tańszy. Ta sama opłata w satoshi przy większej transakcji oznacza niższą stawkę. [1] [2]

W BIP78 odbiorca potrzebuje usługi dostępnej przez internet, a obie strony komunikują się równocześnie. To niewygodne, gdy telefon traci połączenie. BIP77, czyli Payjoin v2, korzysta więc z serwera jako tymczasowej skrzynki pocztowej. Jeden portfel zostawia wiadomość, a drugi odbiera ją później, zanim upłynie uzgodniony termin sesji. Na tym polega komunikacja asynchroniczna. Sama propozycja płatności jest szyfrowana od końca do końca: mogą ją odczytać portfele uczestników, ale nie operator skrzynki. OHTTP, Oblivious HTTP, zapewnia dodatkową ochronę. Żądania przechodzą przez osobnego pośrednika, dzięki czemu serwer skrzynek zwykle nie widzi adresu IP portfela. Adres IP to adres sieciowy, którego urządzenie używa do komunikacji przez internet. Ochrona tego powiązania zakłada, że pośrednik i serwer nie udostępniają sobie swoich zapisów. Żaden nie otrzymuje kluczy prywatnych kontrolujących bitcoiny. Serwer może jednak opóźniać lub odrzucać wiadomości; samo szyfrowanie nie gwarantuje dostarczenia. [2] [4] [7]

Payjoin nie sprawia, że płatność automatycznie staje się anonimowa. Kwoty, wejścia, wyjścia i moment potwierdzenia pozostają widoczne w łańcuchu. Druga strona zna również przebieg uzgodnień; sklep może mieć zamówienie z twoim nazwiskiem. Publiczna transakcja nie ma obowiązkowej etykiety Payjoin, ale ponowne używanie adresów czy charakterystyczne zachowanie portfela mogą dostarczyć innych wskazówek. Automatyczny odbiorca musi też bronić się przed próbami poznania jego UTXO przez nigdy niedokańczane żądania. [1] [2]

Pierwotna podpisana transakcja może posłużyć jako zwykła płatność zastępcza. W poprawnym protokole ona i propozycja Payjoin wydają te same pierwotne wejścia, więc potwierdzona może zostać najwyżej jedna z nich. To nie powód, by po błędzie bez sprawdzenia tworzyć kolejną niezależną płatność. Przekazany już podpis może pozwolić odbiorcy rozgłosić pierwotną transakcję. Portfel powinien jasno pokazywać, czy doszło do Payjoin, zwykłej płatności zastępczej czy jeszcze do niczego, i uzgadniać to ze stanem łańcucha. [1] [2]

Wysyłanie i odbieranie Payjoin to różne możliwości; konkretne portfele i ich wersje muszą ze sobą współpracować. Samo przetworzenie żądania bez dodanego wejścia odbiorcy nie daje opisanej korzyści wobec heurystyki własności. Przy sprawdzeniu 17 października 2026 roku BIP78 ma status Deployed, a BIP77 autorstwa Dana Goulda i Yuvala Kogmana — Draft. Payjoin uzgadniają aplikacje korzystające ze zwykłych transakcji Bitcoin: nie czeka on na Soft Fork i nie zmienia zasad emisji. [1] [2] [3]

Pełniejszy obraz uzyskasz, czytając to hasło razem z CoinJoin, Prywatność w Bitcoinie, PSBT, Pseudonimowość, UTXO, Satoshi. Do tego hasła prowadzą również odsyłacze z Change Address, Prywatność w Bitcoinie, Pseudonimowość, Chain Surveillance.

DOC · 001BIP78 — A Simple Payjoin ProposalSpecyfikacja DOC · 002BIP77 — Async PayjoinSpecyfikacja DOC · 003Bitcoin Optech — PayjoinDokumentacja DOC · 004Payjoin projectŹródło pierwotne DOC · 005Bitcoin Core — PSBTDokumentacja DOC · 006Bitcoin Developer Reference — TransactionsDokumentacja DOC · 007RFC 9458 — Oblivious HTTPSpecyfikacja DOC · 008Bitcoin Developer Guide — WalletsDokumentacja
Zaktualizowano: Najpierw źródła · To nie jest porada inwestycyjna