1/ Storing bitcoin private keys is really hard, and unfortunately every hardware wallet I've seen sucks. I'm looking forward to the wave of improvement that BIP174 (PSBT) is going to unleash. In order to be decent, a hardware wallet must do ALL of the following:
2/ Simple support for m-of-n multisig (where m is > 1 and includes competitors' hardware wallets). If you go from 1-of-1 keys using a "great" hardware wallet and add a lousy hardware wallet but make it 2-of-2, you immediately improve your security (multisig security is additive).
3/ Have a true airgap, meaning that it is eternally quarantined (and gapped with air) from an internet connected device. To accomplish this, it must use QR codes. An SD card, audio cable or bluetooth can work, but given how cheap/easy QR codes are there's no reason.
4/ Make it easy for users to input their mnemonic and passphrase (a few hard to click buttons are not sufficient). Otherwise, users won't remember/test long mnemonic/passphrases and will instead rely on less secure PINs.
5/ Maintain user privacy by not requiring you query a third party service to fetch balance and UTXO data. The obvious solution here is to by default use Bitcoin Core's new PBST feature with a watch only wallet.
6/ Don't trust, verify. A wallet shouldn't sign anything that the end-user hasn't verified. A blind-signing wallet is security theater.
7/ There are lots of extra features that would be nice to have, but aren't needed to be decent: a secure element, a defense against a chosen-nonce attack ( https://twitter.com/mflaxman/status/1082045755991486464), support for coinjoins, a GUI (vs command-line only useage), support for altcoins, etc.
8/ I often get the question "which hardware wallet should I buy?" and my answer has always been that I haven't found one worthy of a recommendation. Hardware wallet manufacturers, please make a decent product so we can give you money!
One divisive topic that surprisingly hasn't come up in this thread is altcoin support. If you have altcoins, you may want to use the same HW wallet for all your coins. If you don't touch altcoins, supporting them can be a negative ("complexity is the enemy of security").
You can follow @mflaxman.
Tip: mention @twtextapp on a Twitter thread with the keyword “unroll” to get a link to it.

Latest Threads Unrolled: