I recently tried Sia for the first time, I'll describe my experience with it as a user, maybe this feedback will have you to improve the product.
I found Sia via a reddit ad (I think it was a promoted link, although not completely sure), I got really excited because I'm actually looking for cloud storage for backup purposes, and other projects like maidsafe and storj don't seem to be ready, and I haven't heard about Sia before (even though I'm following news).
I am myself a Bitcoin user (and a developer) for 4+ years so I'm not easily scared with bad UX.
1. I downloaded Sia UI and launched it in a VM with 32-bit Ubuntu precise. Initial experience was quite good, it was easy to launch the app and UI looks great.
2. Block download is kinda slow, but i have fairly slow networking over here, so that was a part of the problem.
3. I bought some siacoins on an exchange and decided to transfer them to the wallet while it's downloading the blockhain.
4. So, create wallet experience... 29 word mnemonic, WTF? Most Bitcoin wallets have 12-14 words. 128 bits of entropy should be enough, maybe 160 bits if you want to err on safe side, but 512 bits are an overkill. You should read up on key size recommendations. (See below.)
5. Now to generate password I need to "unlock wallet", and it asks for password. What password? I thought there is a password separate from that huge-ass mnemonic as is the case with BIP-39, and the form field looked like one should type a small password into it, but having no other password (I first tried an empty one) I pasted this 29-word phrase and it worked. Well, it was unlocking it for like a minute, so it might be that KDF you're using is also an overkill, haven't seen anything like that in Bitcoin world.
6. I finally got an address and sent coins to it.
7. I noticed that UI is constantly using CPU even when nothing happens. `top` shows ~5 Sia processes besides siad, each eating 10-20% CPU, WTF? This might be because it's a VM without graphic acceleration, I dunno, but that's still kinda WTFish. Processes go away when I close UI and get back when I launch it again. CPU usage is really annoying as I'm using laptop and it makes fan noise when Sia is running.
8. siad got stuck with blockchain download at a certain point and I restarted it, this helped.
9. After siad restart wallet is locked again, so I needed to unlock it. It doesn't even show addresses before wallet is unlocked, why?
10. So I need to enter the large passphrase again. This is a major security/crypto fail. There is no way user will actually remember 20+ words, so he will have them in a file on his computer. So unless it's stored in password manager, it is as secure as just storing seed in Sia database. I recommend to look into how Bitcoin wallets work, they actually have pretty decent UX.
11. Also if you want Sia to be used outside of Bitcoin community, it needs to be even friendlier than Bitcoin wallets. Ideally no passphrase should be necessary just to try it out, it should appear only when user is serious.
12. siad got stuck at block 21664, no restarts help. Also it managed to download 2+ GB of data, while consensus.db is only ~100MB.
So this project looks very interesting, but I'm afraid it will take a while until it's usable by people other than devout fans.
A bit on key sizes: DJB recently posted a blog on key sizes:
http://blog.cr.yp.to/20151120-batchattacks.html Short summary is that 128-bit equivalent security should be enough for now, unless there is some weakness and/or attacker is able to attack many keys at once. 128-bit AES is not good, but if you're using a decent KDF 128-bit passphrase is OK. Otherwise, it probably doesn't make sense to use crypto stronger than 128 bits for keys if you use EC cryptography which is only 128-bit strong. Using 512-bit passphrase is kinda like this:
https://s-media-cache-ak0.pinimg.com/originals/96/01/bb/9601bb26d756a9a18ae5cee170fa1188.jpgI meant to respond to this earlier, got lost in the todo list.
Slow blockchain: I don't think that's a huge problem for most people, it's annoying, but not a dealbreaker.
29 word mnemonic: it was a developer mistake, we had meant to do 15 but forgot to change some of the constants. At this point, fixing it would require creating a lot of compatibility code. 29 words is equivalent to 256bits of entropy, 15 words is 128bits (12 words @ 10.666 bits of entropy each, plus 3 checksum words). The very least that we could do is 12 words, and maybe 10 if we expanded the dictionary from 1628 words to ~10,000 words. Any way you slice it though, it would take a lot of work to drop below 10 words, and once you are writing 10 words 29 really isn't that much more effort. Both of them are already beyond what can be memorized by the vast majority of people. With significant pressure, you can expect to see 15 word passphrases at some point in the 05x cycle. But they aren't going to get much shorter than that any time soon. And again, it's not supposed to be memorized, it's supposed to be written down. It's based off of systems that people expressed preference for, including the Qora wallet and the Monero wallet. If the password is stored on a file in the computer next to other passwords, this is still more secure than having a breakable or unencrypted wallet in the Sia folder, and attacker that compromises the Sia folder may not know where the user's specific password folder is, or may not have the system permissions to access it. When you talk about 'Bitcoin wallets', can you give explicit examples of wallets that do things well? There are many Bitcoin wallets with awful UX and it's not good enough to tell me to scout them out.
The mnemonic is to provide secure encryption on the private keys, using a smaller passphrase to encrypt the mnemonic... would defeat the point? There is an option in 05x to store the mnemonic on your computer in plaintext. This is not recommended, but some users are comfortable with that security/convenience tradeoff.
Unlocking the wallet takes a while because it currently processes the entire blockchain to scan for relevant outputs. The wallet doesn't know which public keys to look for because it doesn't keep them on disk, it needs the passphrase before it knows what to scan for. This is just an inefficient implementation, we can speed it up significantly with a few changes. That takes dev time, and will happen eventually.
On UI CPU usage, it's based on chromium. Does chrome use similar resources when running? If so, there's not much we can do about it. If not, we can take note. There are a number of things in the UI that are probably not very efficient. Ongoing, we are working to improve performance.
Siad got stuck: what version of siad are you using, and what is the speed of your internet connection? Also, how many minutes/hours did you wait for it to get unstuck? The most recent version (0.4.
doesn't usually have problems getting stuck, and I think everything past 0.4.6 would usually get unstuck after a few hours.