sparrowwallet / sparrow

Desktop Bitcoin Wallet focused on security and privacy. Free and open source.
https://sparrowwallet.com/
Apache License 2.0
1.38k stars 192 forks source link

Label UTXO when using auto mix to cold storage #319

Closed calvinrzachman closed 2 years ago

calvinrzachman commented 3 years ago

Convenience feature request here! If you leave the wallet unattended while using the auto mix to cold storage feature, you will return to your UTXO sitting comfortably in cold storage, but it is difficult (definitely still possible) to tell which output is which and how many times it has been mixed.

Would it be possible to label the UTXO with this information as they leave the post-mix wallet?

Thanks!

calvinrzachman commented 3 years ago

I only ever ran this on testnet. Mainnet keys are long gone. Don't have the heart to buy back in after that terrible boating accident.

alaznem commented 3 years ago

This feature request is even more important if you mix to the same cold storage from different whirlpool hot wallets. In this use case, one needs to be sure from which mixing wallet the UTXO came from, to avoid mixing different sources when spending.

mixto wallet POV

My proposed relevant information are:

Here's the proposed tx description of the cold storage wallet tx:

Example Whirlpool Wallet Name, 5, af0bc2, ff123c, 0002a, 1234d, ee877

Whirlpool mixing wallet POV

For convenience, naming the tx that mixed the coin to the mixto wallet makes the reverse perspective (from the mixing wallet pov) more clear.

There I propose these information as relevant:

which results in this example string:

Example Mixto Wallet Name, 5, 7d 11h

Separator of the data fields in the string

To make this perfect, one could choose the separator (in my examples it was a semicolon) in the mix to external wallet and maybe even choose an optional prefix and a checkbox to include the wallet name or not. With this, one could use a short form and/or less privacy concerning string than the wallet name the mix came from.

RequestPrivacy commented 3 years ago

Although I understand the "human wish" to have clarity and order in the own utxo set, I'm not sure if this is a goal which should be proceeded.

With whirlpool you break the links to all former activity. The only one who can dox you from there on is...you! Why keep a copy of the "transaction graph" through the mixes? Mix out to cold storage, burn the keys of the mixing wallet and no one, not even you, can recreate the graph back to your original funds.

alaznem commented 3 years ago

Although I understand the "human wish" to have clarity and order in the own utxo set, I'm not sure if this is a goal which should be proceeded.

With whirlpool you break the links to all former activity. The only one who can dox you from there on is...you! Why keep a copy of the "transaction graph" through the mixes? Mix out to cold storage, burn the keys of the mixing wallet and no one, not even you, can recreate the graph back to your original funds.

:heavy_check_mark: This is a good point! I agree on dropping this request/ idea in favor of not self doxing.

:thinking: The main use case for this feature I had in mind was to enable users to manually make sure tx's with multiple inputs (STONEWALL'S and normal multiple input tx's) don't select coins from different whirlpool mixing wallets as inputs of the same tx.

Because I think there is the possibility that these multiple whirlpool mixing wallets joined the same mixes during the whirlpool mixing and therefore selecting such coins again together when finally spending coins away from own possession does reveal more info than what is good for privacy. But at the moment I'm not able to wrap my head about this fully. Maybe there isn't any privacy relevant data leaking in such a case?

Finally, I could rewrite the feature request to something like this:

"Make sure the sparrow coin selection logic never uses coins as input in the same tx which have been seen together in the same whirlpool mixing round before."

RequestPrivacy commented 3 years ago

Because I think there is the possibility that these multiple whirlpool mixing wallets joined the same mixes during the whirlpool mixing and therefore selecting such coins again together when finally spending coins away from own possession does reveal more info than what is good for privacy.

That utxos have been potentially seen together in a previous mix reveals nothing if I understand whirlpool correctly. Or put different, there wouldn't be a privacy gain if you would select just utxos which haven't been seen together. But that's just from my limited understanding and I'm happy to be corrected here.

craigraw commented 3 years ago

I agree with the conclusion that labelling UTXOs from Whirlpool to cold storage is not a good idea - good discussion.

Make sure the sparrow coin selection logic never uses coins as input in the same tx which have been seen together in the same whirlpool mixing round before.

The chances of this are very small - you would need to have the situation where two independent wallets you own are mixing to the same cold storage, both participate in the same mix round, both UTXOs have greater than the configured min mixes and both pass the 25% probability to mix out. Then, both UTXOs are combined in a transaction.

At this point, I would say it's more likely that a Stonewallx2 or Stowaway is taking place from different postmix wallets than a single owner combining UTXOs.

alaznem commented 3 years ago

@calvinrzachman , please check this issue you've opened and corresponding discussion.

:question: Please reply if you agree with the view of @RequestPrivacy , @craigraw and me to see the "not labeling UTXO when using auto mix to cold storage" as feature and not something which needs improvement.

craigraw commented 2 years ago

No response, so I'm going to close this off.