Add Silent Payment Support
- Dominant language
- Rust
- Stars
- 111
- Forks
- 60
- Avg merge
- 1h 32m
- Merged PRs (30d)
- 1
Description
I'm working on the [ELIP for Silent Payments](https://github.com/ElementsProject/ELIPs/pull/37#event-26264844652) and have a [reference implementation](https://github.com/42Pupusas/elip-sp-reference/tree/main) working with LWK.
I have also started prototyping what an integration would look like for LWK to support SP directly:
1. Feature-gate: `silentpayments` feature, default-off, gates the module (uses `bech32`)
2. New `lwk_common` types: `SilentPaymentAddress` + `SilentPaymentScanKeys`
3. Key origin: add SwSigner::silent_payment_keys() deriving b_scan/b_spend from seed at an agreed BIP-352 path
4. Wire send: `TxBuilder` (coin selection + balancing around `build_confidential_sp_txout`)
6. Wire receive: scan-client trait `SilentPaymentTweakClient` into the blockchain clients
7. Test vectors: KAT vectors shared with the ELIP
A few open questions that came up during prototyping:
- Scan-client shape: extend `Esplora`/`Electrum` with a tweaks index vs standalone server?
- Send API surface: new `TxBuilder` method vs recipient-type variant?
- HW signing: software-signer-only for v0 acceptable? (Jade/Ledger don't have an API for tweaks)
- Labels scope: full label mechanism in v0, or change-label only?
Most of the changes are expressed in the reference implementation, but I would greatly appreciate guidance on of comments on the current plan an questions.
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.