Difference between revisions of "PayJoin adoption"

From Bitcoin Wiki
Jump to: navigation, search
(Add Zeus)
(Alphebatize)
(11 intermediate revisions by the same user not shown)
Line 1: Line 1:
[[PayJoin]] is a privacy improvement for bitcoin. In the case where a customer pays a merchant, they both together co-operate to create a single bitcoin transaction which mixes both their coins and masks the payment amount.
+
[[PayJoin]] is a privacy improvement for bitcoin. Payjoin solves the sole privacy problem left open in the [[Bitcoin whitepaper]], that transactions with multiple inputs "necessarily reveal that their inputs were owned by the same owner," because both the sender and receiver of a transfer contribute inputs to the transaction.
  
[[Transaction surveillance company|Transaction surveillance companies]] heavily depend on the [[Common-input-ownership heuristic|common input ownership assumption]] which is broken by PayJoin transactions. So if those transactions became even a little bit widespread they could massively decrease the reliability of blockchain surveillance. Merchants and customers who adopt PayJoin would find their privacy improved from anyone analyzing the blockchain, for example a surveillance company spy would find it much harder to figure out which addresses and transactions belonged to a particular merchant that was using PayJoin, or who else transacted to them.
+
[[Transaction surveillance company|Transaction surveillance companies]] heavily depend on the [[Common-input-ownership heuristic|common input ownership assumption]] which is broken by PayJoin transactions. So if those transactions became even a little bit widespread they could massively decrease the reliability of blockchain surveillance. Those who adopt PayJoin would find their privacy improved from strangers analyzing the blockchain. For example a surveillance company spy would find it much harder to figure out which addresses and transactions belonged to a particular merchant that was using PayJoin, or who else transacted to them.
  
PayJoin transactions are indistinguishable from regular bitcoin transactions by design, so it's very hard to get an accurate number for how common they are.
+
PayJoin transactions can be made indistinguishable from regular bitcoin transactions by design, so it's very hard to get an accurate number for how common they are.
  
The PayJoin protocol standard most likely to get adoption is [[BIP 0078]].
+
The most widely adopted PayJoin protocol standard is [[BIP 0078]].
 
 
Like any new feature, PayJoin requires a little bit of time to first set up. But if your business suffers from being spied on (for example you're a p2p exchange or bitcoin casino, and regulated exchanges keep banning your customers) then that cost is well worth it.
 
  
 
{| class="wikitable"
 
{| class="wikitable"
Line 13: Line 11:
 
| {{No}} ||
 
| {{No}} ||
 
|-
 
|-
| {{Evaluating|??}} || Maybe / Haven't checked / placeholder
+
| {{Evaluating}} ||
 
|-
 
|-
 
| {{Planned}} || The developers said they plan to
 
| {{Planned}} || The developers said they plan to
Line 19: Line 17:
 
| {{Weak|Non-BIP78}} || Implements a form of PayJoin but not BIP78
 
| {{Weak|Non-BIP78}} || Implements a form of PayJoin but not BIP78
 
|-
 
|-
| {{Acceptable|PR Merged}} || In the case of software, code has been written and merged, and it will be in next release.
+
| {{Acceptable|Extension}} || Can PayJoin using additional software
 
|-
 
|-
 
| {{Yes}} || Feature has been released
 
| {{Yes}} || Feature has been released
Line 29: Line 27:
 
! Name !! Sending !! Receiving !! Notes
 
! Name !! Sending !! Receiving !! Notes
 
|-
 
|-
| BTCPay Server || {{Yes}} || {{Yes}} || https://docs.btcpayserver.org/Payjoin/
+
| ACINQ || {{No}} || {{Evaluating}} || https://github.com/ACINQ/phoenix/issues/161
 +
|-
 +
| Armory || {{No}} || {{No}} ||
 +
|-
 +
| bcoin || {{No}} || {{No}} ||
 +
|-
 +
| [https://bitcoindevkit.org/bdk-cli/ BDK-CLI] || {{Planned}} || {{Evaluating}} || https://github.com/bitcoindevkit/bdk-cli/issues/149
 +
|-
 +
| Bitcoin Core || {{Acceptable|Extension}} || {{Acceptable|Extension}} || [https://github.com/payjoin/rust-payjoin Beta CLI payjoin-client via RPC], native support [https://github.com/bitcoin/bitcoin/issues/19148 under evaluation]
 +
|-
 +
| Bitcoin Knots || {{Acceptable|Extension}} || {{Acceptable|Extension}} || [https://github.com/payjoin/rust-payjoin Beta CLI payjoin-client via RPC]
 
|-
 
|-
| JoinMarket || {{Yes}} || {{Yes}} || https://old.reddit.com/r/Bitcoin/comments/idhrak/new_release_of_joinmarket_070_includes_bip78/
+
| [https://play.google.com/store/apps/details?id=de.schildbach.wallet Bitcoin Wallet for Android] || {{No}} || {{No}} ||
 
|-
 
|-
 
| [https://segwit.bitmask.app/ BitMask] || {{Yes}} || {{No}} || Chrome extension only https://github.com/diba-io/bitmask-core/pull/121
 
| [https://segwit.bitmask.app/ BitMask] || {{Yes}} || {{No}} || Chrome extension only https://github.com/diba-io/bitmask-core/pull/121
 
|-
 
|-
| Wasabi Wallet || {{Yes}} || {{No}} || https://docs.wasabiwallet.io/using-wasabi/PayJoin.html
+
| [https://blixtwallet.github.io/ Blixt Wallet] || {{Evaluating}} || {{Evaluating}} || https://t.me/blixtwallet/122197
 +
|-
 +
| Blockstream Green || {{No}} || {{No}} ||
 
|-
 
|-
 
| BlueWallet || {{Yes}} || {{Planned}} || https://old.reddit.com/r/Bitcoin/comments/j6qswf/bluewallet_releases_payjoin_bip78/
 
| BlueWallet || {{Yes}} || {{Planned}} || https://old.reddit.com/r/Bitcoin/comments/j6qswf/bluewallet_releases_payjoin_bip78/
 
|-
 
|-
| Sparrow Wallet || {{Yes}} || {{Weak|Non-BIP78}} || https://github.com/sparrowwallet/sparrow/releases/tag/0.9.7, https://github.com/sparrowwallet/sparrow/releases/tag/1.5.3
+
| [https://github.com/Bitcoin-Brainbow/Brainbow Brainbow] || {{Evaluating}} || {{Evaluating}} || https://github.com/Bitcoin-Brainbow/Brainbow/issues/98
 +
|-
 +
| Breadwallet || {{No}} || {{No}} ||
 
|-
 
|-
| Samourai Wallet || {{Weak|Non-BIP78}} || {{Weak|Non-BIP78}} || https://samouraiwallet.com/stowaway
+
| BTC.com || {{No}} || {{No}} ||
 
|-
 
|-
| Bitcoin Core || {{No}} || {{No}} ||
+
| BTCPay Server || {{Yes}} || {{Yes}} || https://docs.btcpayserver.org/Payjoin/
 
|-
 
|-
| Bitcoin Knots || {{No}} || {{No}} ||
+
| Casa || {{No}} || {{No}} ||
 +
|-
 +
| Coinomi || {{No}} || {{No}} ||
 
|-
 
|-
 
| Electrum || {{Planned}} || {{Planned}} || https://github.com/spesmilo/electrum/issues/6585
 
| Electrum || {{Planned}} || {{Planned}} || https://github.com/spesmilo/electrum/issues/6585
 
|-
 
|-
| [https://bitcoindevkit.org/bdk-cli/ BDK-CLI] || {{Planned}} || {{No}} || https://github.com/bitcoindevkit/bdk-cli/issues/149
+
| [https://foundationdevices.com/envoy/ Envoy] || {{Evaluating}} || {{No}} || https://github.com/Foundation-Devices/envoy/pull/84
 
|-
 
|-
| bcoin || {{No}} || {{No}} ||
+
| Fedimint || {{Evaluating}} || {{Evaluating}} || https://github.com/fedimint/fedimint/discussions/1764
 +
|-
 +
| [https://fullynoded.app Fully Noded] || {{Evaluating}} || {{Evaluating}} || https://github.com/Fonta1n3/FullyNoded/issues/126
 
|-
 
|-
| Armory || {{No}} || {{No}} ||
+
| Gordian Wallet || {{Evaluating}} || {{Evaluating}} || https://github.com/orgs/BlockchainCommons/discussions/49
 
|-
 
|-
| Blockstream Green || {{No}} || {{No}} ||
+
| Guarda Wallet || {{No}} || {{No}} ||
 
|-
 
|-
| Breadwallet || {{No}} || {{No}} ||
+
| [https://jamapp.org/ JAM] || {{Planned}} || {{Planned}} || [https://github.com/joinmarket-webui/jam/blob/4d9171e15fe45100dd26db621576739af9b7e012/README.md?plain=1#L74 roadmap] [https://github.com/joinmarket-webui/jam/issues/406 issue]
 
|-
 
|-
| Coinomi || {{No}} || {{No}} ||
+
| JoinMarket || {{Yes}} || {{Yes}} || https://github.com/JoinMarket-Org/joinmarket-clientserver/blob/master/docs/PAYJOIN.md
 
|-
 
|-
| BTC.com || {{No}} || {{No}} ||
+
| LND || {{Acceptable|Extension}} || {{Acceptable|Extension}} || [https://github.com/chaincase-app/nolooking nolooking web app alpha]
 
|-
 
|-
| Casa || {{No}} || {{No}} ||
+
| [https://mutinywallet.com Mutiny Wallet] || {{Evaluating}} || {{Evaluating}} || https://github.com/MutinyWallet/mutiny-node/issues/194
 
|-
 
|-
 
| Mycelium || {{No}} || {{No}} ||
 
| Mycelium || {{No}} || {{No}} ||
 
|-
 
|-
| [https://play.google.com/store/apps/details?id=de.schildbach.wallet Bitcoin Wallet for Android] || {{No}} || {{No}} ||
+
|[https://nunchuk.io/ Nunchuk] || {{Evaluating}} || {{Evaluating}} || https://stacker.news/items/129571
 +
|-
 +
| Samourai Wallet || {{Weak|Non-BIP78}} || {{Weak|Non-BIP78}} || https://samouraiwallet.com/stowaway
 +
|-
 +
| Sparrow Wallet || {{Yes}} || {{Weak|Non-BIP78}} || https://github.com/sparrowwallet/sparrow/releases/tag/0.9.7, https://github.com/sparrowwallet/sparrow/releases/tag/1.5.3
 +
|-
 +
| [https://specter.solutions/desktop/ Specter Desktop] || {{Evaluating}} || {{Evaluating}} || https://github.com/cryptoadvance/specter-desktop/issues/1369
 +
|-
 +
| [https://stackwallet.com Stack Wallet] || {{Evaluating}} || {{Evaluating}} || https://github.com/cypherstack/stack_wallet/issues/445
 
|-
 
|-
 
| Trust Wallet || {{No}} || {{No}} ||
 
| Trust Wallet || {{No}} || {{No}} ||
 
|-
 
|-
| Guarda Wallet || {{No}} || {{No}} ||
+
| [https://lnvortex.com Vortex] || {{Evaluating}} || {{Evaluating}} || https://github.com/ln-vortex/ln-vortex/issues/407
 +
|-
 +
| Wasabi Wallet || {{Yes}} || [ {{Evaluating}} || https://docs.wasabiwallet.io/using-wasabi/PayJoin.html [https://github.com/zkSNACKs/WalletWasabi/pull/3582 receiver draft]
 
|-
 
|-
 
| [https://zeusln.app/ Zeus] || {{Planned}} || {{Planned}} || [https://github.com/ZeusLN/zeus/blob/6f0e4568ce81ae9193ec8c272b0c7ac1299c2e8f/README.md?plain=1#L68 on feature roadmap]
 
| [https://zeusln.app/ Zeus] || {{Planned}} || {{Planned}} || [https://github.com/ZeusLN/zeus/blob/6f0e4568ce81ae9193ec8c272b0c7ac1299c2e8f/README.md?plain=1#L68 on feature roadmap]
Line 95: Line 121:
 
| [[BTCPay]] || {{Yes}} || First implementer of BIP78 payjoin for merchants.
 
| [[BTCPay]] || {{Yes}} || First implementer of BIP78 payjoin for merchants.
 
|-
 
|-
| Nurails || {{Evaluating|??}} || https://nurails.com/ "Our infrastructure is open source and community driven using Payjoin security framework".
+
| [https://satsale.org/ SatSale] || {{Evaluating}} || https://github.com/SatSale/SatSale/issues/39
 
|}
 
|}
  

Revision as of 19:39, 29 April 2023

PayJoin is a privacy improvement for bitcoin. Payjoin solves the sole privacy problem left open in the Bitcoin whitepaper, that transactions with multiple inputs "necessarily reveal that their inputs were owned by the same owner," because both the sender and receiver of a transfer contribute inputs to the transaction.

Transaction surveillance companies heavily depend on the common input ownership assumption which is broken by PayJoin transactions. So if those transactions became even a little bit widespread they could massively decrease the reliability of blockchain surveillance. Those who adopt PayJoin would find their privacy improved from strangers analyzing the blockchain. For example a surveillance company spy would find it much harder to figure out which addresses and transactions belonged to a particular merchant that was using PayJoin, or who else transacted to them.

PayJoin transactions can be made indistinguishable from regular bitcoin transactions by design, so it's very hard to get an accurate number for how common they are.

The most widely adopted PayJoin protocol standard is BIP 0078.

No
Evaluating
Planned The developers said they plan to
Non-BIP78 Implements a form of PayJoin but not BIP78
Extension Can PayJoin using additional software
Yes Feature has been released

Software Wallets

Name Sending Receiving Notes
ACINQ No Evaluating https://github.com/ACINQ/phoenix/issues/161
Armory No No
bcoin No No
BDK-CLI Planned Evaluating https://github.com/bitcoindevkit/bdk-cli/issues/149
Bitcoin Core Extension Extension Beta CLI payjoin-client via RPC, native support under evaluation
Bitcoin Knots Extension Extension Beta CLI payjoin-client via RPC
Bitcoin Wallet for Android No No
BitMask Yes No Chrome extension only https://github.com/diba-io/bitmask-core/pull/121
Blixt Wallet Evaluating Evaluating https://t.me/blixtwallet/122197
Blockstream Green No No
BlueWallet Yes Planned https://old.reddit.com/r/Bitcoin/comments/j6qswf/bluewallet_releases_payjoin_bip78/
Brainbow Evaluating Evaluating https://github.com/Bitcoin-Brainbow/Brainbow/issues/98
Breadwallet No No
BTC.com No No
BTCPay Server Yes Yes https://docs.btcpayserver.org/Payjoin/
Casa No No
Coinomi No No
Electrum Planned Planned https://github.com/spesmilo/electrum/issues/6585
Envoy Evaluating No https://github.com/Foundation-Devices/envoy/pull/84
Fedimint Evaluating Evaluating https://github.com/fedimint/fedimint/discussions/1764
Fully Noded Evaluating Evaluating https://github.com/Fonta1n3/FullyNoded/issues/126
Gordian Wallet Evaluating Evaluating https://github.com/orgs/BlockchainCommons/discussions/49
Guarda Wallet No No
JAM Planned Planned roadmap issue
JoinMarket Yes Yes https://github.com/JoinMarket-Org/joinmarket-clientserver/blob/master/docs/PAYJOIN.md
LND Extension Extension nolooking web app alpha
Mutiny Wallet Evaluating Evaluating https://github.com/MutinyWallet/mutiny-node/issues/194
Mycelium No No
Nunchuk Evaluating Evaluating https://stacker.news/items/129571
Samourai Wallet Non-BIP78 Non-BIP78 https://samouraiwallet.com/stowaway
Sparrow Wallet Yes Non-BIP78 https://github.com/sparrowwallet/sparrow/releases/tag/0.9.7, https://github.com/sparrowwallet/sparrow/releases/tag/1.5.3
Specter Desktop Evaluating Evaluating https://github.com/cryptoadvance/specter-desktop/issues/1369
Stack Wallet Evaluating Evaluating https://github.com/cypherstack/stack_wallet/issues/445
Trust Wallet No No
Vortex Evaluating Evaluating https://github.com/ln-vortex/ln-vortex/issues/407
Wasabi Wallet Yes Evaluating https://docs.wasabiwallet.io/using-wasabi/PayJoin.html receiver draft
Zeus Planned Planned on feature roadmap

Hardware Wallets

Name Signing Notes
Coldcard Yes Hardware can sign bip78 payjoins and also http://ckbunker.com/

Payment processors

Name Receive Notes
BTCPay Yes First implementer of BIP78 payjoin for merchants.
SatSale Evaluating https://github.com/SatSale/SatSale/issues/39

Exchanges

P2P exchanges make the most sense as early adoptors of PayJoin. All exchanges are welcome on this list of course.

Name Send to exchange Receive from exchange Notes
AgoraDesk No No
Bisq No No
Bull Bitcoin Planned Planned https://twitter.com/francispouliot_/status/1138131827258986499
Hodl Hodl Planned Planned https://twitter.com/hodlhodl/status/1352266122389827584
LocalBitcoins No No
LocalCoinSwap No No
LocalCryptos No No
Paxful.com No No
Sideshift.ai Yes No For "To send" choose "Bitcoin PayJoin"

Non-profits

Name Receive URL Notes
payjoin.org Yes https://payjoin.org/
Human Rights Foundation Yes https://hrf.org/donate-bitcoin/payjoin/
Waxwing's personal donation page Yes https://joinmarket.me/donations/
Max Hillebrand's donation page Yes https://towardsliberty.com/btcpay/apps/27jLc1qpN8UXcQanHgeAsaEgLAio/pos

Casinos

Bitcoin casinos are very natural early-adopters of PayJoin. An early protocol specification for it, called bustapay, was created by the owner of a bitcoin casino.

Name Send to Receive Notes
Bustabit No No

Stores

Name Receive Notes
The Kratom Syndicate Yes https://thekratomsyndicate.com/blog/buying-kratom-with-payjoin.html
Ideas Like Flames Yes https://twitter.com/ideaslikeflames/status/1389746824009949191