Difference between revisions of "PayJoin"
Revision as of 22:51, 20 February 2019
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.
In general payjoins are indistinguishable from any regular bitcoin transactions, but sometimes their creators publish them online and say they are actually payjoins.
- https://samouraiwallet.com/stowaway - A smartphone wallet which implements payjoin.