PayJoin: Difference between revisions

From Bitcoin Wiki
Jump to navigation Jump to search
Belcher (talk | contribs)
m →‎External links: Add joinmarket blog link
RiccardoMasutti (talk | contribs)
Line 22: Line 22:
* https://joinmarket.me/blog/blog/payjoin/
* https://joinmarket.me/blog/blog/payjoin/
* https://gist.github.com/AdamISZ/4551b947789d3216bacfcb7af25e029e
* https://gist.github.com/AdamISZ/4551b947789d3216bacfcb7af25e029e
* https://wasabiwallet.io/ - PayJoin-enabled Bitcoin Desktop Wallet


== See also ==
== See also ==

Revision as of 11:47, 4 September 2020

PayJoin (also called pay-to-end-point or P2EP) is a special type of CoinJoin between two parties where one party pays the other. This coinjoin type has different (probably better) privacy properties. The transaction then doesn't have the distinctive multiple outputs with the same value, and so is not obviously visible as an equal-output CoinJoin.

Consider this transaction:

2 btc ---> 3 btc
5 btc      4 btc

It could be interpreted as a simple transaction paying to somewhere with leftover change. Another interpretion is that the 2 BTC input is owned by a merchant and 5 BTC is owned by their customer, and that this transaction involves the customer paying 1 BTC to the merchant. There is no way to tell which of these two interpretations is correct. The result is a CoinJoin transaction which breaks the common-input-ownership heuristic and improves privacy, but is also undetectable and indistinguishable from any regular bitcoin transaction.

If PayJoin transactions became even moderately used then it would make the common-input-ownership heuristic be completely flawed in practice. As they are undetectable we wouldn't even know whether they are being used today. As Transaction surveillance companies mostly depend on that heuristic, as of 2019 there is great excitement about the PayJoin idea[1].


Probable examples

In general payjoins are indistinguishable from any regular bitcoin transactions, but sometimes their creators publish them online and say they are actually payjoins.

  • 7104bae698587b3e75563b7ea7a9aada41d9c787788bc2bf26dd201fd7eca8a2[2].

External links

See also

References