Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Feature Request]: BIP351 Private Payments Support #850

Closed
privatepayments opened this issue Feb 18, 2023 · 2 comments
Closed

[Feature Request]: BIP351 Private Payments Support #850

privatepayments opened this issue Feb 18, 2023 · 2 comments

Comments

@privatepayments
Copy link

Private Payments (BIP351) is a stealth address system for Bitcoin that allows the user to post a static code and receive payments to a separate address space for each sender.

There are multiple use cases for Private Payments, but the static donation code seems to be the most compelling. A user wishing so solicit donations from the public may safely associate a payment code with her identity and receive funds in a relatively private manner.

The user story is similar to BIP47:

  • Receiver posts their payment code
  • Sender creates a notification payload and either posts it to the chain as an OP_RETURN or to some other bulletin board system
  • Receiver scans the chain for these notification payloads and upon finding one, generates the chain of stealth addresses

Improvements over BIP47:

  • Supports multiple address types
  • Better notification payload privacy
  • Smaller notification payloads

For more context, check out privatepayments.org and the Rust reference implementation.

This would not replace the existing BIP47 support, as the protocols are not mutually exclusive.

@craigraw
Copy link
Collaborator

Private payments (BIP351) is not light client compatible, and therefore not a good fit for Sparrow or any other light client wallet (which is essentially all except for full node implementations like Bitcoin Core). The same problem is shared by Silent Payments, and IMO not sufficiently discussed as a disadvantage when compared to BIP47 in either proposal.

The workaround described in Appendix B (Potential OP_RETURN services) is not available in any sufficiently decentralised form to be a workable alternative, and in addition adds further complication for the user, requiring a UI for configuring these services, considering privacy etc.

For these reasons I don't think this approach is currently a practical alternative to BIP47, so I'm closing this off for now.

@privatepayments
Copy link
Author

I've opened a related issue in ElectrumX to support an OP_RETURN index, which would enable more light client support.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants