Subject: [bitcoin-dev] New Silent Payment version

From: woltx <[email-masked]>
Date: Wed, 17 Aug 2022 00:08:11 +0000

PR #24897 (https://github.com/bitcoin/bitcoin/pull/24897) has been updated with a new silent payment version, which eliminates some manual steps from the previous version (such as the need to set the `keypool` to avoid costly multi-key scan).

This is achieved by using a new descriptor type ("sp()") that has no range and contains exactly one key.

Example: "sp(cQq73sG9....JD51uaRD)#9llg6xjm"

This descriptor introduces a new type of output: "silent-payment". This output type returns a standard Taproot script (Segwit V1), but with HRP changed from "bc" to "sp" on the mainnet (or "tsp" on testnet and signet).
This output type will always generate the same address (unless another "sp" descriptor is enabled on the same wallet).

$ ./src/bitcoin-cli -signet getnewaddress '' 'silent-payment'
tsp1pfmjyl7ecpmx8yf8cu6g3ez36jy7s9mzuh5pdnal3k0n588uzgmfs4s4fws

To create a silent transaction, simply use the silent payment address as one of the outputs.
The "send" RPC will automatically identify and tweak it.

The transaction can contain multiple outputs, combining silent and standard addresses.

I have written a step by step signet tutorial so reviewers can test this new version easily.

https://gist.github.com/w0xlt/a7b498ac1ff14b8c292a22be789bd93f