<p>There are three major reasons I can think of for not implementing this change.</p>
<p>First, it would massively impact transaction validation. To fully validate transactions, you only need to store the UTXO set (set of all unspent transaction outputs), which is currently a few gigabytes in size. If you wanted to disallow address reuse by consensus, you'd also need to keep track of every address (more accurately, output script) that has ever been used, which is a lot more data that also grows at a faster rate than the UTXO set.</p>
<p>Second, this would allow anyone to invalidate an unconfirmed transaction by sending a dust amount to one of its output addresses and getting their transaction confirmed first. This would completely break any off-chain protocol including Lightning.</p>
<p>Third, changes to the Bitcoin protocol generally add features, not remove them. It wouldn't be nice to people who rely on address reuse to remove this feature from under them.</p>

CC BY-SA 4.0
2023-04-23T12:39:28.867Z
2023-04-23T12:39:28.867Z
Vojtěch Strnad
<p>Bitcoin has a growing issue of UTXO dust. Usually this dust occurs from companies trying to track bitcoin use, by sending dust or small transactions to previously used addresses.</p>
<p>There is almost no benefit from allowing this to continue and many disadvantages as it reduces security and anonymity.</p>
<p>We also now have easy ways to avoid address reuse by using Hierarchical Deterministic wallets, so there is no reason that I can see for allowing address reuse to be permitted within the consensus code.</p>
<p>Therefore, why don't bitcoin developers change the code to reject these transactions and hopefully allow the UTXO to start decreasing in size?</p>

<consensus><address-reuse><dust>
why not change bitcoin consensus code to reject transactions sent to previously used addresses?
Rebroad
# why not change bitcoin consensus code to reject transactions sent to previously used addresses?

(Asked by: username_0 on 2023-04-23)

Bitcoin has a growing issue of UTXO dust. Usually this dust occurs from companies trying to track bitcoin use, by sending dust or small transactions to previously used addresses.

There is almost no benefit from allowing this to continue and many disadvantages as it reduces security and anonymity.

We also now have easy ways to avoid address reuse by using Hierarchical Deterministic wallets, so there is no reason that I can see for allowing address reuse to be permitted within the consensus code.

Therefore, why don't bitcoin developers change the code to reject these transactions and hopefully allow the UTXO to start decreasing in size?

**Tags:** consensus, address-reuse, dust


---

## 1 answers

### Answer by username_1 on 2023-04-23. Score: 3

There are three major reasons I can think of for not implementing this change.

First, it would massively impact transaction validation. To fully validate transactions, you only need to store the UTXO set (set of all unspent transaction outputs), which is currently a few gigabytes in size. If you wanted to disallow address reuse by consensus, you'd also need to keep track of every address (more accurately, output script) that has ever been used, which is a lot more data that also grows at a faster rate than the UTXO set.

Second, this would allow anyone to invalidate an unconfirmed transaction by sending a dust amount to one of its output addresses and getting their transaction confirmed first. This would completely break any off-chain protocol including Lightning.

Third, changes to the Bitcoin protocol generally add features, not remove them. It wouldn't be nice to people who rely on address reuse to remove this feature from under them.


---

