Cold storage has been discussed in the past on Ethereum's subreddit.
Just to give my 2 cents, on Ubuntu I use the following on the command line:
cat ~/.ethereum/keystore/<key_file> | qrencode -o qr_image.png
Add option -l H
to get a code that is easier to decode. The qrencode
tool uses the open source libqrencode
library, and can be installed using:
sudo apt-get install qrencode
Once you have the image file, you can then print it off. (Using a wired connection to a printer, unless you're happy with the printer's levels of wireless security.)
A command line tool to decode a scanned QR code or image file is included in the zbar-tools package, e.g. zbarimg --quiet qr_image.png
The general disclaimer: You'll need to ensure you're happy with piping your keys into someone else's utility... The source code is available, but you'd need to be familiar enough with C to be able to check it isn't taking a copy of the key and then sending it back to the mothership.
Will the wallets created at this moment in time be backwards compatible in the future? (Metropolis, Serenity, ...)
I can confirm that MyEtherWallet will always provide backwards capabilities with older version of our encrypted versions, as well as common methods created by other wallets. We are currently in the process of switching to use the same encryption as geth which will (1) help standardize across wallets and (2) make it easier for people to move from MyEtherWallet -> Mist in the future. We also hope to implement other methods of accessing (ie: Jaxx mnemonics, etc.).
For reference, the only things that might change as Ethereum "grows up" is the json / keystore / encryption / etc. formats of the private key. In the end, it's still decrypting to get to the same version of the private key. The way you store it and decrypt it just might change. Most, if not all, wallet providers are going to stay up to date as encryption methods and standards emerge and provide backwards capabilities and cross-capabilities.
How do I verify if the wallets have been created correctly (private key), without first sending a small amount in and out of the wallet?
Personally, I use the MyEtherWallet offline transaction tab to test in and out of any new deep-cold-storage wallet. I suppose you could import the key using a different client and verify it gives you the same address. So, since you are using MyEtherWallet which using Javascript, you could import the unencrypted private key into geth and verify the address, or into eth, or whatever. You will not want to cross-verify with another Javascript implementation (like EthAddress).
Is there anything else I have to consider and I am correct with my assumptions?
I recommend keeping a copy of EthAddress or MyEtherWallet's zipped repo with your cold-storage keys. That way in the future if something changes or something, you'll still have a local version, one that you know works with your private key, to run.
Why are there only third-party web wallet creation pages on the internet and no official ones (yet)? (Maybe because of: Ethereum: "We are making tools for tool-makers“?)
The Ethereum developers have stated that they are working towards a light client. At this point, I find it impressive that they have so many clients in different languages and the Mist / Ethereum Wallet is already as strong as it is. It's been 7 months since launch. Also, keep in mind that the Ethereum Wallet / Mist is so much more than a wallet. A lot of people seem to forget this because that's all they use it for. But in reality, the things they are doing with contracts and tokens are amazing and is what they are focused on at this point.
For reference, here are the three sites mentioned in this thread:
full disclosure: I am co-founder of MyEtherWallet. I try to be objective.
Best Answer
The subject of paper wallets has been covered before. See: Is there a way to generate ethereum paper wallets?
But I think the more useful part about your question regards the usefulness of generating multiple paper wallets with smaller balances rather than one with a single, large balance.
There are pros and cons to generating multiple wallets:
Pros
Cons
Basically, it comes down to what you want to do with your Ethereum later on.
If you're looking for secure offline storage for an extended period of time, I'd go with a single paper wallet. If you plan on using Ethereum for more frequent transactions, look into getting a hardware wallet like Trezor. Hardware wallets offer similar security without sacrificing liquidity or useability.
Also, for bulk key generation, check out the accepted answer on this question: Is it possible to *write* (not print) a paper wallet without having to copy a big JSON?