Hi Peter,

> Regarding to BIP47 there's a newer version (v3 and v4) proposed here: https://github.com/OpenBitcoinPrivacyProject/rfc/blob/master/obpp-05.mediawiki

> Now the notification from Alice to Bob is a transaction from Alice to Alice as a bare 1 of 3 multisig. The other 2 pubkeys represent Alice's payment code and Bob's payment identifier. Eliminating the toxic change issue.

Thanks for sharing the link. Removing toxic change sounds good and certainly an improvement.

> An xpub doesn't accomplish this because if you have your xpub in a crowdfunding platform the platform or anyone who hacks it can identify your payments. With the payment code you can associate yourself publicly with your payment code and no one (who is not the sender) will know if you received funds as your payment code is not visible in the blockchain.

Crowdfunding platform can also be self hosted like BTCPay server. In this case XPUB is not shared with anyone as long as machine running BTCPay is secure. Problem with this setup is users need to setup BTCPay, running all the time and manage gap limit. No such thing is required in using BIP 47 payment codes.

There is also a [rust library][1] to use BIP 47 and I found the link on twitter yesterday. I think this can be helpful for application developers to implement BIP 47 payment codes in different bitcoin projects.

[1]: https://github.com/rust-bitcoin/rust-bip47


--
Prayank

A3B1 E430 2298 178F