Summary: pitfalls of paper wallets : Bitcoin

Creating paper wallets:

Problematic action: Create a paper wallet on a paper wallet service website without disconnecting from the internet. Reason: It's extremely insecure for many reasons, some being 1) the website is hacked with generated private keys sent to the hacker; 2) there may be malware in the browser or in the operating system that sends the private keys to the hacker. Solution: The bottom line is to disconnect the internet before creating the paper wallet. It's not secure enough because 1) the malware can save the private keys and wait for internet connection to send them out; 2) the malware can interfere with the generation process itself and give you a private key that is already known to the hacker, which is called backdooring the random number generator; 3) the private keys may exist on the hard disk therefore may be extracted by malware or after the computer is disposed. Better solution: Use a live operating system, such as a Ubuntu live CD, to run the paper wallet software. This is not ultimately bullet-proof, especially for high-value targets, because there exist malware that can hide in the BIOS and firmware of your computer and can infect your live operating system. It should be secure enough for average Joes.

Problematic action: Create a paper wallet without serious verifying. Reason: There may be incompatible issues with operating systems and browsers. Solution: Run tests on various operating systems and various browsers before putting BTC in. Make sure the generated private keys are identical. This applies to regular paper wallets and BIP38 paper wallets. Make sure the decrypted BIP38 keys are correct.

Problematic action: Use a wireless printer. Reason: It's insecure because wireless networks are insecure. Solution: Use a wired printer.

Problematic action: Use an advanced printer, which has internal storage, such as a hard drive. Reason: It is insecure because the private key of the paper wallet printed may be stored on the internal storage, therefore may be recovered if the printer is sold or scrapped. Solution: Use a dumb printer. Or smash the printer, including and especially the internal storage, or keep it locked up and never sell or scrap it.

Problematic action: Leave the printer open for other people to access after printing without turning it off. Reason: It's insecure because the private key printed may still be in the memory of the printer. Solution: Turn the printer off after printing.

Problematic action: Leave the computer untreated after printing. Reason: It's insecure because the printer driver and/or operating system may be keeping copies of the documents you print in some sort of "spool" or print queue. Solution:

Quote from https://bitcoinpaperwallet.com/#popupDelete (the popup doesn't work).

Macintosh:

Enable 'FileVault' to encrypt your filesystem so that cache files cannot be 'undeleted'. Set up a symbolic link from /private/var/spool/cups/cache/ to a removable media volume (e.g. a SD card) and disconnect it when not in use.

Windows:

Use an encrypted filesystem so that your cache files cannot be 'undeleted'. Read this FAQ on how to change the destination of your cache (spool) files to removable media.

Linux:

Use a live-boot CD instead of a regular hard drive OS install. This way when you reboot your computer, all cache files are deleted from memory and no jobs are ever written to disk.

Problematic action: Use a shared printer (at work or school, for example). Reason: It's insecure because 1) the printer may have a glitch and someone else may get your printouts; 2) the printing jobs may be centrally logged. Solution: Don't. Use your own printer.

Problematic action: Use a printer to print the private key or the QR code of the private key. Reason: See above. Solution 1: Don't use a printer for private key stuff. Hand-write the private key. Ignore the QR code since hand-drawing the QR code of the private key may be too time-consuming. Double check. Then check it again, preferably on a different day. Get someone you trust to check it. Then get him/her to check it again, preferably on a different day. (Testing the private key in a wallet app can make it sure. But it comes with risks.) Solution 2: Don't use a printer for private key stuff. Use brain wallet. Write down the passphrase and the relevant information, e.g., the name of the tool used (bitaddress.org/WarpWallet/etc.) and the instructions. Store it the same way as a paper wallet. Save and store some copies of the tool, in case the future versions become incompatible. (There are pitfalls for creating man-made passphrases. It is beyond the scope of this post. In a nutshell, don't create passphrases with your brain.)

Problematic action: Import a paper wallet private key into a wallet app, then spend directly from the paper wallet address.

Mistake: Expect the paper wallet automatically receives/holds changes, similar to a real-life wallet, which may not be the case. Reason: Early wallet apps didn't handle the changes correctly. The changes became the transaction fees of the miners. Explanation: It's a misunderstanding of how Bitcoin works. There is no account balance of any kind in Bitcoin. There is only Unspent Transaction Output (UTXO). The receiving addresses of changes, which will become the new UTXOs, must be specified when BTC is spent. Otherwise, the changes will become the transaction fees. This depends on the implementation of the wallet app, which should not be trusted.

Mistake: Think nothing is wrong if changes are handled correctly. Reason: It's called address reuse, which is not recommended in Bitcoin because 1) it reduces anonymity of both the sender and all the consecutive receivers; 2) it reduces the security by exposing the public key, which is vulnerable to quantum computing. Addresses are hashes of public keys, which are safe from quantum computing.

Mistake: Destroy the paper wallet after it's imported into an HD wallet, thinking that it has become a part of the HD wallet and it's safe to destroy because the master seed of the HD has been backed up. Reason: It is not a part of the HD wallet. If the paper wallet (the paper) is destroyed and the app is uninstalled, the BTC is gone even if the HD wallet is recovered from its master seed.

The right way: Spend (transact) all BTC in a paper wallet to an address of your wallet app. Spend BTC from there. After all the spending is finished, create a new paper wallet and transact all the remaining BTC to it. Store the new paper wallet. Keep the old one for future reference, or destroy it if you don't want the trace.

Problematic action: Destroy a paper wallet after it is used. Reason: You may need to prove you had control of that address some day, e.g., for taxation purpose. In the case of a chain split, you may have a balance on the other chain. Solution: Don't ever destroy a paper wallet. Keep it on file. Mark it with the relevant information, e.g., "Used in April 2017". Unless you don't want to be tied to the address.

Problematic action: Google a famous wallet app, click the first link or the sponsored link, download/install it, and use it, without serious research. Reason: It's insecure because the wallet app may be a scam. Solution: Do thorough research prior to deciding which wallet app to use. Find the official site prior to downloading/installing it.

Additions and corrections are welcome.

Edit: multiple editing for additions, corrections, and clarifications.

Visit link:
Summary: pitfalls of paper wallets : Bitcoin

Related Posts

Comments are closed.