I decided to not get influenced by other reviews, so i decided to focus on the initial post only, and not read other reviews before starting mine.
Some background info: i'm used to running the previous wasabi version (i had Wasabi-1.1.13 installed before reviewing). I'm reviewing this from an ubuntu vps.
I'll write this review from a user's perspective, notting down my notes whilst i go along the proces of downloading, creating a wallet, funding said wallet, coinjoining and spending my funds.
The downloading was quite painless, the links provided were correct, i did had to look for zkSNACKs pubkey for a couple of minutes tough
=>
https://raw.githubusercontent.com/zkSNACKs/WalletWasabi/master/PGP.txt <=
And, the complete "workflow" on debian/ubuntu would be:
wget https://github.com/zkSNACKs/WalletWasabi/releases/download/v2.0.1.0/Wasabi-2.0.1.deb
wget https://github.com/zkSNACKs/WalletWasabi/releases/download/v2.0.1.0/Wasabi-2.0.1.deb.asc
wget https://raw.githubusercontent.com/zkSNACKs/WalletWasabi/master/PGP.txt
gpg --import PGP.txt
gpg --verify Wasabi-2.0.1.deb.asc Wasabi-2.0.1.deb
if you're greeted with the following text, everything was ok:
Now, the actual installation, you can omit "sudo" if you're doing this as root:
sudo dpkg -i Wasabi-2.0.1.deb
and then, you can start Wasabi by executing "wassabee" from a terminal.
When starting Wasabi, 2 things pop to mind:
- Wow, the gui looks much sleeker than v1
- Can't i skip this intro?
Since i decided to create a new user in order to test out Wasabi, my "old" wallets aren't found, and i'm greeted with a prompt to create a new one:
This is nice, it points new users directly in the correct destination without forcing them to start "digging".
The "new wallet" wizard is uneventfull... Which is good for a wallet, we're not gunning for "suprises" when creating a wallet that will be funded!
Not being able to copy/paste the recovery words is something worthy of a discussion... On the one side, not being able to copy/paste might increase the odds of me writing down the seed on a piece of paper instead of digitally... But it also increases the odds of me not saving them at all, or on an insecure location.
As a veteran of bitcointalk, i'd say the step where you confirm your recovery seed should probably not have a "skip" button, and maybe it would be a good idear to ask all 12 words... You wouldn't believe how many times people want to recover their wallet, but failed to write down their seed!
In the next wizard, the one where you chose your coinjoin strategy, there are a couple things i don't like:
- I don't like the word "automatic". At this point, i haven't tested the actual Wasabi wallet yet, but this word gives me the feeling i'll lose controll... It gives me the feeling Wasabi will just start coinjoins without my consent...
- I don't see enough technical background.... Maybe a link to a page explaining, in detail, what these 3 choices mean exactly... On a technical level: what are the parameters of the "cheapest parts of the week", how does the algo for "maximize speed" work,...
The "agree to terms and conditions" screen is new... It's triggered at a bit of an odd point in time tough, when i first open a new wallet... Maybe it should have been triggered when i first started Wasabi instead? Before the welcome wizard i mean...
The interface looks clean, and it's easy to find what i need to find...
Firstly, i'm going to fund my wallet by clicking on the "receive" button. A 2 step wizard where i fist have to add a label is ok... Can i skip the labeling proces if i want to?
When transferring some tBTC from my mobile wallet (yeah, i have a tBTC wallet on my cellphone... I don't keep actual funds on it tough) i noticed my qr code scanner scanned the qr code in all uppercase characters... Strange, maybe something wrong on my end, but defenately not a problem.
after funding, whe wallet gui looked sleek... I did quite like the old gui as i felt it gave me a "boring" list of unspent outputs with a label wether these unspent outputs where pre or post coinjoin. I like boring lists and clear labels... But i guess this layout will grow on me aswell... I'd still like to be able to see the unspent output being labeled as "pre coinjoin" tough... [hindsight: there were labels attached to my transactions, it's just that in v1, they were coloured and in v2 they're just plain grey, so they weren't obvious to me]
The auto start coinjoin by default still bugged me... I like to be in controll... By hovering over the coinjoin menu, it became clear to me there had to be a setting where i could turn this feature off, but i really don't like features like this being turned on by default... I get why the author is doing this, but i like to be in total control when it comes to my funds...
Whilst waiting for my transaction to get confirmed, i started looking at the settings, trying to turn off auto coinjoin... To my supprise, i could not find it in the settings menus (where i expected them)
. Turns out i have to open the wallet settings instead, but this wasn't clear to me from the start!
Since i'm doing my review on the testnet, i tough i would try the "default" settings and let Wasabi do what it would normally do (auto coinjoin). Let's see what happens next
It seems, because i'm on the testnet, i'll have to wait a while untill other participants join... I'll put this review on pause and wait it out... I'll continue once other participants have joined the coinjoin!
Okay, the first coinjoin is now done... My privacy progress is now 1%, and it looks like i'm queued for another coinjoin round...
At this moment, the coinjoin sessions were already running for a couple of hours... i tried using my seedwords to restore the wallet into electrum to have a look at my unspent outputs, but i must have messed up since the checksum isn't valid.
So, because i messed up my seedwords, i decided to create a brand new wallet and try again... I tried to move my funds from the old wallet to the new one, and to my supprise i couldn't find a "send all" button... Maybe something that should be implemented?
Next item on the list: i now have 3 (testnet) wallets, 2 of whom i no longer have the seed for... They are empty, but cannot be restored (no seed), as a unix guy, i know i can probably just look for a hidden folder in my home, find those 2 "bad" wallets, delete them and maybe also delete them from the config file... But as a newbie, i would be unable to remove those 2 wallets since i cannot find a "delete wallet" button... I know, i know, satoshi told us to never delete a wallet, but i want to unclutter and remove the wallets i cannot restore in an easy way.
Next item on the list: when moving my funds from the wallet i had lost access to (the one with 3% privacy) to the wallet i had just created i saw the following: to move ~0.29 tTBTC i used a whopping 46 unspent outputs. The coinjoin functionality had split up my 0.3 tbtc is 46 unspent outputs and it was only 3% ready... I saw a lot of unspent outputs in the 6000 to 8000 sat range... I hope this isn't the same on the main net? I would be pissed if i funded Wasabi with 1 BTC and it automatically split my funds up in 10.000 unspent outputs
Update: I've come to the conclusion that one of the two following statements is true:
- Coinjoining does not behave the same way on the main net as it does on the testnet, which is a bug since we NEED to be able to test features on the testnet and the behaviour should be the same on both main and testnet in order for our tests to be conclusive
- Coinjoining IS behaving the same on the main and the testnet and it is bugged
Why do i come to this conclusion? Well, my test setup is as follows:
yesterdaymorning @7:59 i funded a plain vanilla Wasabi wallet with 0.1005 tBTC. I did NOT change ANY setttings, and chose for the "maximize speed" mixing strategy.
I've been looking at the progress during the last 24 hours (not constantly offcourse, i did other things, like sleeping) and i've seen Wasabi using my tBTC for coinjoining again, and again, and again, and again,...
During those 24 hours, i've seen the "privacy progress" going from 0% all the way up to allmost 70%, just to drop down again to 7%, to climb up again to >20%,... you get the idear. After 24 hours, we're now back @11%.
For some strange reason, somebody deposited 0.0001 tBTC to my address after the coinjoining had been running for 15 hours straight. I have no idear where these funds came from, they just appeared...
Anyways... During those 24 hours, the coinjoin process has taken (1-(0.1005/0.09530677))*100 =~ 5,5% in (transaction)fees. What if i had deposited 10 BTC with a market value of ~200.000 USD, at this point 10.000 USD would have gone up in smoke (probably a lot more, since on the main net the tx fees will be higher).
What i'm left with after 24 hours are 92!!!! unspent outputs (i had to import the seed into electrum in order to count, i have no idear where Wasabi v2 shows a list of unspent outputs)
In 24 hours, my funds "hopped" between 1641 change addresses (not including 3 deposit addresses)
The first funded change address is derived @m/1/966, all the previous ones are empty. Then, the density of funded change addresses increases towards m/1/1641
In electrum, i can see more than 300 transactions have been made...
So, in conclusion, i sent 0.1005 tBTC, lost > 5% in fees and ended up with allmost 100 (sometimes near dust) unspent outputs after waiting for 24 hours. And Wasabi is telling me it's only 11% done with making my funds private... If that is the intended process, i'm not happy with it...
anyways, my conclusions are as follows:
- pro: very privacy-centric
- pro: easy to find the binary, signature checks out, easy to install, easy to execute the binary
- pro: sleek gui
- pro: newbie oriented, easy to use as a wallet, as long as you're not interested in the nitty gritty details or want to change custom settings
- pro: because it's newbie friendly, i'm pretty sure it'll do wonders for the privacy of the non-technical user
- feature request: imho you really need to verify ALL 12 seedswords and remove the "skip" link in the seed verify page
- feature request: i really like to see a list of all unspent outputs, and a clear coloured indication wether they're pre or post coinjoin
- feature request: provide an easy way of deleting a wallet (giving ample warning messages)
- feature request: provide a send-all functionality
- con: either coinjoin is bugged or there is a discrepancy between test and main net (which is also a bug imho)
- con: imho, the auto-coinjoin should be turned OFF instead of ON by default
- con: i want more control over the coinjoin functionality, or at least more information: what will be the value of my unspent outputs, how many unspent outputs will be generated?
- con: maybe it's because i'm on the testnet, but it seems like the unspent outputs created by the coinjoin process are really small... Maybe it's because i'm looking in the wrong place, or maybe it's because i'm on the testnet...
- con: maybe it's because i funded my wallet with 0.3 tBTC, but the auto coinjoin is taking hours to complete the complete coinjoin iteration... And i literally mean hours... Maybe it's because i'm on the testnet and there are only a limited number of participants, or maybe it's because the value of the unspent outputs on the testnet are really small... IDK
On a personal note: i like the layout, but you shouldn't fix what isn't broken: the manual coinjoin in Wasabi V1 put the control in my hands. It worked fine. The pictograms next to the unspent outputs (and the list of unspent outputs to chose from) was working perfectly for me...
I do get that if the kinks have been worked out of this version, it's very newbie friendly and it's great for privacy in general. I just don't like the lack of control...