Pages:
Author

Topic: Consolidating UTXOs and maintaining privacy (Read 471 times)

legendary
Activity: 2268
Merit: 18711
August 28, 2023, 08:05:12 AM
#51
It's BIP85, right?
No, that's something a bit more complicated. This is just incrementing the "account" level of the derivation path as defined in BIP44.

But does it work with multisig?
It does. To ensure that all your public keys are completely different and you don't reuse any of them across both wallets, then you would need to perform whatever action you are taking to all three of your seed phrases. So you would either need to add a passphrase to each seed phrase (it can be the same passphrase for all three if you wanted), or generate at a new derivation path for each seed phrase, and then create a new 2-of-3 multi-sig from those three new wallets.
hero member
Activity: 560
Merit: 1060
Alternatively, you don't even need to do that and can use the same seed phrase and just increment the account number of your derivation path. So your main wallet would be at m/84'/0'/0', and your KYCed wallet would be at m/84'/0'/1'.

This is a very good point. It's BIP85, right? But does it work with multisig?
legendary
Activity: 2268
Merit: 18711
But in the end, I don't feel like being able to take care of multiple wallets and multiple backups.
Well, as long as you have considered the risks and taken steps to mitigate against them, which it sounds like you have.

Just a quick point though - if the stumbling block is multiple wallets or multiple backups, then you can always just use the same seed phrase with a passphrase like "KYC" to create a new wallet which you will know is for KYCed coins only. Alternatively, you don't even need to do that and can use the same seed phrase and just increment the account number of your derivation path. So your main wallet would be at m/84'/0'/0', and your KYCed wallet would be at m/84'/0'/1'.
legendary
Activity: 3290
Merit: 16489
Thick-Skinned Gang Leader and Golden Feather 2021
Note that multisig increases transaction fees, which is especially important when you're dealing with dust inputs.
Yes but for the time being it only has incoming transactions
Planning ahead can reduce your transaction fees later on.

I prefer simplicity.
I was thinking of something like this:
Image loading...
hero member
Activity: 560
Merit: 1060
Instead of freezing the KYCed UTXO, I will prefer to transfer only the KYCed UTXO to a newly created wallet on another device entirely and name it KYCed UTXO which will make me not to forget about it.
I would agree with Charles-Tim here. If it is vitally important to you to not mix your KYCed and non-KYCed coins, then storing them in the same wallet and relying on the wallet freezing certain UTXOs is pretty risky. What if a simple bug in the wallet means it freezes the wrong ones? What if you lose your wallet file, have to recover from your seed phrase, and lose all your UTXO labels and which ones are frozen? What if you simply misclick and unfreeze a UTXO without realizing it? And what if you accidentally sync your wallet via a third party server, therefore revealing that all your KYCed and non-KYCed are owned by the same wallet?

I also have various subsets of coins which I would not want to mingle with each other since each subset comes from a separate source, will be spent in a separate manner, has a different anonymity set, and so on, but I keep each subset in its own wallet.

I have thought about all of that. But in the end, I don't feel like being able to take care of multiple wallets and multiple backups. I prefer simplicity. The KYCed coins are consolidated into a small amount of UTXOs, all of ~same size. It will just help me remember which ones are KYCed. Additionally, I have kept a note that the first N coins are KYCed. Finally, I don't plan to buy KYC coins anymore, so I "know" that the KYC coins are only in between the first transactions of my wallet.
legendary
Activity: 2268
Merit: 18711
Instead of freezing the KYCed UTXO, I will prefer to transfer only the KYCed UTXO to a newly created wallet on another device entirely and name it KYCed UTXO which will make me not to forget about it.
I would agree with Charles-Tim here. If it is vitally important to you to not mix your KYCed and non-KYCed coins, then storing them in the same wallet and relying on the wallet freezing certain UTXOs is pretty risky. What if a simple bug in the wallet means it freezes the wrong ones? What if you lose your wallet file, have to recover from your seed phrase, and lose all your UTXO labels and which ones are frozen? What if you simply misclick and unfreeze a UTXO without realizing it? And what if you accidentally sync your wallet via a third party server, therefore revealing that all your KYCed and non-KYCed are owned by the same wallet?

I also have various subsets of coins which I would not want to mingle with each other since each subset comes from a separate source, will be spent in a separate manner, has a different anonymity set, and so on, but I keep each subset in its own wallet.
hero member
Activity: 560
Merit: 1060
Sparrow and Spectre also has coin control but I have only used it on Electrum.

Why multisig wallet? It has nothing to do with this. Instead of freezing the KYCed UTXO, I will prefer to use coin control to transfer only the  UTXO to a newly created wallet and name it KYCed UTXO which will make me not to forget about it. I will also use coin control to transfer the remaining non KYC to another wallet which I will name non KYCed.

You can use multisig to increase your security, not privacy.

Yeap! If you read my initial post, I have said that my main savings wallet is multisig. And then I said I was thinking of creating one more wallet for KYC and one for non KYC. But, I finally decided to stick to a Multisig and follow the "freeze" option to not blend my KYCed UTXOs with the non-KYC. So, MultiSig is totally irrelevant to the privacy question, but I just said it to add more details in regards to my previous posts.

edit: If I didn't mention it anywhere in the thread, then sorry for the misunderstanding.
legendary
Activity: 1512
Merit: 4795
Leading Crypto Sports Betting & Casino Platform
Many wallets can do that, I use it in Electrum and Bitcoin Core.

Sure, I just didn't know about it.
Sparrow and Spectre also have coin control but I have only used it on Electrum.

Why multisig wallet? It has nothing to do with this. Instead of freezing the KYCed UTXO, I will prefer to transfer only the KYCed UTXO to a newly created wallet on another device entirely and name it KYCed UTXO which will make me not to forget about it. I will also transfer the remaining non KYC to another wallet which I will name non KYCed, using different VPN address for.

You can use multisig to increase your security, not privacy.
hero member
Activity: 560
Merit: 1060
Note that multisig increases transaction fees, which is especially important when you're dealing with dust inputs.

Yes but for the time being it only has incoming transactions (apart from the first ones which I used for testing purposes).

Many wallets can do that, I use it in Electrum and Bitcoin Core.

Sure, I just didn't know about it.
legendary
Activity: 3290
Merit: 16489
Thick-Skinned Gang Leader and Golden Feather 2021
I have only one MultiSig (2-of-3) wallet.
Note that multisig increases transaction fees, which is especially important when you're dealing with dust inputs.

Quote
My initial KYCed UTXOs are now frozen (this is the feature).
Many wallets can do that, I use it in Electrum and Bitcoin Core.
hero member
Activity: 560
Merit: 1060
After a lot of thought, I decided to use a feature that Sparrow offers, in order to make my life simpler.

I have only one MultiSig (2-of-3) wallet.

My initial KYCed UTXOs are now frozen (this is the feature). So I need to unfreeze them if I want to use them. All the other UTXOs will never be combined with the KYCed ones.
hero member
Activity: 560
Merit: 1060
No, not at all.

You can close down Sparrow at any point during the process, and it will pick up where it left off whenever you open it again. For example, once you select coins in the "Deposit" account to coinjoin and have broadcast the initial Tx0, you can shut down Sparrow while you wait for it to confirm if you want. When you come back, you'll have your outputs in the "Premix" account ready to be coinjoined. These will automatically be enrolled in to different coinjoins over the next few minutes, depending on the available liquidity from other users. If you shut down Sparrow, then any which have not yet had that first coinjoin will simply be enrolled when you next open it. Once an output has had its first coinjoin, it will move to the "Postmix"  account. At this point it will be enrolled in to free remixes whenever Sparrow is open, as I explained above.

There is even a button at the bottom of the Whirlpool accounts to start and stop the process as you please, so you can have Sparrow open but not mixing if you want.

Being enrolled in to free remixes is essentially a random lottery between all the liquidity in the pool. Each Samourai or Sparrow wallet will have a maximum of one output of each size chosen at random be eligible for a free remix (so you will never remix with yourself). The frequency at which free remixes happen is obviously dependent on the frequency of new liquidity entering the pool. Given all this, then the higher uptime you have on your wallet then the faster you will get free remixes, but as explained, you are free to shutdown Sparrow, even for months at a time, and then open it back up again and continue where you left off.

THANKS!
legendary
Activity: 2268
Merit: 18711
I thought I had to leave my PC open all day. I mean I thought that once I close Sparrow and re-open it, it would have to restart all over again.
No, not at all.

You can close down Sparrow at any point during the process, and it will pick up where it left off whenever you open it again. For example, once you select coins in the "Deposit" account to coinjoin and have broadcast the initial Tx0, you can shut down Sparrow while you wait for it to confirm if you want. When you come back, you'll have your outputs in the "Premix" account ready to be coinjoined. These will automatically be enrolled in to different coinjoins over the next few minutes, depending on the available liquidity from other users. If you shut down Sparrow, then any which have not yet had that first coinjoin will simply be enrolled when you next open it. Once an output has had its first coinjoin, it will move to the "Postmix"  account. At this point it will be enrolled in to free remixes whenever Sparrow is open, as I explained above.

There is even a button at the bottom of the Whirlpool accounts to start and stop the process as you please, so you can have Sparrow open but not mixing if you want.

Being enrolled in to free remixes is essentially a random lottery between all the liquidity in the pool. Each Samourai or Sparrow wallet will have a maximum of one output of each size chosen at random be eligible for a free remix (so you will never remix with yourself). The frequency at which free remixes happen is obviously dependent on the frequency of new liquidity entering the pool. Given all this, then the higher uptime you have on your wallet then the faster you will get free remixes, but as explained, you are free to shutdown Sparrow, even for months at a time, and then open it back up again and continue where you left off.
hero member
Activity: 560
Merit: 1060
For what it's worth: at one point in 2017, 100k sats wasn't enough to pay for the transaction fee. It really depends on circumstances. As an example: this transaction with 33 inputs of 100k sats each resulted in only 800k sats being sent, the rest went to miners.

Oups. Great...

Here's a link to get you started: https://sparrowwallet.com/docs/mixing-whirlpool.html#mixing-with-sparrow-terminal

Note that you don't have to leave Sparrow open all the time when your coins are in Whirlpool. While Sparrow is open, your coins are available for free remixes. When you shut down Sparrow, they are not. When you open Sparrow again, it will pick right back up from where you were and they are once again made available for free remixes.

If you have a separate device already running your node, then loading Sparrow on to that would be ideal because it will be connected 24/7. But if you can't do that, then simply having Sparrow open whenever you are using your computer will still get you free remixes, just not as quickly as if it was running 24/7.

And of course make sure you are connecting to the coordinator through Tor!

I thought I had to leave my PC open all day. I mean I thought that once I close Sparrow and re-open it, it would have to restart all over again.
legendary
Activity: 3290
Merit: 16489
Thick-Skinned Gang Leader and Golden Feather 2021
I get that, but I can't really find an "optimal" UTXO size... Some say the larger the better. Some say something around 100k sats is the best... Anyway
For what it's worth: at one point in 2017, 100k sats wasn't enough to pay for the transaction fee. It really depends on circumstances. As an example: this transaction with 33 inputs of 100k sats each resulted in only 800k sats being sent, the rest went to miners.
legendary
Activity: 2268
Merit: 18711
Regarding Sparrow whirlpool, I heard a podcast lately where Craig Raw (the main dev) said that Sparrow can run without GUI, as a service in the background and stay permanently open. I will check this, since leaving my computer and the application open for such a big time period is inconvenient. If I could run whirlpool as a terminal service it would be a great idea.
Here's a link to get you started: https://sparrowwallet.com/docs/mixing-whirlpool.html#mixing-with-sparrow-terminal

Note that you don't have to leave Sparrow open all the time when your coins are in Whirlpool. While Sparrow is open, your coins are available for free remixes. When you shut down Sparrow, they are not. When you open Sparrow again, it will pick right back up from where you were and they are once again made available for free remixes.

If you have a separate device already running your node, then loading Sparrow on to that would be ideal because it will be connected 24/7. But if you can't do that, then simply having Sparrow open whenever you are using your computer will still get you free remixes, just not as quickly as if it was running 24/7.

And of course make sure you are connecting to the coordinator through Tor!
hero member
Activity: 560
Merit: 1060
You'll want to spend those coins at some point though, no? If you are using Sparrow anyway, then why not just fire those coins in to Whirlpool? You can ignore them for months or even years if you want and get 100s of free remixes. Good luck to anyone trying to trace them through that. Wink Or as I mentioned above, if they are going to stay untouched then just sell them for fiat and then use that fiat somewhere else to buy back non-KYCed coins.

I don't want to sell, I don't really want to trust an exchange at this point.

Regarding Sparrow whirlpool, I heard a podcast lately where Craig Raw (the main dev) said that Sparrow can run without GUI, as a service in the background and stay permanently open. I will check this, since leaving my computer and the application open for such a big time period is inconvenient. If I could run whirlpool as a terminal service it would be a great idea.


The most important thing for you going forward then will be to ensure permanent separation of any unmixed KYC coins and your non-KYC coins, and make sure never to send coins directly between your two wallets.

Yes, exactly!

If you combine everything into one large UTXO of say 0.1BTC or something like that then either you're going to have to sacrifice privacy as all funds will be in one address at any given time, making tracing easier, or you're going to have to make a ton of change addresses inside the transaction which will cost a premium in transaction fees and kinda goes against the point of consolidating in the first place.

I get that, but I can't really find an "optimal" UTXO size... Some say the larger the better. Some say something around 100k sats is the best... Anyway

legendary
Activity: 1568
Merit: 6660
bitcoincleanup.com / bitmixlist.org
Quote
If you send all the funds you have in each of these addresses, first from A to D and then from B and C to E, if in the future you use D and E for a transaction it will be clear that you, the owner of A that has passed KYC in the exchange, also own the other addresses.
So don't do that in the future Wink

I had said that because the initial idea of the OP was to consolidate everything into one UTXo, but I think it is not in our best interest having too large UTXos either.

If you combine everything into one large UTXO of say 0.1BTC or something like that then either you're going to have to sacrifice privacy as all funds will be in one address at any given time, making tracing easier, or you're going to have to make a ton of change addresses inside the transaction which will cost a premium in transaction fees and kinda goes against the point of consolidating in the first place.
legendary
Activity: 2268
Merit: 18711
No, I only use Sparrow which is connected to my own node. And no, I will not move coins between my wallets. Wallet A (KYC) will stay untouched (no incoming - no outgoing txs).
You'll want to spend those coins at some point though, no? If you are using Sparrow anyway, then why not just fire those coins in to Whirlpool? You can ignore them for months or even years if you want and get 100s of free remixes. Good luck to anyone trying to trace them through that. Wink Or as I mentioned above, if they are going to stay untouched then just sell them for fiat and then use that fiat somewhere else to buy back non-KYCed coins.

The most important thing for you going forward then will be to ensure permanent separation of any unmixed KYC coins and your non-KYC coins, and make sure never to send coins directly between your two wallets.
hero member
Activity: 560
Merit: 1060
If you view the balance of that wallet via anything other than your own full node, then whichever third party node(s) or server(s) you are connecting to will be able to see all the addresses in the wallet and link them together under a common owner. If you have KYCed coins in address A, and you then send some of your non KYCed coins to address B, the third parties can link those together. They could then look to see where the address B coins from, and potentially infer that you own that wallet as well.

If you want to move any coins between KYCed and non-KYCed wallets, they should be coinjoined first, otherwise you establish a link between your two wallets.

No, I only use Sparrow which is connected to my own node. And no, I will not move coins between my wallets. Wallet A (KYC) will stay untouched (no incoming - no outgoing txs).

Thanks though, cause these things used to feel obscure, but thanks to this forum, I have learnt a lot.

A bit Tongue But how cool would it be to say: "Your money is burried at +34° 59′ 20.00″, -106° 36′ 52″"? Cheesy

Super cool! Haha

Side tip: use address labels! And create regular backups, because if you'd have to restore from seed, you'd lose all your labels.
Thanks. I have done multiple mistakes in the past. I just noticed I had reused an address 13 times. Pretty cool  Tongue
Pages:
Jump to: