Okay, I think we really need an IRC channel for this development. It's funny that I found this after posting a proposal to do almost exactly that (
http://forum.bitcoin.org/index.php?topic=18717.0).
I just recently bought some hardware to try this out. It's certainly very overkill for this project (a 400 MHz ARM920T; I'd be very surprised if it couldn't timely handle the crypto functions, even without a floating-point unit, and yeah, I'm a noob and I don't even know if floating point can or is used for cryptography; please forgive me there), but proof-of-concepts are something lacking here, right? I also bought a very good starters FPGA (Altera EP2C5 family).
FPGA's have the advantage that they generally solve stuff much, much, much more efficiently than a CPU, at a lower cost, and are just as flexible.
If a CPU is just good enough to run an algorithm timely and you have to change the algorithm, you're very likely to discover your CPU is not good enough anymore, and have to change it. FPGA's can also become useless if the change is too drastic, but I'm pretty inclined to believe it's harder to happen.
I think we should've got things straight by now already. I'll try to write down what I think.
I think all the options currently available to protect your wallet are just plain bad. Let's go through each one by one:
1 - Solution: Encrypt your wallet.dat.
Problem: When you decrypt it to use it there's
always a breach. You have to trust that your computer was properly configured, and trust that it's not compromised at system level (something I think is pretty common on Windows).
In short, this solution has the problems of being hard to achieve (there's no handy program that does all that for you yet, afaik), being Linux-only (personal opinion of mine; one could argue), and, sum it all yourself, it's just terrible for non-geeks.
2 - Solution: Encrypt your wallet.dat under Linux.
Problem: You have to use Linux. If you're a Linux user that's fine, but if you're not, that solves nothing. Not to mention, if you don't use a pendrive of sorts, your wallet.dat is tied to a particular computer. If you travel, you either take it along or connect through SSH to make transactions. Not very practical.
3 - Solution: Encrypt your wallet.dat, put it on a data traveller and decrypt it using Linux when you need it.
Problem: ... none, if you're a Linux user. But you can't use it when you're away from your Linux laptop.
4 - Solution: Encrypt your wallet.dat and put it inside a bootable medium such as a pendrive, CD, or DVD.
Problem: None again, unless you're stuck with some public computer that's configured not to boot from media it's not originally meant to. This is very common in workplaces, schools, etc. Plus, you have to reboot your computer just to make transactions. You can use this just for your big-money account, but it's still a bit unpractical, especially for non-geek users.
5 - Solution: Place your (hopefully encrypted) wallet.dat on the cloud.
Problem: It sounds like going back to bank days where you have to trust someone to send and receive money. I, for one, think this is totally not Bitcoin-style.
6 - Solution: Encrypt your wallet.dat and put it inside a small, cheap device that stands for itself, requires zero-configuration and can be used from any computer that can at least open up a USB mass storage device and run an executable, and, most importantly, do this in total safety, because the password (which might as well be your fingerprint) is entered on a dedicated device you fully trust. Frankly, I feel safer doing this than doing internet banking! It's perfect!!
I think I've gotta be a die-hard advocate of this hardware wallet project.
There's a catch to this USB Wallet thing, though. If these USB Wallets become popular like I strongly believe they
should become, it would be a shame if they couldn't be upgraded. If something real bad happens to the Bitcoin network, like someone entirely or partially craking the transaction signature system (I know it's VERY unlikely, but hey, it can happen, and we're not dealing with private e-mails anymore, we're dealing with damn money from lots of people, so I'm assuming the Bitcoin was designed in some way that can be upgraded... right? Please tell me I'm right..!), people would be so scared about it that making them buy new hardware would just push them more away from the market, which is really bad for the people who stay in.
So the USB Wallets should be easily expansible to support changes in the Bitcoin cryptosystem. FPGA's, I think, are generally better suited for that than a microprocessor like Arduino/Atmel's AVR (wish I'm not sure can even handle signing a transaction in, like, less than a minute; I mean, many of them are effing 8-bits and extremely underclocked, is that really enough?), or even some powerful ARM processor.
I think an FPGA is something really worth having in a USB Wallet, but that's something we can all discuss, try out, etc.
All in all, an IRC channel would be very welcome, wouldn't it? Any suggestions where we can set our HQ?