Sparrow terminal and Whirlpool mixes guide

19 replies 307 views
degenx380Member
Posts: 344 · Reputation: 69
#1Sep 1, 2023, 11:18 AM
So, this tutorial is outdated now. Since the release of Sparrow 1.9.0, the mixing feature isn't supported anymore. Here are links to the other tutorials in this series: First one: Running Bitcoin Core on Raspbian Lite (without GUI). Second one: Installing Electrs from source. Fourth: Connecting BISQ to our node. Fifth one: Hosting a Monero node on the same machine. Installing Sparrow Steps: First, grab the right version for your setup and download it using wget: Then install the deb file with this command: The Sparrow binary will typically end up in Running Sparrow By the way: Using ssh can be a bit tricky. If you start a session, run Sparrow, and then close ssh, it’ll also close Sparrow. So, let's use the "screen" command instead. If you don’t have it installed, run: Steps: Run the screen command: Next, go to the path I mentioned earlier ("/opt/sparrow/bin") and run Sparrow there. You'll see this screen pop up: Click the preferences tab and move to server: Then pick the option you want for the node Sparrow will connect to. Personally, I have Sparrow running on the same Linux device as my node, so it looks like this: After that, head back to the wallets tab and click on it: Hit "Create wallet": Next, go to the "Deposit" tab: This will give you an address to send your funds to: Now move to the UTXO tab and cl...
4 Reply Quote Share
Posts: 56 · Reputation: 32
#2Sep 1, 2023, 05:27 PM
Good tutorial. One suggestion:  You can use systemd to start Sparrow as a daemon on system startup, eliminating the need to start it manually.
2 Reply Quote Share
neondevMember
Posts: 135 · Reputation: 59
#3Sep 1, 2023, 11:38 PM
You would not gain any privacy with this method if you do not enable Tor, the Whirlpool coinjoin coordinator can simply link your inputs to your outputs for every mix by looking at the IP address that registered them. And unfortunately, Whirlpool coinjoins reveal common input ownership and create toxic change that can be used to track your future transactions:
6 Reply Quote Share
degenx380Member
Posts: 344 · Reputation: 69
#4Sep 3, 2023, 09:48 AM
Thanks for the info. It doesn't affect the tutorial itself though. Any addition is welcome, so If you have any technical details, let me know and I can add them to the OP.
3 Reply Quote Share
quantumhqMember
Posts: 230 · Reputation: 76
#5Sep 3, 2023, 06:43 PM
First you'll need to install and run a Tor daemon on your Raspberry Pi. Inside the Sparrow terminal, go to to Preferences -> Server -> Edit, and then select whether you are using Bitcoin Core or Private Electrum. Select Continue. On the next screen go down to "Use Proxy?" and select "Yes", in "Proxy URL" put 127.0.0.1 on port 9050. This will route all external Sparrow traffic via Tor. Excellent set up, by the way. Your own node, own Electrum server, Sparrow, all via Tor, for endless free coinjoins. Which Electrum server package are you running on your Raspberry Pi? Next up you'll want your own instance of https://github.com/mempool/mempool.
2 Reply Quote Share
degenx380Member
Posts: 344 · Reputation: 69
#6Sep 3, 2023, 07:17 PM
Thanks. Who said I don't run my own mempool instance?  I do run my own mempool instance I run 2 nodes, to be honest. Specifically: 1. I run Umbrel on an RPi. There I run btc core + electrs + dojo + robosats + LND (which I plan to remove soon) + my own mempool instance 2. I run Raspbian Lite (no GUI) on an RPi. I wanted to have clean custom setups here. So, for now, I run btc core + electrs + Sparrow + CLN (which doesn't work as expected but I don't have time to figure out what's wrong) Next steps: 0. I will properly install Tor on the second RPi. The first node (umbrel) works with TOR as expected. 1. I want to remove LND forever 2. I want to properly install CLN 3. I want to install mempool instance on the second node.
2 Reply Quote Share
Posts: 705 · Reputation: 103
#7Sep 3, 2023, 08:02 PM
In the past when I ran Sparrow Wallet from the command line, or at all really, I had issues getting it to connect to anything. There was no firewall running. With a Bitcoin node, the connection would not get established, and the same thing happened with public Electrum servers but that must have a more obscure reason. I had never tried connecting a private server to it, though. So Sparrow is a pretty good wallet, once you get the connection working first.
1 Reply Quote Share
neondevMember
Posts: 135 · Reputation: 59
#8Sep 3, 2023, 08:07 PM
There's a huge problem with "endless free coinjoins" - Sybil attackers get endless free coinjoins as well.  As you might imagine, Chain analysis companies attacking the coinjoin pool disproportionately benefit from these free remixes because they have a lower time preference than real Bitcoiners that actually transact.
4 Reply Quote Share
quantumhqMember
Posts: 230 · Reputation: 76
#9Sep 5, 2023, 09:26 AM
Ok, that's an even better set up. Do you also use Samourai on the go while pointed at your Dojo? Or do you just use Dojo for Sentinel? Did you check the logs to find out what was going on? That's pretty much the opposite of my experience. I was pretty taken aback when I first installed Sparrow at just how easy it was to connect to my own node on the same device. Literally one click on the button which says "Bitcoin Core" in Sparrow and it was done. It's a little bit more involve to connect it to your Electrum server or a node/server on a different machine, but I've still gone through those processes several times with different machines and OSs without ever having too much trouble.
1 Reply Quote Share
degenx380Member
Posts: 344 · Reputation: 69
#10Sep 7, 2023, 12:07 AM
Currently my mobile experience with Bitcoin is: Sentinel  I have some addresses in Sentinel and I use them to receive funds (on the go). Those are addresses from my cold storage wallet. I could also monitor the XPUB of course, but I didn't want to. I only have 10 - 20 addresses ready to be deployed in case I need to receive funds. Zeus I use Zeus to connect to LND node (CLN is also available of course). I like Zeus because it is mandatory to connect to own node in order to use it, so it helped me privacy-wise. Also the main dev is very approachable and we had a small conversation once (not too technical). The main reason why I use it is for LN transactions. I don't manage my channels with it. I have tried Samourai and I have used it for a while (connected to my Dojo). I liked it very much, but for several reasons I don't want to have an on-chain bitcoin wallet on my phone. In general, when "on the go", I need to have super minimal functionalities. I try to minimalise most of my everyday clutter (I hope this word makes sense here). I only need to pay fast or receive fast. I can pay fast with LN and receive fast both on-chain and on LN. So my set-up is very convenient so far. Of course being connected to my node is a must for me.
3 Reply Quote Share
degenx380Member
Posts: 344 · Reputation: 69
#11Sep 7, 2023, 05:42 AM
By the way, I have tried something more. I have added my Cold PubKey on Sparrow and I have set my PostMix UTXOs to automatically send there after several rounds of mixing. More specifically I have: 1. imported my XPUB on another wallet in Sparrow 2. gone to the Postmix UTXO tab in my hot wallet and pressed "mixing to..." button. I have set a value of 20 mixes. This translates to "send to the other wallet once the utxo has 20 mixes or more". Using those steps above you can literally set it and forget it. The only thing you have to do is send funds to a Deposit address and the whole process is done automatically.
1 Reply Quote Share
quantumhqMember
Posts: 230 · Reputation: 76
#12Sep 7, 2023, 07:13 AM
Here's a question I haven't been able to find a straight answer to - can you bring the cold storage online and continue remixing for free? Let's say I generate a new wallet on my airgapped computer, import the relevant xpub in to Sparrow, and mix a few coinjoin outputs to this cold wallet. A year later, I want to spend these coins, but I want to coinjoin them a bit more first. Can I import the seed phrase for this cold wallet in to Sparrow (making it a hot wallet), have Sparrow detect the UTXOs as coinjoin outputs, and pick up exactly where they left off and keep remixing?
2 Reply Quote Share
degenx380Member
Posts: 344 · Reputation: 69
#13Sep 7, 2023, 10:35 AM
I don't think so. Here is why... In order for this to happen, adding the seed phrase should create 4 accounts (deposit, premix, postmix, badbank) and send the coins to the deposit account. I think the deposit account lives under the default derivation path, so technically perhaps it wouldn't need to "send" the coins to this account because this is also the default derivation path for the cold wallet. Now, let me share my own experience, because I have tried something very similar. I think you have actually found a "bug" here. I have added the seed phrase to a cold wallet I had and it didn't generate the 4 accounts. When I imported my seed phrase, it didn't actually become a hot wallet. I was unable to sign transactions without using my HW. Essentially, I had a hot wallet where I could see the seed phrase, but I couldn't use it as a hot wallet. I had to sign using my HW instead. Give it a try, I think it will behave exactly as I mentioned above.
2 Reply Quote Share
atlas_keyNewbie
Posts: 100 · Reputation: 16
#14Sep 7, 2023, 03:46 PM
Shouldn't the software know how to generate the individual private keys based on the seed you imported into it? Have you tried importing a master private key or individual private keys (if it's possible) to see if you will be able to sign the transactions then?
6 Reply Quote Share
degenx380Member
Posts: 344 · Reputation: 69
#15Sep 8, 2023, 06:54 PM
No I have only tried importing the seed phrase to the existing wallet. Obviously you can start a new wallet (hot software wallet) and start fresh adding the seed phrase. This can potentially work. I expect the utxos to be in the deposit account. If they are there then of course you can coinjoin a bit more
1 Reply Quote Share
quantumhqMember
Posts: 230 · Reputation: 76
#16Sep 9, 2023, 12:38 AM
So let's say I create an airgapped Sparrow wallet, set it up to be a coinjoin wallet so it creates the usual four accounts, and then from my hot Sparrow wallet mix coins directly to the xpub of the cold postmix account. A year later if I bring that cold Sparrow wallet online, then the previously coinjoined UTXOs will already be in the postmix account. Would Sparrow detect that and allow me to continue to coinjoin them? You can add the four accounts manually by opening your wallet, clicking on the "Settings" tab, clicking "Add Account..." and scrolling down to "Whirlpool Accounts". Yes, but then you would have to pay the pool fee and the Tx0 fee again, which would necessitate you either joining a smaller pool or consolidating some UTXOs together to stay in the same pool, which negates the point of doing this in the first place. I want to keep coinjoining as if nothing has happened.
1 Reply Quote Share
degenx380Member
Posts: 344 · Reputation: 69
#17Sep 9, 2023, 03:45 AM
I will try it and I will update this post as soon as I have an answer.
1 Reply Quote Share
degenx380Member
Posts: 344 · Reputation: 69
#18Sep 9, 2023, 05:07 AM
Answer to o_e_l_e_o for the question above: It didn't work. For some reason I am unable to create the whirlpool accounts for an airgapped wallet. I could only add accounts 1 - 9. I scrolled down but there is no "whirlpool accounts" option, whereas for a hot wallet the option was there. So I did something else. I created a hot wallet in Samourai with the Whirlpool Accounts enabled. I sent some sats and it made some coinjoins. So, I had 3 UTXOs in my Postmix account with some mixing rounds each (3, 5, 6 respectively). Then I created a hot wallet in Sparrow with the same seed phrase. Indeed there were 3 UTXOs in Postmix, so I pressed "Start Mixing" and it started all over again. Now, my UTXOs have more mixes (4,5,7 respectively). So, this workaround worked, but the original approach you mentioned didn't work for me.
0 Reply Quote Share
shardone515Senior Member
Posts: 2 · Reputation: 924
#19Sep 9, 2023, 11:15 AM
This is FUD. Address clusters and peeling chains are not unique to Whirlpool CoinJoins. The exact same thing can happen with Wasabi mixes (which you are obviously here to shill) without proper coin control practices. I followed all of the txs you mentioned and you're right. They are linked to each other via a peeling chain but that doesn't mean that the common ownership heuristic doesn't apply to Wasabi txs after they get mixed. Not using adequate coin control practices can absolutely result in txs being linked together but that has nothing to do with Whirlpool specifically. I think you're being a bit disingenuous with your response and are more interested in flexing on OP while you tout Wasabi in your signature and website link.
2 Reply Quote Share
neondevMember
Posts: 135 · Reputation: 59
#20Sep 9, 2023, 02:24 PM
I am not spreading FUD, address clusters from common input ownership and peeling chains from leftover change ARE unique to Whirlpool coinjoins.   You are spreading FUD about Wasabi's coinjoins because common input ownership is not revealed, and peeling chains are not produced (unless you are a whale with more coins than all the other participants), and there is no coin control necessary.  Anyone can verify this is FUD by simply looking at the Bitcoin blockchain: Whirlpool does not provide this sort of complete privacy for your entire funds like Wasabi does.  You always generate traceable leftovers: No, I'm not being disingenuous, people following the guide will automatically be deanonymized since they are not using Tor.  The worst possible outcome is that people get a false sense of security (and pay sats for it!)
4 Reply Quote Share
?Reply
Sign in to reply to this topic

Related topics