2

If I decide to move all of my bitcoins from one wallet to another, are there any theoretical benefits to generate multiple addresses in a new wallet and split the bitcoins between them?

It will still be a single transaction, but I won't end up with a single address with all my money in it and this should increase anonymity. Is this assumption correct or am I just overthinking it?

Also, if this is correct, is there any benefit to spreading my funds thin by sending small sums to thousands of my addresses? Or am I missing something? Thanks!

1 Answer 1

2

There are a few considerations here: security, privacy, fees.

Its first worth mentioning that when moving to a new wallet you may have the option of importing your existing wallet, rather than generating a new wallet. This would mean paying no transaction fees, and whatever level of privacy you had with the old wallet will be continued (though privacy is partially contingent on how a wallet constructs transactions, so your new wallet may have different privacy assumptions moving forward). In terms of security, you will have to decide whether you are comfortable with importing your old wallet (more handling of private keys/seeds = more chance of error/loss), or if you would just prefer to create a new wallet.

Otherwise, if you are moving coins to a new wallet by sending on-chain transactions, then the nature of the UTXOs your wallet contains will become important. Namely:

  • How many UTXOs does your wallet control?
  • What denominations are those UTXOs? What denominations do you want your new UTXOs to be?
  • Who is privy to your ownership of each of your UTXOs?
  • Who are you trying to maintain privacy against?

I don't think there is a 'one-size-fits-all' answer here. Privacy is largely about plausible deniability, the more possible explanations there are for a transaction's nature, the better your privacy. Some examples:

  • If your wallet only contains one UTXO, then you can just create a transaction that pays the entirety of your wallet balance to one (or more) addresses, and be done with it. If you pay to one address, it may look like you simply moved all funds to a new wallet / address. If you pay to two addresses, then it may look like you made a payment to someone (with the second transaction output being your change address). Note that paying attention to address formats can be important here (the format of each address involved may leak info about which wallet created that address - though good wallets should account for this).
  • If your wallet contains many UTXOs, then you may want to be aware of the 'common input ownership heuristic'. In short: if you spend multiple UTXOs as input to a transaction, then someone watching the chain can infer that all of those addresses belong to a single wallet/owner. This heuristic is not foolproof, but it can still be damaging to your privacy. To overcome this you could perhaps send one transaction per UTXO you own, so that you avoid linking multiple UTXOs together at the time. Note that doing so will end up being much more fee intensive than just sending one aggregating transaction, and many wallets will not be able to functionally accomplish this anyways (it would require strict UTXO controls).

It will still be a single transaction, but I won't end up with a single address with all my money in it and this should increase anonymity. Is this assumption correct or am I just overthinking it?

This isn't quite correct, due to the common input ownership heuristic mentioned above. Consuming all of your UTXOs as input to a single transaction could allow someone watching the chain to infer that a single entity (you) owns them all.

Also, if this is correct, is there any benefit to spreading my funds thin by sending small sums to thousands of my addresses?

I think the largest consideration is still the common input ownership heuristic, and that remains unchanged regardless of how many outputs paying to unique addresses your transaction creates.

That said, creating a single output may make it obvious that you are just consolidating funds. Creating a couple of outputs may add some plausible deniability (who owns each output? does the transaction represent an outgoing payment?), but creating 'thousands' of outputs is almost certainly overkill (with extremely diminishing returns, in terms of transaction fees).

Keep in mind, even if you create multiple outputs now, your future spending habits must also be considered. If you spend multiple of those outputs as inputs to the same transaction in the future, then you will again be subject to the common input ownership heuristic.


So, all of that said, how can you actually gain some privacy? It might be helpful to review this question, or this wiki article. It will definitely help to use a wallet that is built to guard your privacy (many are not, and some even actively degrade it).

And remember: absolute privacy is very difficult, but a more pragmatic privacy is not. You likely don't need privacy against motivated and well-funded nation-states, but you would probably like some privacy against the other users you interact with. Take the steps that make sense for your needs, not for the theoretical limit.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.