Originally published in the NOWNodes Blog.
In this article, we will consider the concept of “dust” in cryptocurrencies. The terms dust or dusting attack are also associated with it. Let’s figure out what the danger of dusty transactions is and how wallets fight these attacks.
What is Dust in Cryptocurrencies
Dust is small transactions that an attacker uses to spam the network. With their help, he or she can do two things:
- take a place in the block and load the network,
- send transactions to specific addresses and de-anonymize the user via UTXO, through a further transfer path.
The smallest unit of BTC is 1 satoshi. Transactions up to 100-200 satoshi are considered dust.
The First Type of Dust Attacks
Previously, in the cryptocurrency networks which were actively used for payments (primarily Bitcoin), there was competition for a place in the block. This resulted in higher commissions. This was most noticeable at the end of 2017, when the biggest BTC hype in its history awaited.
The now defunct CoinWallet or F2Pool began filling blocks with small transactions. Their motivation is not fully known, but at the same time there was a discussion of forks and increasing the block size from 1 to 2 MB.
By itself, a dust attack and spam transaction cannot be considered a full-fledged attack, since anyone can send as much as they want. They pay a commission and are entitled to it. But it turns out that spam on the network causes inconvenience to everyone else. Members must pay higher fees to bypass the dust in the queue. Otherwise, transactions will be stuck indefinitely.
It was a cheap and effective method to spoil the web. But it worked until some scaling solutions were introduced, such as batch processing and SegWit, the introduction of the Lightning Network and other layers of the network. At the moment, it is more profitable to send only large amounts to the network to offset the high fees.
After the dust attacks, a new function was added to wallets — the ability to adjust the commission rate.
Deanonymization via UTXO
To better understand the mechanics of this attack, you need to know about UTXO. We have a separate article about this.
The wallet amount consists of inputs. Just like regular bills and coins in your wallet. For example, $1,000 can be represented as $500, 2 for $100, and 5 coins for $60. There are 8 items in total. BTC is stored on the account in the same way, depending on how the amount was formed and what kind of “change” came.
Attackers exploit the fact that the inputs are not mixed. They send in some dust and wait for it to mix with other UTXOs. This allows you to discover which addresses belong to the victim. If you need to track down the addresses of a large company or an important whale, analytics is worth it. Knowledge can be used to predict and trade information, phishing attacks, or extortion.
The original solution to the problem was presented by Peter Todd, Dust-B-Gone.
It is necessary to send the dust so that it is collected in one transaction with the NONE | ANYONECANPAY.
This means that anyone else can add inputs to a transaction, but outputs are undefined. The transaction is then sent to Peter Todd’s server, where the script collects it and other translations together. Periodically, a one-time transaction is received that destroys the dust. Since the small transfers of many people merge, no one can tell where it is or where it comes from, and therefore which coins are associated with the address. This is a kind of mixer.
Gradually updates have introduced wallets. Samourai Wallet now has a coin control function, where you can mark unknown transactions with the “Do not spend” flag.
Coin control is arguably the most effective way to combat this attack. If the recipient can completely ignore the received dust, they will protect their privacy. In addition, not only the attacker wants to deanonymize the user, but also the laboratories under the governments.