The phrase “silent payments” seems to fit perfectly in the context of Bitcoin, since people often associate this currency and its network with anonymity or privacy. In this case, silent payments is the name of a new scheme for transacting with BTC that promises improvements in privacy.
Silent payments could be compared to sending messages through smoke signals, as some aboriginal tribes did in the past. In a reality where silent payments are smoke signals, the equivalent of traditional payments would be cards.
Letters, as well as Bitcoin transactions, are sent directly from one address to another; whereas with smoke signals, as with silent payments, the message is published in view of all, but could only be deciphered by the people or the recipient to whom it is addressed.
The silent payment protocol in Bitcoin it seeks to avoid direct interaction between the address that sends a transaction and the one that receives it; For this reason, the transaction does not travel directly from the sender to the receiver, but must be detected and decoded by the person who will receive it.
Behind the scenes of silent payments in Bitcoin
the developer Ruben Somsen, the brains behind the idea of silent payments in Bitcoin, explains in its repository GitHub the processes that are carried out when carrying out a transaction of this type.
First of all, it is worth mentioning that this payment mechanism makes use of the ECDH Key Exchange protocol (Elliptic Curve Diffie-Hellman Key Exchange).
It is an anonymous scheme in which cryptography is used and allows its participants to establish a shared secret. This tool is extremely useful in these cases, as it works as a kind of key that only the parties involved in the transaction are aware of.
When making a transaction using the scheme presented by Somsen, the first step is taken by the receiver, who generates an address for silent payments in Bitcoin. The sender then creates a shared secret using the ECDH protocol, the public key of the receiver’s silent payments address, and a input (incoming transaction) that you have chosen to make the payment.
The shared secret allows the issuer to make changes to the address of silent payments. However, only the receiver can spend the balance contained in this address. In order to access the payment, it is necessary for the receiver to detect it after having scanned the transactions made in the Bitcoin transaction book.
Silent payments, but somewhat problematic
There are several problems present in executing silent payments in Bitcoin. Some have potential solutions, but not definitive ones due to lack of practicality or efficiency.
A long, long, treasure hunt
One of the main problems is the long time it would take for the receiver to scan all unspent transactions (UTXO) on the network to detect the corresponding payment.
Among the possible silver solutions for this problem is to scan only transactions that use taproot. This would shorten the search tremendously, as taproot adoption is still very low.
However, it is expected that little by little the use of taproot will become widespread among bitcoiners, which would cause scanning problems in silent payments to resurface.
It should be noted that the use of taproot for this type of transaction is highly recommended, as it is one of the most recent improvements made to the Bitcoin protocol and optimizes its privacy and efficiency.
The best option provided by Somsen to the presented problem consists of using all the inputs involved in the transaction, and not just one of them, at the time of modifying the address of the silent payment. This cuts the effort printed on the search in half, although it poses a new setback if you want to use tools like CoinJoin to hide the origin of BTC payments.
Silent payments take the blindfold off CoinJoin
The way the tool protocol works CoinJoin is by nature incompatible with silent payments.
This is because CoinJoin takes care of hiding the input of the transactions for the receiver of the payment and the other participants do not know who it comes from. Silent payments, on the contrary, reveal the input. Fortunately, there is a solution for that too.
So that the participants of a CoinJoin operation cannot know where the silent payment included in the transaction comes from, it is necessary to resort to a blinding scheme.
This type of scheme is able to hide the silent payment input. In this way, the problem of silent payments with CoinJoin is solved, but its cost implies that the complexity of the operation at the programming level increases considerably.
While silent payments represent an interesting improvement to Bitcoin, there are other similar initiatives that have been promoted before.
One of them is SNICKER, introduced by developer Adam Gibson several years ago and specifically focused on improving privacy when using CoinJoin. Another initiative is Wormhole, proposed by the developer Max Hillebrand, and which also focuses on improving privacy among users who participate in operations with CoinJoin.