Payjoin je způsob, jak připravit bitcoinovou platbu společně s příjemcem. Do jedné transakce vloží vlastní prostředky obě strany, ale každá si ponechá soukromé klíče a schvaluje utracení svých peněz sama. Tím ztíží pozorovateli veřejného řetězce odhad, komu použité mince původně patřily. Nevzniká přitom jiná měna ani záruka anonymity.
Alice platí Bobovi. Peněženka je aplikace nebo zařízení pro přijímání a odesílání bitcoinů. Její peněženka nemá jeden bankovní zůstatek: vybírá z dosud neutracených výstupů předchozích transakcí, kterým se říká UTXO. Každý takový výstup má určitou částku a podmínky, za kterých se smí utratit. Nová transakce na utrácené UTXO odkáže svými vstupy a vytvoří nové výstupy pro Boba i případný zbytek pro Alici. Při běžné platbě dodá prostředky pouze Alice. U Payjoinu se zapojí i Bob a přidá vlastní UTXO. Stále dostává sjednanou platbu, jen zároveň přesouvá i část peněz, které už měl. Obě peněženky musí výsledek zkontrolovat. Každá strana pak digitálním podpisem schválí utracení svých vstupů; soukromé klíče si neposílají. Soukromý klíč je tajný číselný údaj, kterým se takový podpis vytváří. [1] [3] [8] [6]
Analytik často předpokládá, že vstupy utracené společně patří jedné peněžence. Této pomůcce se říká common-input-ownership heuristic. Není to bitcoinové pravidlo ani důkaz totožnosti, jen odhad založený na běžném chování. Payjoin vytváří platné transakce, v nichž takový odhad neplatí. Pozorovatel pak nemůže automaticky přiřadit všechny vstupy Alici. Jiné informace mu však mohou dál pomáhat. [1] [3]
Částky si ukážeme v sats, nejmenších jednotkách bitcoinu. Pro přehlednost na chvíli vynechme poplatek. Alice má vstup 100 000 sats a platí Bobovi 20 000 sats; 80 000 sats se jí vrací. Bob přidá svůj vstup 50 000 sats a jeho výstup se zvýší na 70 000 sats. Vstupy i výstupy dohromady stále činí 150 000 sats. Bob nezískal dárek navíc: 50 000 sats už vlastnil a přibylo mu jen sjednaných 20 000 sats. Skutečná transakce samozřejmě musí uhradit také poplatek. [1] [6]
Aby si peněženky rozuměly, potřebují společný postup a formát zpráv. BIP78, technický dokument Nicolase Doriera s číslem přiděleným v roce 2019, používá PSBT — Partially Signed Bitcoin Transaction. Je to datový balíček s transakcí a údaji potřebnými k její kontrole a podpisu, ne samotná platba v síti. Platební požadavek obsahuje parametr pj: adresu služby, se kterou se má peněženka domluvit. Odesílatel nejprve pošle původní platbu zabalenou jako plně podepsanou a dokončenou PSBT. Je už schopná odvysílání, přestože název formátu obsahuje slovo „partially“. Příjemce vrátí změněný návrh doplněný o své vstupy a jejich podpisy. Odesílatel jej zkontroluje, znovu podepíše vlastní vstupy a odešle výslednou transakci do bitcoinové sítě. Spojení musí být šifrované a protistrana ověřená. PSBT není záloha peněženky: neposílá se seed, tedy základ pro odvození klíčů, soukromé klíče ani nepotřebné údaje o tom, jak je peněženka odvozuje. [1] [5]
Odesílatelova peněženka musí ověřit, že nezmizely její vstupy či chráněné výstupy, že se svévolně nezmenšila vracená částka a že poplatek nepřekročil dovolený příspěvek. Podepisuje pouze vlastní původní vstupy. Protokol dovoluje některé změny příjemcových výstupů, ale za přesně určených podmínek; není to volná ruka k přesměrování celé platby. Na podpisovém zařízení je potřeba rozumět zobrazeným částkám, ne jen potvrdit další obrazovku. [1] [5]
Přidaný vstup zabírá místo, a může tedy zvýšit absolutní poplatek za konkrétní platbu. Kdo jej zaplatí a do jakého limitu, určuje jednání peněženek. Příjemce ale může zároveň spojit vlastní UTXO nebo připojit další platbu, kterou by jinak dělal samostatně. Celková úspora proto záleží na srovnání stejných operací, ne na sloganu, že každý Payjoin je levnější. Stejný počet satoshi poplatku u větší transakce znamená nižší sazbu. [1] [2]
V BIP78 musí mít příjemce službu dostupnou přes internet a obě strany spolu komunikují ve stejnou dobu. Pro telefon, který zrovna ztratí připojení, je to nepraktické. BIP77 neboli Payjoin v2 proto využívá server jako dočasnou schránku. Peněženka do ní uloží zprávu a druhá si ji vyzvedne později, dokud nevyprší sjednaná platnost jednání. Tomu se říká asynchronní komunikace. Samotný návrh platby je koncově šifrovaný: čtou ho peněženky účastníků, nikoli provozovatel schránky. Další ochranu přidává OHTTP, Oblivious HTTP. Požadavky posílá přes odděleného prostředníka, takže server se schránkami běžně nevidí síťovou IP adresu peněženky. IP adresa je síťová adresa, kterou zařízení používá při internetové komunikaci. Ochrana tohoto propojení předpokládá, že prostředník a server nesdílejí své záznamy. Soukromé klíče k bitcoinům se žádnému z nich neposílají. Server přesto může zprávy zdržet nebo zahodit; šifrování samo nezaručí doručení. [2] [4] [7]
Payjoin nedělá platbu automaticky anonymní. Částky, vstupy, výstupy a okamžik potvrzení zůstávají v řetězci viditelné. Druhá strana navíc zná průběh vašeho jednání; obchodník může mít objednávku se jménem. Samotná veřejná transakce nemá povinný štítek Payjoin, ale opakované adresy nebo zvláštnosti peněženky mohou vytvářet další vodítka. Automatický příjemce se také musí bránit pokusům vylákat údaje o jeho UTXO nedokončenými žádostmi. [1] [2]
Původní podepsaná transakce může posloužit jako náhradní běžná platba. V řádném protokolu utrácí ona i návrh Payjoinu stejné původní vstupy, takže se může potvrdit nejvýše jedna z nich. To ale není důvod po chybě bez kontroly vytvořit další nezávislou platbu. Už předaný podpis může příjemce použít k odvysílání původní transakce. Peněženka má jasně ukázat, zda se uskutečnil Payjoin, běžná náhrada, nebo zatím nic, a sladit to se stavem řetězce. [1] [2]
Odesílání a přijímání Payjoinu jsou odlišné schopnosti; podporu potřebuje konkrétní dvojice peněženek a používaných verzí. Samotné zpracování požadavku bez přidaného příjemcova vstupu ještě nevytváří popsaný přínos pro vlastnictví vstupů. Při kontrole 17. října 2026 má BIP78 stav Deployed, zatímco BIP77 od Dana Goulda a Yuvala Kogmana stav Draft. Payjoin se domlouvá mezi aplikacemi nad běžnými bitcoinovými transakcemi: nečeká na Soft Fork a nemění pravidla emise. [1] [2] [3]
Pro nejúplnější obraz čtěte toto heslo společně s CoinJoin, Soukromí v Bitcoinu, PSBT, Pseudonymita, UTXO, Satoshi. Opačným směrem na něj odkazují také Change Address, Soukromí v Bitcoinu, Pseudonymita, Chain Surveillance.