Open
Description
Supporting receiving for silent payments would be a very large undertaking. However, supporting sending should be relatively pretty trivial.
Tracking issues for SP sending support:
Single party payments:
All inputs are signed by the same entity (MuSig considered here)
Upstream
- Add BIP352
silentpayments
module bitcoin-core/secp256k1#1519 - [WIP] Add bip352 silentpayments module rust-bitcoin/rust-secp256k1#721
- Silent payments addresses (BIP352) rust-bitcoin/rust-bitcoin#2778
- Add support for PSBTv2 rust-bitcoin/rust-bitcoin#3507 123
- rust-bitcoin upgrade to rust-libsecp256k1 with SP
- rust-miniscript upgrade to rust-bitcoin with SP support
Local
- bdk workspace and dependencies upgrade to rust-bitcoin and rust-miniscript with SP support
- bdk_wallet coin select for SP inputs, single key types (
p2wpkh
,p2pkh
) - bdk_wallet coin select for SP inputs, always uses key path spend for TR SP inputs (
p2tr
key path spend)
Multi party payments and hardware signers:
The inputs should be signed by different entities (e.g. CoinJoin)
Upstream
- secp256k1 DLEQ module 456
- rust-libsecp256k1 with DLEQ module 7
- rust-bitcoin PSBT DLEQ data fields
- rust-bitcoin upgrade to rust-libsecp256k1 with DLEQ
- rust-miniscript upgrade to rust-bitcoin with DLEQ support
Local
- bdk workspace and dependencies upgrade to rust-bitcoin and rust-miniscript with DLEQ support
Extras:
- RBF support: The removal of any input used to compute a silent payment output, or the addition of any new input included in the BIP 352: Inputs for Shared Secret Derivation requires the re-computation of the silent payment output.
- TRUC Transactions: Allow wallets without eligible outputs to create silent payment transactions to create a zero fee transaction with a key path spend taproot transaction to create a silent payment output using the first transaction output as input.
- rust-libsecp256k1 with MuSig2 and FROST support
- rust-miniscript with MuSig2 and FROST support
- bdk_wallet coin select for SP inputs, aggregate key types (MuSig2, FROST)
Footnotes
-
BlockStream/secp256k1-zkp implementation exposed for BitBox ↩
-
NUT12 DLEQ cashubtc/cdk#65 (Cashu Development Kit DLEQ Implementation in Rust) ↩
Metadata
Metadata
Assignees
Labels
Type
Projects
Status
Discussion