PayJoin adoption: Difference between revisions
Add note about cost and benefit |
Tag: Undo |
||
(55 intermediate revisions by 6 users not shown) | |||
Line 1: | Line 1: | ||
[[PayJoin]] is a privacy improvement for bitcoin. | [[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 | [[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 | 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 | The most widely adopted PayJoin protocol standard is [[BIP 0078]]. | ||
{| class="wikitable" | {| class="wikitable" | ||
Line 13: | Line 11: | ||
| {{No}} || | | {{No}} || | ||
|- | |- | ||
| {{Evaluating | | {{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| | | {{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 | ||
|- | |- | ||
| | | Armory || {{No}} || {{No}} || | ||
|- | |||
| bcoin || {{No}} || {{No}} || | |||
|- | |- | ||
| | | [https://bitcoindevkit.org/bdk-cli/ BDK-CLI] || {{Acceptable|Live Draft}} || {{Evaluating}} || https://github.com/bitcoindevkit/bdk-cli/pull/156 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] | ||
|- | |- | ||
| | | [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 | ||
|- | |- | ||
| Bitcoin | | [https://www.blink.sv Blink (Bitcoin Beach Wallet)] || {{Evaluating}} || {{Evaluating}} || https://twitter.com/nicolasburtey/status/1673760619374280705 | ||
|- | |- | ||
| | | [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/ | ||
|- | |- | ||
| | | [https://github.com/Bitcoin-Brainbow/Brainbow Brainbow] || {{Evaluating}} || {{Evaluating}} || https://github.com/Bitcoin-Brainbow/Brainbow/issues/98 | ||
|- | |- | ||
| Breadwallet || {{No}} || {{No}} || | | Breadwallet || {{No}} || {{No}} || | ||
|- | |||
| BTC.com || {{No}} || {{No}} || | |||
|- | |||
| BTCPay Server || {{Yes}} || {{Yes}} || https://docs.btcpayserver.org/Payjoin/ | |||
|- | |||
| Casa || {{No}} || {{No}} || | |||
|- | |||
| CLN || {{Weak|DFC}} || {{Weak|DFC}} || [https://github.com/ElementsProject/lightning/blob/v23.02/CHANGELOG.md#0100---2021-03-28-neutralizing-fee-therapy dual funded channels] [https://twitter.com/niftynei/status/1585710438461116416 Evaluating BIP 78 support] | |||
|- | |- | ||
| Coinomi || {{No}} || {{No}} || | | Coinomi || {{No}} || {{No}} || | ||
|- | |- | ||
| | | Eclair || {{Weak|DFC}} || {{Weak|DFC}} || [https://github.com/ACINQ/eclair/pull/2275 dual funded channels] | ||
|- | |||
| Electrum || {{Planned}} || {{Planned}} || https://github.com/spesmilo/electrum/issues/6585 | |||
|- | |||
| [https://foundationdevices.com/envoy/ Envoy] || {{Evaluating}} || {{No}} || https://github.com/Foundation-Devices/envoy/pull/84 | |||
|- | |||
| Fedimint || {{Evaluating}} || {{Evaluating}} || https://github.com/fedimint/fedimint/discussions/1764 | |||
|- | |||
| [https://github.com/AreaLayer/FireBolt FireBolt] || {{Planned}} || {{Planned}} | |||
|- | |||
| [https://fullynoded.app 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}} || | |||
|- | |||
| [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] | |||
|- | |||
| JoinMarket || {{Yes}} || {{Yes}} || https://github.com/JoinMarket-Org/joinmarket-clientserver/blob/master/docs/PAYJOIN.md | |||
|- | |||
| [https://wizardsardine.com/liana/ Liana] || {{No}} || {{Evaluating}} || [https://github.com/wizardsardine/liana/issues/534 payjoin for automatic timelock refresh] | |||
|- | |||
| LND || {{Acceptable|Extension}} || {{Acceptable|Extension}} || [https://github.com/chaincase-app/nolooking nolooking bip 78 web app alpha], [https://github.com/alexbosworth/balanceofsatoshis/blob/9f2d32904617088069aa1f930db211711ba415e5/CHANGELOG.md?plain=1#L1494 Non-BIP78 dual funding via BoS] | |||
|- | |- | ||
| | | [https://mutinywallet.com Mutiny Wallet] || {{Yes}} || {{Evaluating}} || Send [https://njump.me/nevent1qqsrtpdy9jd5r0dpsxcm4y5jw75zdcsgam2ka3shfj6xwu9ddmxlclqp2amhxue69uhkv6tvw3jhytnwdaehgu3wwa5kuef0dec82c33d46hgmnev93kxwt4vv68gdtdd4u8vurswfmhxct4dg6hqvn30pcnjdtkx3snj63sdfuxcwrhde4kvan409ch2efjxdmxwqgdwaehxw309ahx7uewd3hkcqgcwaehxw309aex2mrp0yh8xmn0wf6zuum0vd5kzmqpzpmhxue69uhkummnw3ezuamfdejsz9rhwden5te0wfjkccte9ejxzmt4wvhxjmcpzemhxue69uhhyetvv9ujumn0wd68ytnzv9hxgqguwaehxw309ahx7um5wghx6at5d9h8jampd3kx2apwvdhk6qghwaehxw309ahx7um5wghxvmt59emkj73wvf5h5h30rus released in v0.5.7] receiver [https://github.com/MutinyWallet/mutiny-node/pull/820 in progresss], [https://stacker.news/items/200410 "payer side" PDK evaluation from Mutiny devs], [https://github.com/MutinyWallet/mutiny-node/issues/194 planning issue] | ||
|- | |- | ||
| Mycelium || {{No}} || {{No}} || | | Mycelium || {{No}} || {{No}} || | ||
|- | |- | ||
| [https:// | |[https://nunchuk.io/ Nunchuk] || {{Evaluating}} || {{Evaluating}} || https://stacker.news/items/129571 | ||
|- | |||
| Phoenix || {{No}} || {{Evaluating}} || [https://github.com/ACINQ/phoenix/issues/161 BIP 78 payjoin issue] | |||
|- | |||
| Samourai Wallet || {{Weak|Cahoots}} || {{Weak|Cahoots}} || https://samouraiwallet.com/stowaway | |||
|- | |||
| Sparrow Wallet || {{Yes}} || {{Weak|Cahoots}} || 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 | |||
|- | |||
| [https://trezor.io/trezor-suite Trezor Suite] || {{Evaluating}} || {{Evaluating}} || https://stacker.news/items/174289 | |||
|- | |- | ||
| Trust Wallet || {{No}} || {{No}} || | | Trust 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] | |||
|} | |||
=== Software Libraries === | |||
{| class="wikitable sortable" | |||
|- | |||
! Name !! Sending !! Receiving !! Notes | |||
|- | |||
| [https://payjoindevkit.org PDK] || {{Yes}} || {{Yes}} || https://github.com/payjoin/rust-payjoin | |||
|- | |- | ||
| [https://bitcoin-s.org/ bitcoin-s] || {{Evaluating}} || {{Evaluating}} || https://github.com/bitcoin-s/bitcoin-s/issues/1362 | |||
|} | |} | ||
Line 73: | Line 128: | ||
{| class="wikitable sortable" | {| class="wikitable sortable" | ||
|- | |- | ||
! Name !! | ! Name !! Signing !! Notes | ||
|- | |||
| Coldcard || {{Yes}} || Hardware can sign bip78 payjoins and also http://ckbunker.com/ | |||
|- | |||
| SeedSigner || {{Yes}} || https://twitter.com/KeithMukai/status/1654235825129893893 | |||
|- | |- | ||
| | | [https://trezor.io/trezor-model-one Trezor Model One] || {{Yes}} || https://stacker.news/items/174289 | ||
|- | |- | ||
| [https://trezor.io/trezor-model-t Trezor Model T] || {{Yes}} || https://stacker.news/items/174289 | |||
|} | |} | ||
Line 87: | Line 147: | ||
|- | |- | ||
| [[BTCPay]] || {{Yes}} || First implementer of BIP78 payjoin for merchants. | | [[BTCPay]] || {{Yes}} || First implementer of BIP78 payjoin for merchants. | ||
|- | |||
| [https://satsale.org/ SatSale] || {{Planned}} || https://github.com/SatSale/SatSale/issues/39 https://twitter.com/SatoshiSale/status/1658894420295684096 | |||
|} | |} | ||
Line 102: | Line 164: | ||
| Bisq || {{No}} || {{No}} || | | Bisq || {{No}} || {{No}} || | ||
|- | |- | ||
| Hodl Hodl || {{ | | [https://boltz.exchange/ Boltz] || {{Evaluating}} || {{Evaluating}} || https://stacker.news/items/83396 | ||
|- | |||
| [https://www.bullbitcoin.com/ Bull Bitcoin] || {{Planned}} || {{Planned}} || https://twitter.com/francispouliot_/status/1138131827258986499 | |||
|- | |||
| Hodl Hodl || {{Planned}} || {{Planned}} || https://twitter.com/hodlhodl/status/1352266122389827584 | |||
|- | |- | ||
| LocalBitcoins || {{No}} || {{No}} || | | LocalBitcoins || {{No}} || {{No}} || | ||
Line 111: | Line 177: | ||
|- | |- | ||
| Paxful.com || {{No}} || {{No}} || | | Paxful.com || {{No}} || {{No}} || | ||
|- | |||
| [https://porticoexchange.github.io/porticoexchangev2.github.io/ Portico Exchange] || {{Evaluating}} || {{Evaluating}} || https://twitter.com/PorticoExchange/status/1671095545719590912 | |||
|- | |- | ||
| Sideshift.ai || {{Yes}} || {{No}} || For "To send" choose "Bitcoin PayJoin" | | Sideshift.ai || {{Yes}} || {{No}} || For "To send" choose "Bitcoin PayJoin" | ||
Line 121: | Line 189: | ||
|- | |- | ||
! Name !! Receive !! URL !! Notes | ! Name !! Receive !! URL !! Notes | ||
|- | |||
| payjoin.org || {{Yes}} || https://payjoin.org/ || | |||
|- | |- | ||
| Human Rights Foundation || {{Yes}} || https://hrf.org/donate-bitcoin/payjoin/ || | | Human Rights Foundation || {{Yes}} || https://hrf.org/donate-bitcoin/payjoin/ || | ||
|- | |- | ||
| Waxwing's personal donation page || {{Yes}} || https://joinmarket.me/donations/ || | | Waxwing's personal donation page || {{Yes}} || https://joinmarket.me/donations/ || | ||
|- | |||
| Max Hillebrand's donation page || {{Yes}} || https://towardsliberty.com/btcpay/apps/27jLc1qpN8UXcQanHgeAsaEgLAio/pos || | |||
|} | |} | ||
Line 142: | Line 214: | ||
=== Stores === | === Stores === | ||
// | <!-- Alphabetical order please --> | ||
{| class="wikitable sortable" | |||
|- | |||
! Name !! Receive !! Notes | |||
|- | |||
| [https://eataupa.com/cart/ Aupa Beef Bars] || {{Yes}} || https://twitter.com/EatAupa/status/1675307138288168960 | |||
|- | |||
| Ideas Like Flames || {{Yes}} || https://twitter.com/ideaslikeflames/status/1389746824009949191 | |||
|- | |||
| The Kratom Syndicate || {{Yes}} || https://thekratomsyndicate.com/blog/buying-kratom-with-payjoin.html | |||
|- | |||
| Namecheap || {{Yes}} || https://www.namecheap.com buy domains with BTCPayServer | |||
|- | |||
| [https://sats.coffee Satoshi Coffee Co.] || {{Yes}} || https://twitter.com/satscoffee/status/1679923696729837568 | |||
|} |
Latest revision as of 14:31, 19 August 2024
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
Software Libraries
Name | Sending | Receiving | Notes |
---|---|---|---|
PDK | Yes | Yes | https://github.com/payjoin/rust-payjoin |
bitcoin-s | Evaluating | Evaluating | https://github.com/bitcoin-s/bitcoin-s/issues/1362 |
Hardware Wallets
Name | Signing | Notes |
---|---|---|
Coldcard | Yes | Hardware can sign bip78 payjoins and also http://ckbunker.com/ |
SeedSigner | Yes | https://twitter.com/KeithMukai/status/1654235825129893893 |
Trezor Model One | Yes | https://stacker.news/items/174289 |
Trezor Model T | Yes | https://stacker.news/items/174289 |
Payment processors
Name | Receive | Notes |
---|---|---|
BTCPay | Yes | First implementer of BIP78 payjoin for merchants. |
SatSale | Planned | https://github.com/SatSale/SatSale/issues/39 https://twitter.com/SatoshiSale/status/1658894420295684096 |
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 | |
Boltz | Evaluating | Evaluating | https://stacker.news/items/83396 |
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 | |
Portico Exchange | Evaluating | Evaluating | https://twitter.com/PorticoExchange/status/1671095545719590912 |
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 |
---|---|---|
Aupa Beef Bars | Yes | https://twitter.com/EatAupa/status/1675307138288168960 |
Ideas Like Flames | Yes | https://twitter.com/ideaslikeflames/status/1389746824009949191 |
The Kratom Syndicate | Yes | https://thekratomsyndicate.com/blog/buying-kratom-with-payjoin.html |
Namecheap | Yes | https://www.namecheap.com buy domains with BTCPayServer |
Satoshi Coffee Co. | Yes | https://twitter.com/satscoffee/status/1679923696729837568 |