Hi, I was just playing with my Bitcoin and wanted to share my experiences with Silent Payments with you. In this little guide, I'll take a closer look at Silent Payments, a new method for sending and receiving on-chain Bitcoin that prioritizes privacy. We'll dive into its key features, discuss the wallets that support it, and walk through the process of sending and receiving Silent Payments.

🎉 Key Features

Here are some key features of Silent Payments:
Silent Payments offer a range of benefits, including: 1 2
  • Reusable addresses: No need to generate a new address for each transaction, providing a better user experience and increased privacy
  • No added transaction costs: Silent Payments don't increase the size or cost of transactions.
  • Enhanced anonymity: Outside observers can't link transactions to a Silent Payment address.
  • No sender-receiver interaction required: Transactions can be made without any communication between parties.
  • Unique addresses for each payment: Eliminating the risk of accidental address reuse.
  • No server required: Silent Payments can be made without the need for a dedicated server.

Wallets

Several wallets currently support Silent Payments:3
  • Blue Wallet
  • Cake Wallet
  • Silentium app (silent payment wallet)
WALLETSENDINGRECEIVINGSCANNING
Blue Wallet☑️
Cake Wallet☑️☑️☑️
Silentium app☑️☑️☑️
Additionally, the following wallets are working on implementing Silent Payments:

Prerequisite

For this guide, we'll be using two wallets: Blue Wallet for sending a Silent Payment and Cake Wallet for receiving it.

Sending Silent Payments with Blue Wallet 🔵

To send Silent Payments, we'll need to fund our Blue Wallet first. Open Blue wallet, create a regular Bitcoin wallet by tapping Add a wallet, and then receive some sats into it.

B - Cake Wallet 🎂

Since Blue Wallet currently only supports sending Silent Payments, we'll use Cake Wallet to receive them. To set this up, create a Bitcoin wallet in Cake Wallet and then enable Silent Payments by toggling the feature on.

Settings ⚙️

Tapping on the Hamburger menu icon in the right opens the settings menu. Let's take a look at what options are available.

A - Connection & sync 🔗

Here, we can reconnect the wallet, manage nodes, and even connect to our own node, which is the recommended option. Additionally, we have the Silent Payments Scanning feature, allowing us to customize the scanning process by specifying either a Scan from block height or Scan from date.

B - Silent Payments settings 🔈

We can toggle on the Silent Payments card on the Home screen to display this feature. Enabling Always scanning allows the wallet to continuously monitor the blockchain for incoming Silent Payments. We can also specify scanning parameters to customize the scanning process to our needs as described above.

C - Secruity & backup 💾

To secure our wallet, we can create a backup by following the in-app prompts. This will ensure we have a safe copy of our private keys, allowing us to recover our wallet if it's lost or stolen. Additionally, we can view our seed phrase and private keys, change our PIN, enable biometric authentication, and set up 2FA for an extra layer of protection.

D - Privacy Settings 🔒

We can also enhance our wallet's security by using Tor to encrypt our internet connection and safeguard our privacy when accessing external sources. Additionally, we can prevent screenshots to keep our wallet information confidential, enable auto-generated addresses to create new ones for each transaction, and disable buy/sell actions to prevent unauthorized transactions.

E - Other settings 🔧

We can manage the fee priority to set the default fee level for our transactions. This allows us to control the transaction fees associated with our Silent Payments, taking into account the current network utilization.

Receiving Silent Payments ₿ 🔽

To receive a Silent Payment, start by tapping the Receive icon in Cake Wallet. Next, enter the amount you're expecting to receive. To specify the address type, tap Receive at the top of the screen again, and then select Silent Payments from the options.
On the main screen, our reusable Silent Payment QR code and address are displayed.
The address is quite lengthy, as expected:
sp1qqttmqkk7yh2s7x4nud66d2f44mlk9ul4fpadsrjvgg4lr20e2wx2jqkrm8q68z3zgq4mj6vp2g2qdmupqyq29sxny2ammnwqrnl4t7v66u7tfnys.
Now, let's use a compatible wallet, such as Blue Wallet, which supports BIP 352, to scan the QR code and send a Silent Payment. I'll proceed with sending the payment using Blue Wallet.

Sending with Blue Wallet 🔵

To initiate the transaction, we'll start by either pasting our reusable sp1qq... address into Blue Wallet or scanning the QR code directly within the app.
Once we've entered the sp1qq... address, the wallet automatically derives a corresponding bc1p... Taproot address (P2TR), which will be used for the Silent Payment.
The Silent Payment has been sent successfully from Blue Wallet.
After a short time, we'll receive our transaction in Cake Wallet. However, even with Silent Payment always scanning enabled, we might need to manually rescan the blockchain to see the incoming transaction. To do this, we can head to Silent Payment Settings, enter a specific block height, and initiate a scan from there.
With the Silent Payment process now complete, the transaction has been successfully executed, utilizing the reusable address and Taproot technology to preserve sender and recipient anonymity, while still allowing for secure and efficient transfer of funds on the blockchain.

Conclusion 🎯

After testing, I believe Silent Payments offer a significant improvement for on-chain privacy, addressing several design flaws. Specifically, they:
  • Eliminate the need to verify addresses when withdrawing from exchanges
  • Prevent address reuse by design
  • Improve upon the notification transaction required in BIP47
  • Provide a similar workflow to BTCPay Server, but without the need to run a server to generate new payment addresses
However, Silent Payments do not fix everything. Notably, they do not address the issue of KYC Bitcoin's footprint, and it's essential for users to be aware of this limitation.
There are also some downsides to consider:
  • Increased computational requirements for scanning and detecting Silent Payments, which demands more resources and bandwidth
  • A broader implementation across wallets would be a significant improvement, increasing the adoption and effectiveness of Silent Payments.

Resources 📚

Footnotes

Thanks for the update
reply
Thank you very much. This is really a very cool feature for bitcoin.
reply
I would be cool to see the if the mix of Silent Payments and BOLT12 static codes would make sense.
reply
Thank you so much for the guide. I've bookmarked it for future reference.
reply
your post shared on twitter with a few cute lines
21 sats \ 5 replies \ @OT 17 Sep
Did scanning the transaction take a while on the receiving end?
reply
Not really just a few minutes, but I assume that will likely increase over time. Especially after reconnecting or restoring a wallet, as it needs to retrieve data from the point of generation. Maybe @rafael_xmr can share some more insight?
reply
If I imagine the same, it has to scan all the transactions contained in the block, and I think that the wallets establish a period to start the search, it would not make sense to search before silent payments were implemented.
reply
yes you are all right, @OT, @runningbitcoin, @bitalion so scanning has a few mechanisms to save time and resources, it definitely starts at an arbitrary point in time, the cake node for example only scan blocks from the first day of this year on, since there were no known implementations of receiving SP the years before, (even though there was one in development for bitcoin-core) and another thing is as time passes and more blocks come in, that also means more old taproot outputs end up being spent, so those taproot outputs can be skipped as you don't need to scan a payment that is already spent by someone else, therefore by scanning only unspent taproot outputs you find faster which ones you definitely received and did not spend yet, so older blocks end up scanning faster than newer blocks.
So the time to scan will always depend on the size of the scannable taproot output utxo set, and also depends on the device, but recently I was able to scan all blocks on my phone (samsung phone) on cake wallet in under an hour, which was about 37k blocks.
But also you don't need to scan everything all the time, you can start scanning by a certain date, or stop scanning when you've found all payments, etc
reply
Thanks for the detailed explanation.
reply
That's what I imagined, thanks.
reply
I look forward to desktop apps that support all the silent payment functionality.
reply
Sparrow would be 💯
reply
This is a really cool feature that way people can go back to using bitcoin and being anonymous
reply
Excellent resource, thank you very much and great work, this will be very useful to me
reply
👍 nice one 💪🏻🤝
reply
This is cool. Can the KYC issue be solved?
reply
No, it doesn't help improve privacy at all
But it can help users by forcing them into using Taproot address which can obscure trace of multisig spending TX. Back to silent address, what it does is just automate the process of generating Onchain disposable address (instead of doing it manually, it'll shift the hassle from sender to a coordinator server)
In simple words : even if your exchange support sending to silent address, they still know which Taproot address the user uses for withdrawal
reply
They are excellent wallets, really. As I have recently started using Bitcoin, it has helped me a lot to be able to make payments and receive them instantly.
reply
Hello, what a great guide. You haven't tested how long it would take to find the balances that belong to silent payments if the wallet is restored. Maybe you did this recently, but I would like to have an idea of ​​how long this operation would take. Thanks.
reply
Thanks so much this is nice feature
deleted by author
reply