spesmilo / spesmilo/electrum

supporting silent payments (bip352)

Open
#9,728 6 comments 0 reactions 0 assignees View on GitHub

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-ecc does not support musig yet, but recent libsecp256k1 does, 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

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.