supporting silent payments (bip352)
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 8.6k
- Forks
- 3.5k
- Avg merge
- 2d 8h
- Merged PRs (30d)
- 61
Description
Description
@MorenoProg asked about how to implement silent payments in https://github.com/spesmilo/electrum/issues/7408#issuecomment-2796696251
Some preliminary remarks:
- the "send to" logic does not require taproot, but the "spend from" logic does.
- actually, even if we do not expose it to users, we already have limited support for taproot key-spend (see #9082)
electrum-eccdoes not support musig yet, but recentlibsecp256k1does, so I guess musig could be added to electrum-ecc "easily".
Note that for a feature to be merged in Electrum, it must not create a situation where user funds are not recoverable from seed. AFAICS, receiving silent payments would not only need a taproot wallet, but they would also break that assumption. Thus, if you want to implement the full "spend from" logic, I think it should be a plugin.
Also, the receiver will need to scan the blockchain in a way that is currently not indexed by Electrum servers. So you need an extra channel to request that information. That's another reason to implement this as a plugin (maybe talking to a local bitcoind)
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reviewing the silent-payments requirements in BIP352 and the limited taproot key-spend support referenced in #9082. Then inspect electrum-ecc, its libsecp256k1 capabilities, and the plugin and local bitcoind integration points; done means an agreed design that preserves seed recovery and supports the required blockchain scanning.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- blockchain
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 20/100