Bitcoin’s Attack Vectors: Dust Attacks
In this article, we’ll take a look at the ‘dust’ phenomenon. Dust refers to the creation of minuscule transactions that an adversary may use to either ‘spam’ the Bitcoin network and take up block space, or to pepper certain addresses with tiny UTXOs in order to attempt to deanonymise users that go on to transact with them.
The ‘Stress Test’
It’s no secret that Bitcoin has previously struggled with high transaction fees as a result of competition for block space — perhaps most notably towards the end of 2017. The problem hasn’t really been severe since, but it’s a favourite episode for altcoiners cherrypicking flaws to this day.
A number of actors in the past (i.e. the now-defunct CoinWallet.eu or F2Pool) have taken it upon themselves to push the network to the limit by filling up blocks with small transactions. Though motivations are often unclear, many speculate that they’ve been used as a tool to drive a big block agenda.
(Laurent MT, developer of the OXT.me block explorer, has done a fascinating analysis on waves of such attacks.)
Of course, some would contest that the concept of ‘spam’ transactions is compatible with the nature of the Bitcoin ledger, holding the belief that a user should have the right to spend as they see fit, provided fees are being paid.
Bitcoin is pay-to-play, though actors spamming the network are a nuisance to everyone else, in that ‘honest’ participants are required to pay higher fees to avoid delays in having their transactions included in a block. Wider adoption of features like batching and SegWit benefit everyone involved, which is why we often see operators with high throughput coming under fire for failing to integrate available scaling solutions.
Prima facie, it may seem viable to weaponise one of Bitcoin’s greatest shortcomings (scalability), but on the flipside, it’s a shortcoming to solve which incredible amounts of developmental efforts are being put into. The majority that haven’t forked off to a bigger block solution recognise that advances like the Lightning Network and subsequent layers are crucial to ensuring that the network can withstand not only spam attacks, but the adoption of Bitcoin by the masses. At this point, opinion is unanimous that on-chain settlement will be better suited to transferring large amounts (so as to offset potentially steep fees).
Fees are nothing more than bids for inclusion in a block. It may be problematic for wallets that use a fixed fee rate, but many more offer the ability to adjust based on the state of the mempool/urgency of settlement.
Dust and Deanonymisation
UTXOs in Bitcoin are best thought of as an assortment of coins (for lower amounts) and banknotes (for higher amounts). When you make a payment, there’s a very good chance you’ll give the merchant a combination of smaller coins, or a note that you’ll receive change for. There’s also a very good chance that you’re not keeping an eye on every cent jingling about in your pocket.
Attackers know this, and that’s precisely what they exploit by ‘dusting’ your wallet. To extend the analogy (obviously fiat is orders of magnitude more fungible that Bitcoin, so bear with me and the assumption that each coin is branded with a unique number), imagine that a malicious actor decides to make a perfect replica of a quarter, albeit embedded with some kind of camera/scanner that reads and identifies your other coins when you go to make a payment.
In the case of Bitcoin, an attacker would send dust to a given address, and wait for it to be used in conjunction with other UTXOs, thereby discovering which addresses are also owned by the target. This attack has existed for awhile – see this BitcoinTalk thread or Peter Todd’s Dust-B-Gone script.
Insofar as raising awareness and delivering a convenient solution is concerned, however, there’s no doubt that Samourai Wallet takes the cake — they were vocal about this attack vector in our interview last year, and have implemented a coin control feature where unrecognised transactions can be marked as ‘Do Not Spend’.
Indeed, coin control is perhaps the most effective way to deal with this attack, allowing the recipient to simply ignore received dust altogether so as not to risk compromising their privacy. It’s less of a systemic issue, and more of a user awareness situation. With granular controls and user-friendly interfaces and a wider understanding of the privacy misconception in Bitcoin, however, it’s one that is bound to disappear over time.
I’d rank this vector as less of a pressing issue and more of a minor nuisance. At the end of the day, miners will prioritise transactions that offer higher fees. It’s uneconomical for adversaries to spam the network on a large scale indefinitely, and even then, individuals are still able to transact off-chain until fees lower. Where privacy is concerned, it’s simply a case of recognising unsolicited deposits, and disposing of/hiding them accordingly.
Cover art by author.