Address Reuse In Wasabi

nopara73
nopara73
Aug 1 · 4 min read

Type 1 Address Reuse: Donation
Type 2 Address Reuse: Coordinator Address
Type 3 Address Reuse: Dusting
Type 4 Address Reuse: Intentional
Type 5 Address Reuse: Mixing With Same Wallet File
Type 6 Address Reuse: Wallet State Issue

Type 1 Address Reuse: Donation

It is not only legitimate, but desired. If you accept donations to an address, you should be registering these UTXOs together to one coinjoin round. Of course block explorers will note it as address reuse in the coinjoin, which is technically correct, but it misleads the observer, because he will think something is wrong. You better consolidate your donations into one UTXO instead of many, and you might as well do it in a coinjoin.
How to improve? To encourage address reuse here, when we are selecting coins to coinjoin, we should intentionally select coins together those are on the same address.

Type 2 Address Reuse: Coordinator Address

The coordinator address participates in every coinjoin, thus it’s address reuse. The idea is to be transparent about what a Wasabi coinjoin is and what isn’t. Otherwise only blockchain analysis would be able to figure this information out, and it’d be able to do this without a mistake. This way anyone can.
How to improve? The idea of coordinator address reuse is transparency. We could give up transparency here to confuse less sophisticated observers by creating a new coordinator address for every CJ. It’s a different tradeoff, not an improvement.

Type 3 Address Reuse: Dusting

A while ago someone dusted many Wasabi coinjoin UTXOs. This is also address reuse, there’s nothing to do about it, Bitcoin is a push-based system.
How to improve? In response we introduced a default, modifiable dust limit. While this mitigates the potential privacy implications, this doesn’t make the address reuse to not appear in block explorers.

Type 4 Address Reuse: Intentional

Someone modified a fork of Wasabi to make sure the same two addresses are recycled in every coinjoin registration. This is someone intentionally deanonymizes himself. I cannot find an explanation for this behavior. However there are numerous claims about this being some kind of Sybil attack, which makes no sense in multiple levels. One bad actor participating in numerous mixes lowers our anonymity set, but only a bit. If there’s 100 participants in a mix and of them one isn’t anonymous it makes no difference. Furthermore if I would want to Sybil attack Wasabi I would do it in a way to try to hide the fact that I’m Sybil attacking, or at the very least I wouldn’t make changes to the code to announce that I’m Sybil attacking.
How to improve? There’s nothing to improve. We could refuse the registration of these actors, but then they’d change their addresses, then we’d have to pick them out again, then they’d change their addresses again and so on… This is a never ending cycle.

Type 5 Address Reuse: Mixing With Same Wallet File

We noticed sometimes to speed up the mix, people are running multiple Wasabi instances with the same wallet file. In this case one wallet software instance is not aware of the other registering the same coin to a mix and it results in address reuse.
How to improve? We could prevent mixing with the same wallet file, but we have long term plans to fix it. In the future we want to prevent opening multiple Wasabi instances altogether. But for this we will have to build out multi-wallet monitoring and by extension multiwallet loading so to not take away existing functionality without providing an alternative.

Type 6 Address Reuse: Wallet State Issue

Finally we arrived to the type of address reuse that was actually a known bug in Wasabi. This was happening, because we sometimes lost unconfirmed transactions, so the wallet wasn’t aware of that an address was used, thus it registered it to a coinjoin.
The unconfirmed tx loss is thought to be eliminated since 1.1.6 release, but of course this still happens for those who are using older software versions and since it was by no means a common occurrence there’s no need for forcing everyone to update.
Also to make sure it fixes the issue I started mixing with a new wallet a while ago and there was no address reuse so far, so it seems like this bug is fixed.

Recent Criticism

There are parts of Wasabi I am not particularly proud of. Type 6 address reuse was an especially uncomfortable bug, well-used wallets take minutes to load, while these should happen instantly, the GUI sometimes freezes on some operating systems, our fullnode integration only fetches blocks, it’s not a proper fullnode integration.
No system is perfect, but carefully engineering a publicity stunt about type 1, 2 and 4 address reuses is just dishonest. There are flaws in Wasabi to pick from, why not pick from these flaws? Why make up fake flaws? I constantly talk about them, so they aren’t even hard to discover. Or is it because you don’t want to give us a chance to fix the fake issues? Because what’s not broken can’t be fixed.

 by the author.

nopara73

Written by

nopara73

https://www.youtube.com/watch?v=QiySI4-MWww

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade