PRACTICE! Go through all the steps, then make sure you can load up the private key with a wallet software. Then once you know that you are doing it right, destroy the address and make a new one for real.
HELP! Bitcoin qt client crashed on my computer with a database error! Lost all my bitcoins?!
hey guys, The bitcoin qt client was catching up with the blockchain (5 days worth), when after maybe 15 minutes, it comes up with an error, "database corrupted" or something along the lines of that. I looked it up and users said to delete everthing in my %appdata/roaming/bitcoin% directy except the wallet.dat file. So I did that, and downloaded the latest bitcoin qt client, but as it's got 252 weeks to catch up on, it shows 0 btc, is this normal? Will it show my bitcoins whilst it's done updating? It should show it at the end, right? Once it's seen the transactions on the blockchain? Sorry, I'm just ultra panicky atm from not seeing my bitcoins :S EDIT: GOT MY BITCOINS. For anyone that has this problem in the future, it's 99.99% likely it's a RAM problem. Took my dodgy ram stick out and used a rescan tag & it was all good to go! You can also import the boostrap.dat file.
Corrupted wallet.dat with 18 btc - Possible to restore bitcoins?
I have a wallet from yore, had 18 btc that got corrupted and I kind of just lost interest in bitcoins. Well now that 18 is woth $2K or so and I fired up a new bitcoin-qt wallet with that wallet.dat file to see if it would read it. Well it almost did. The GUI read 18 unverified bitcoins at first, and as the blockchain neared completion, it verified every bitcoin. I was so excited. But then it crashed with a runaway exception "can't open database file wallet.dat -30974" I get that error when I try to send a bitcoin too. Any chance of restoring this near-working wallet? EDIT: Bitcoins have been recovered!!!!!!! The final solution was provided by musicbunny, to which I am extremely greatful for his out-of-the box solution. I think pywallet suggested by eof would have done the trick too. The keys probably could have been extracted, but I was running into trouble with my version of Python. Maybe it needed Python 2?
(1) Is it true that encrypting an *existing* bitcoin-qt wallet.dat file will "invalidate" any existing backups? (2) Can I use unicode characters - eg ♥ - in the bitcoin-qt wallet passphrase?
I have an existing bitcoin-qt wallet.dat file which I want to encrypt - using the command in the bitcoin-qt Settings menu, involving creating a passphrase. I have 2 (possibly somewhat related) questions: TL;DR (1) If you encrypt an existing wallet.dat file, will the backups of the old wallet.dat file still work? (2) Can you include unicode characters - eg ♥ - in the passphrase used to encrypt a bitcoin-qt wallet.dat file? Worst-case scenario: The answers to (1) and (2) are both "no" - and I attempt to encrypt an existing wallet using unicode, and my backups no longer work (due to a new pool of addresses somehow being created?) and the passphrase isn't what I think it is (due to the unicode characters somehow being misinterpreted?) - and then I could lose all my coins?? Details (1) The following (old, short) thread claims that after you encrypt an existing wallet, any previous backups of that wallet will no longer work: https://pay.reddit.com/Bitcoin/comments/1ccfdk/encrypting_walletdat_in_bitcoinqt/ Obviously, the the first response in that thread was slightly wrong, for saying that the "server" creates a new pool of 100 addresses to draw on. So using word "server" here was certainly incorrect - but maybe the gist of what they were saying might still be correct? (if you simply change "server" to "client"). I can actually understand that there might be reasons why encrypting a wallet.dat file could cause a new pool of 100 addresses to be generated. But it does not make sense to me that this would make any older (unencrypted) backups instantly useless. It seems to me that these older, unencrypted backups would still have their private keys intact, and could thus be used in certain (perhaps limited?) ways - such as:
"sweeping" the funds from the private keys of the old, unencrypted wallet into another wallet, or
doing a normal "spend" from the private keys of the old, unencrypted wallet (However, if the old unencrypted and the new encrypted wallets now contain different pools of addresses, then I imagine that this spend would invalidate the new, encrypted wallet - because any change from the spend would be sent to a "change address" from among those in the old, unencrypted wallet - and so this amount of change would be missing from the new encrypted wallet, right?).
(2) It seems that including a few unicode characters in the bitcoin-qt wallet passphrase would make it a lot stronger (since unicode is a much larger set of characters than ascii), so I would like to include a few. But it would be more reassuring if it could be explicitly stated that this is indeed supported. Possible catastrophic interaction between (1) and (2)? If the answers to (1) and (2) were both "no" (ie, if you encrypt an existing bitcoin-qt wallet.dat file then any existing backups will not work, and unicode characters do not work in bitcoin-qt passphrases), then I'm worried there could be some kind of catastrophic interaction between (1) and (2) where I lose all my coins, as follows: (1) I encrypt my existing wallet - making my old, unencrypted wallet.dat file now invalidated (due to something involving a new pool of addresses being generated?) and (2) I use a passphrase which includes unicode characters which bitcoin-qt appears to accept at the time of creation, but which doesn't work at the time of trying to decrypt the wallet.dat file (due to something going wring with how the supposed unicode characters are actually interpreted while being entered or copied-and-pasted?). In this possible worst-case scenario, my old backups of wallet.dat no longer work, and my newly encrypted wallet.dat has some password which I'm not able to correctly enter anymore. Sorry to be so paranoid about this! Other remarks: (a) I did do a (limited) test of unicode capability for bitcoin-qt wallet.dat passphrases: simply by creating a new (empty) wallet.dat file, and creating a passphrase for it involving unicode characters, and then attempting to change the passphrase (which requires entering the old passphrase that contained unicode characters). This did seem to work ok: it let me re-enter the old passphrase (which included unicode characters) to create a new passphrase. However, since this is an empty wallet (and since bitcoin-qt would ask for the passphrase only when attempting to actually spend from an encrypted wallet), I did not see a way to fully test whether the passphrase actually worked to decrypt a unicode-passphrase-encrypted wallet for the purpose of spending from it. (I'm still downloading the rest of the blockchain and it's going to take at least another week on my slow connection, so don't see how I could send a small amount to the new wallet to test it either. My existing wallet.dat file was originally created on an internet-connected machine a long time ago, but it's been offline ever since, so in some sense it's kinda-sorta been in somewhat "cold" storage all this time, and I would prefer to avoid putting it online on a "hot" internet-connected machine until absolutely necessary.) (b) Long-term, I am actually also in the process of setting up a proper cold storage system based on Armory, which I have installed on 2 Ubuntu machines (one offline and one online). But I have a slow internet connection, and the backups of this old wallet.dat file have been sitting around unencrypted for ages (I've been relying simply on then being physically inaccessible). Now some "things" are coming up over the next few days where I some better security right away, and it's probably going to take over a week for Armory/bitcoind to update my local copy of the blockchain. So in the meantime, I also need some basic additional security right now - so encrypting the existing bitcoin-qt wallet.dat file using a strong passphrase (and making some new backups) seems like it could be a reasonable initial approach. Thanks for any help!
When I spend part of a paper wallet, is the private key revealed to the community at large?
Let's say I have a paper wallet with ten BTC (from a 3 BTC deposit and a 7 BTC deposit). If I want to spend 3 BTC, I need to prove that I know my paper wallet's private key. My question is, how can I prove this without actually revealing my private address to the block chain? As I understand it, even after spending the 3 BTC my paper wallet is technically safe (unless my local machine is compromised). Is this correct? Or by spending the 3 BTC, is the paper wallet immediately compromised and I really should have used the change function to empty the remainder of the paper wallet into a brand new paper wallet? I've read a LOT about bitcoin over the last few weeks, but I can't find an answer to this question. So I guess I'm wondering (1) what's the functional answer to this question [e.g. yes it's revealed, or no it's not] and (2) what's the technical answer to this question [e.g. how does the private key remain a secret while still proving that I have it]?
Wallet Question: With an offline Armory wallet do I really need Bitcoin-QT? Can't I just generate an address on the offline computer and add that address to my Blockchain.info account as a watch only address? From there won't I be able to receive payments and view the balance?
Or am I missing something (like all of my bitcoins)?
Hi Redditors. I am going to post in this thread my experiences in getting my Desktop (Debian) machine running Armory in watch-only mode, and coupling that with an offline Raspberry Pi (which holds my private keys) for signing the transactions previously made in watch-only mode. I actually compiled Armory from source directly on my Pi. This guide is probably more for the bitcoin 'power user', as to run Armory online, and broadcast the signed transactions, you need to have a bitcoin full node running (bitcoind). Basic requirements:
Online machine - running a full node (bitcoind)
Raspberry Pi - I used an old Pi 1 Model B with just 512Mb memory, and 2 USB slots.
2x USB thumb-drives. One for wallet backups, the other for transferring unsigned tx's to the rPi, and signed tx's back to the Desktop.
Armory 0.96.4 for the Raspberry Pi 1, Model B (512Mb RAM, 2xUSB) (compiled from github sourcecode on the Pi itself!)
Using the Pi as an offline complement to a Debian Desktop "watch-only" Armory install.
Desktop Debian Armory watch-only talks to my full node, bitcoind, which is also on the Debian desktop.
I'll post the guide in digestible sections...
I should begin by saying I installed source code from git, and got Armory to build the DB on my desktop initially, WITHOUT creating a wallet.. (This allowed me to debug what was going on a little!)
Go to Bitcoin.org, select Armory.. It leads to a Download from Git: https://github.com/goatpig/BitcoinArmory/releases Followed the procedure for Linux Debian verify code, compile, install, all straight-forward.. Began by running bitcoind, and telling Armory where to find it. This is the command I used, obviously it was all on one line and didn't include the arrows/explanations!:
python ArmoryQt.py \ --satoshi-datadir=/BlockChain/chain20180414/blocks \ # <-----(where my bitcoind blocks live) --datadir=/ArmoryDataDi \ # <-----(this is instead of ~/.armory) --dbdir=/ArmoryDataDidatabases # <-------(again, non std. place used for Armory's databases.. my choice.)
So, on the Desktop, after the initial "build databases" (NB the initial "Build Databases" took about 1.5h and my two CPUs were maxed the whole time, Temps up to 62C. Not ideal; Im not in a rush!) I then wanted to import a watch-only wallet. Before I did this, I took a full backup of the Armory data dir: /ArmoryDataDi (or ~/.armory in a default installation). I'd hate to have to make Armory do another full sync with the bitcoind node!
Next step: offline wallet (with Private Keys) is on a Raspberry Pi. I downloaded the source and managed to compile it on the pi itself! :) Though there were some gymnastics needed to setup the Pi. My Pi is running Raspbian based on Wheezy.. quite old! I did the following on the Pi:
apt-get update apt-get upgrade (<---took about an hour!) apt-get install autotools-dev apt-get install autoconf
Then I followed the instructions exactly as I had done for my Debian Desktop machine, EXCEPT: I had to increase the Pi's swap space. I upped it from 100Mb to 400Mb. The compilation took 7 hours, and my poor SD card got a thrashing. But after compilation, I put the Swap back to 100Mb and Armory runs ok with about 150Mb of memory (no swap needed). Swap increase on the Pi: use your favourite editor, and open the file /etc/dphys-swapfile add/change the following line:
Then, REBOOT the Pi:
sudo shutdown -h -P now
Once the compilation was done on the Pi, put the swap back, rebooted and created an Armory wallet. I added manual entropy and upped the encryption 'time' from 250ms to 2500ms - since the Pi is slow, but I'll be happy to wait for more iterations in the Key Derivation Function. Once the wallet was created, it obviously prompts you for backup. I want to add a private key of my own (i.e. import), so don't do the backup until this is over. I import my Private Key, and Armory checks that this corresponds to a Public Key, which I check is correct. This is the point now where the Pi storage medium (e.g an SD card) has to be properly destroyed if you ever get rid of it. I had thought that now would be a good time to decide if your new wallet will generate Segwit receiving addresses, and also addresses used to receive 'change' after a transaction.. But it seems Armory WON'T let you switch to P2SH-P2WPKH unless your Armory is connected to a node offering "WITNESS" service. Obviously, my Pi is offline and will never connect to a node, so the following will not work on the Pi:
x Use File Settings Fee and address types.
x Set the "Preferred Receive Address Type" to P2SH-P2WPKH
x Also Set the "Change Address" to P2SH-P2WPKH for left-over loose change!
NB: I thought about setting this on the Debian "watch-only" wallet, but that would surely mean doom, as the Pi would not know about those addresses and backups might not keep them.. who knows... So, end result:- no segwit for me just yet in my offline funds.
--If anyone can offer a solution to this, I'd be very grateful--
Ok, now this is a good point to back up your wallet on the Pi. It has your imported keys. I choose a Digital Backup - and put it on a USB key, which will never touch the internet and will be stored off-site. I also chose to encrypt it, because I'm good with passwords.. NB: The Armory paper backup will NOT back up your imported private keys, so keep those somewhere if you're not sweeping them. It would be prudent to have an Armory paper backup anyway, but remember it will likely NOT help you with that imported key. Now for the watch-only copy of the wallet. I want to get the "watch-only" version onto my Desktop Debian machine. On the Pi, I created (exported to a USB key) a "watching-only" copy of my wallet. I would use the RECOMMENDED approach, export the "Entire Wallet File". As you will see below, I initially exported only the ROOT data, which will NOT capture the watching-only part of the Private Key I entered manually above (i.e. the public Key!). Now, back on the Debian Desktop machine... I stopped all my crontab jobs; just give Armory uninterrupted CPU/memory/disk... I also stopped bitcoind and made a backup prior to any watch-only wallet being imported. I already made a backup of Armory on my Desktop, before any wallet import. (this was needed, as I made a mistake.. see below) So on the Debian Desktop machine, I begin by firing up bitcoind. my command for this is:
I know from bitter experience that doing a scan over the blockchain for a new wallet takes a looong time and a lot of CPU, and I'd like it to play nicely; not gobble all the memory and swap and run my 2xCPUs both at 100% for four hours... So... I aim to run with --ram-usage=X and --thread-count=X (For me in the end, X=1 but I began with X=4) I began with --ram-usage=4 (<--- = 4x128Mb) The result is below...
TypeError: cannot concatenate 'str' and 'int' objects
It didn't recognise the ram-usage and carried on, crippling my Debian desktop PC. This is where it gets dangerous; Armory can gobble so much memory and CPU that the windowing environment can cease up, and it can take over 30 minutes just to exit nicely from bitcoind and ArmoryDB. So, I ssh to the machine from another computer, and keep an eye on it with the command
I'd also be able to do a "sudo reboot now" if needed from here.
So, trying to get my --ram-usage command recognised, I tried this line (added quotes):
Loading Armory Engine: Armory Version: 0.96.4 Armory Build: None PyBtcWallet Version: 1.35 Detected Operating system: Linux OS Variant : ('debian', '9.4', '') User home-directory : /home/ Satoshi BTC directory : /BlockChain/chain20180414 Armory home dir : /ArmoryDataDi ArmoryDB directory : /ArmoryDataDidatabases Armory settings file : /ArmoryDataDiArmorySettings.txt Armory log file : /ArmoryDataDiarmorylog.txt Do wallet checking : True (ERROR) ArmoryUtils.py:3723 - Unsupported language specified. Defaulting to English (en) (ERROR) ArmoryQt.py:1833 - Failed to start Armory database: cannot concatenate 'str' and 'int' objects Traceback (most recent call last): File "ArmoryQt.py", line 1808, in startArmoryDBIfNecessary TheSDM.spawnDB(str(ARMORY_HOME_DIR), TheBDM.armoryDBDir) File "/BitcoinArmory/SDM.py", line 387, in spawnDB pargs.append('--ram-usage=' + ARMORY_RAM_USAGE) TypeError: cannot concatenate 'str' and 'int' objects
So, I edit the Armory python file SDM.py:
if ARMORY_RAM_USAGE != -1: pargs.append('--ram-usage=4') #COMMENTED THIS, SO I CAN HARDCODE =4 # ' + ARMORY_RAM_USAGE)
Running it, I now have acknowledgement of the --ram-usage=4:
(WARNING) SDM.py:400 - Spawning DB with command: /BitcoinArmory/ArmoryDB --db-type="DB_FULL" --cookie --satoshi-datadir="/BlockChain/chain20180414/blocks" --datadir="/ArmoryDataDi" --dbdir="/ArmoryDataDidatabases" --ram-usage=4
Also, even with ram-usage=4, it used too much memory, so I told it to quit. It took over 30 minutes to stop semi-nicely. The last thing it reported was:
ERROR - 00:25:21: (StringSockets.cpp:351) FcgiSocket::writeAndRead FcgiError: unexpected fcgi header version
But that didn't seem to matter or corrupt the Armory Database, so I think it's ok. So, I get brave and change SDM.py as below, and I make sure my script has a command line for --ram-usage="ABCDE" and --thread-count="FGHIJ"; the logic being that these strings "ABCDE" will pass the IF criteria below, and my hardcoded values will be used...
if ARMORY_RAM_USAGE != -1: pargs.append('--ram-usage=1') #COMMENTED THIS, SO I CAN HARDCODE =1 # ' + ARMORY_RAM_USAGE) if ARMORY_THREAD_COUNT != -1 pargs.append('--thread-count=1') #COMMENTED THIS, SO I CAN HARDCODE =1 #' + ARMORY_THREAD_COUNT)
So, as usual, I use my script and start this with: ./StartArm.sh (which uses command line:)
(this forces it to use my hard-coded values in SDM.py...) So, this is the command which it reports that it starts with:
(WARNING) SDM.py:400 - Spawning DB with command: /BitcoinArmory/ArmoryDB --db-type="DB_FULL" --cookie --satoshi-datadir="/BlockChain/chain20180414/blocks" --datadir="/ArmoryDataDi" --dbdir="/ArmoryDataDidatabases" --ram-usage=1 --thread-count=1
Again, this is where it gets dangerous; Armory can gobble so much memory and CPU that the windowing environment can cease up. So I ssh to the machine and keep an eye on it with:
So, on the Debian Desktop PC, I inserted the USB stick with the watch-only wallet I exported from the Pi. Start Armory... Import "Entire Wallet File" watch-only copy. Wait 4 hours.. YAY!!! After running Armory for about 30m, the memory usage dropped by 400m... wierd... It took ~2 hours to get 40% completion. After 3.5 hours it's almost there... The memory went up to about 1.7Gb in use and 900Mb of Swap, but the machine remained fairly responsive throughout, apart from a few (10?) periods at the start, where it appeared to freeze for 10-30s at a time. (That's where my ssh session came in handy - I could check the machine was still ok with a "free -h" command) Now, I can: Create an unsigned transaction on my Desktop, Save the tx to USB stick, Move to the Pi, Sign the tx, Move back to the Desktop, Broadcast the signed tx.
My initial Mistake: This caused me to have to roll-back my Armory database, using the backup. so you should try to avoid doing this.. On the Pi, I exported only the ROOT data, which will NOT capture the watching-only part of the Private Key It is RECOMMENDED to use the Digital Export of Entire Wallet File from the Pi when making a watch-only copy. If you just export just the "ROOT data", not the "Entire Wallet File", you'll have problems if you used an imported Private Key in the offline wallet, like I did. Using the ROOT data text import, after it finished... my balance was zero. So,. I tried a Help->Rescan Balance (Restart Armory, takes 1minute to get back up and running) No Luck. Still zero balance. So, I try Rescan Databases.. This will take longer. Nah.. no luck. So, I tried again, thinking it might be to do with the fact that I imported the text "root data" stuff, instead of following the (Recommended) export of watching-wallet file. So, I used my Armory backup, and wound back the ArmoryDataDi to the point before the install of the (zero balance) wallet. (you should not need to do this, as you will hopefully use the RECOMMENDED approach of exporting the "Entire Wallet File"!)
PSA: Clearing up some misconceptions about full nodes
This is my handout for paranoid people who want a way to store bitcoin safely. It requires a little work, but this is the method I use because it should be resistant to risks associated with:
Bad random number generators
Malicious or flawed software
If you want a method that is less secure but easier, skip to the bottom of this post. The Secure Method
Download bitaddress.org. (Try going to the website and pressing "ctrl+s")
Put the bitaddress.org file on a computer with an operating system that has not interacted with the internet much or at all. The computer should not be hooked up to the internet when you do this. You could put the bitaddress file on a USB stick, and then turn off your computer, unplug the internet, and boot it up using a boot-from-CD copy of linux (Ubuntu or Mint for example). This prevents any mal-ware you may have accumulated from running and capturing your keystrokes. I use an old android smart phone that I have done a factory reset on. It has no sim-card and does not have the password to my home wifi. Also the phone wifi is turned off. If you are using a fresh operating system, and do not have a connection to the internet, then your private key will probably not escape the computer.
Roll a die 62 times and write down the sequence of numbers. This gives you 2160 possible outcomes, which is the maximum that Bitcoin supports.
Run bitaddress.org from your offline computer. Input the sequence of numbers from the die rolls into the "Brain Wallet" tab. By providing your own source of randomness, you do not have to worry that the random number generator used by your computer is too weak. I'm looking at you, NSA ಠ_ಠ
Brain Wallet tab creates a private key and address.
Write down the address and private key by hand or print them on a dumb printer. (Dumb printer means not the one at your office with the hard drive. Maybe not the 4 in 1 printer that scans and faxes and makes waffles.) If you hand copy them you may want to hand copy more than one format. (WIF and HEX). If you are crazy and are storing your life savings in Bitcoin, and you hand copy the private key, do a double-check by typing the private key back into the tool on the "Wallet Details" tab and confirm that it recreates the same public address.
Load your paper wallet by sending your bitcoin to the public address. You can do this as many times as you like.
You can view the current balance of your paper wallet by typing the public address into the search box at blockchain.info
If you are using an old cell phone or tablet do a factory reset when you are finished so that the memory of the private keys is destroyed. If you are using a computer with a boot-from-CD copy of linux, I think you can just power down the computer and the private keys will be gone. (Maybe someone can confirm for me that the private keys would not be able to be cached by bitaddress?)
To spend your paper wallet, you will need to either create an offline transaction, or import the private key into a hot wallet. Creating an offline transaction is dangerous if you don't know what you are doing. Importing to a client side wallet like Bitcoin-Qt, Electrum, MultiBit or Armory is a good idea. You can also import to an online wallet such as Blockchain.info or Coinbase.
Trusting bitaddress.org The only thing you need bitaddress.org to do is to honestly convert the brainwallet passphrase into the corresponding private key and address. You can verify that it is doing this honestly by running several test passphrases through the copy of bitaddress that you plan on using, and several other brainwallet generators. For example, you could use the online version of bitaddress, and brainwallet and safepaperwallet and bitcoinpaperwallet. If you are fancy with the linux command line, you can also try "echo -n my_die_rolls | sha256sum". The linux operating system should reply with the same private key that bitaddress makes. This protects you from a malicious paper wallet generator. Trusting your copy of bitaddress.org Bitaddress publishes the sha1 hash of the bitaddress.org website at this location: https://www.bitaddress.org/pgpsignedmsg.txt The message is signed by the creator, pointbiz. I found his PGP fingerprint here: https://github.com/pointbiz/bitaddress.org/issues/18 "527B 5C82 B1F6 B2DB 72A0 ECBF 8749 7B91 6397 4F5A" With this fingerprint, you can authenticate the signed message, which gives you the hash of the current bitaddress.org file. Then you can hash your copy of the file and authenticate the file. I do not have a way to authenticate the fingerprint itself, sorry. According to the website I linked to, git has cryptographic traceability that would enable a person to do some research and authenticate the fingerprint. If you want to go that far, knock yourself out. I think that the techniques described in this document do not really rely on bitaddress being un-corrupt. Anyway, how do we know pointbiz is a good guy? ;-) There are a lot of skilled eyes watching bitaddress.org and the signed sha1 hash. To gain the most benefit from all of those eyes, it's probably worthwhile to check your copy by hashing it and comparing to the published hash. "But we aren't supposed to use brainwallets" You are not supposed to use brainwallets that have predictable passphrases. People think they are pretty clever about how they pick their passphrases, but a lot of bitcoins have been stolen because people tend to come up with similar ideas. If you let dice generate the passphrase, then it is totally random, and you just need to make sure to roll enough times. How to avoid spending your life rolling dice When I first started doing this, I rolled a die 62 times for each private key. This is not necessary. You can simply roll the die 62 times and keep the sequence of 62 numbers as a "seed". The first paper address you create would use "my die rolls-1" as the passphrase, the second would be "my die rolls-2" and so on. This is safe because SHA256 prevents any computable relationship between the resulting private key family. Of course this has a certain bad security scenario -- if anyone obtains the seed they can reconstruct all of your paper wallets. So this is not for everyone! On the other hand, it also means that if you happen to lose one of your paper wallets, you could reconstruct it so long as you still had the seed. One way to reduce this risk is to add an easy to remember password like this: "my die rolls-password-1". If you prefer, you can use a technique called diceware to convert your die rolls to words that still contain the same quantity of entropy, but which could be easier to work with. I don't use diceware because it's another piece of software that I have to trust, and I'm just copy/pasting my high entropy seed, so I don't care about how ugly it is. Why not input the dice as a Base 6 private key on the Wallet Details tab? Two reasons. First of all, this option requires that you roll the die 99 times, but you do not get meaningful additional protection by rolling more than 62 times. Why roll more times if you don't have to? Second, I use the "high entropy seed" method to generate multiple private keys from the same die rolls. Using the Base 6 option would require rolling 99 times for every private key. I'm a big nerd with exotic dice. How many times to roll? Put this formula in Excel to get the number of times to roll: "=160*LOG(2,f)" where f = number of faces on the die. For example, you would roll a d16 40 times. By the way, somewhat unbelievably casino dice are more fair than ordinary dice The "Change address" problem: You should understand change addresses because some people have accidentally lost money by not understanding it. Imagine your paper wallet is a 10 dollar bill. You use it to buy a candy bar. To do this you give the cashier the entire 10 dollar bill. They keep 1 dollar and give you 9 dollars back as change. With Bitcoin, you have to explicitly say that you want 9 dollars back, and you have to provide an address where it should go to. If you just hand over the 10 dollar bill, and don't say you want 9 dollars back, then the miner who processes the transaction gives 1 dollar to the store and keeps the remainder themselves. Wallet software like Bitcoin-Qt handles this automatically for you. They automatically make "change addresses" and they automatically construct transactions that make the change go to the change address. There are three ways I know of that the change problem can bite you:
You generate a raw transaction by hand, and screw up. If you are generating a transaction "by hand" with a raw transaction editor, you need to be extra careful that your outputs add up to the same number as your inputs. Otherwise, the very lucky miner who puts your transaction in a block will keep the difference.
You import a paper wallet into a wallet software and spend part of it, and then think that the change is in the paper wallet. The change is not in the paper wallet. It is in a change address that the wallet software generated. That means that if you lose your wallet.dat file you will lose all the change. The paper wallet is empty.
You import a paper wallet into a wallet software and spend part of it, and then think that the change is in the change address that the wallet software generated. If the transaction did not need to consume all of the "outputs" used to fund the paper wallet, then there could be some unspent outputs still located at the address of the paper wallet. If you destroyed the paper wallet, and destroyed the copy of the private key imported to the wallet software, then you could not access this money. (E.g. if you restored the software wallet from its seed, thinking all of the money was moved to the wallet-generated change addresses.)
For more on this, see here The hot paper wallet problem Your bitcoin in your paper wallet are secure, so long as the piece of paper is secure, until you go to spend it. When you spend it, you put the private key onto a computer that is connected to the internet. At this point you must regard your paper wallet address as hot because the computer you used may have been compromised. It now provides much less protection against theft of your coins. If you need the level of protection that a cold paper wallet provides, you need to create a new one and send your coins to it. Destroying your paper wallet address Do not destroy the only copy of a private key without verifying that there is no money at that address. Your client may have sent change to your paper wallet address without you realizing it. Your client may have not consumed all of the unspent outputs available at the paper wallet address. You can go to blockchain.info and type the public address into the search window to see the current balance. I don't bother destroying my used/empty paper wallet addresses. I just file them away. Encrypting your private key BIP 0038 describes a standardized way to encrypt your paper wallet private key. A normal paper wallet is vulnerable because if anyone sees the private key they can take the coins. The BIP38 protocol is even resistant to brute force attacks because it uses a memory intensive encryption algorithm called scrypt. If you want to encrypt your wallets using BIP38, I recommend that you use bitcoinpaperwallet because they will let you type in your own private key and will encrypt it for you. As with bitaddress, for high security you should only use a local copy of this website on a computer that will never get connected to the internet. Splitting your private key Another option for protecting the private key is to convert it into multiple fragments that must be brought together. This method allows you to store pieces of your key with separate people in separate locations. It can be set up so that you can reconstitute the private key when you have any 2 out of the 3 fragments. This technique is called Shamir's Secret Sharing. I have not tried this technique, but you may find it valuable. You could try using this website http://passguardian.com/ which will help you split up a key. As before, you should do this on an offline computer. Keep in mind if you use this service that you are trusting it to work properly. It would be good to find other independently created tools that could be used to validate the operation of passguardian. Personally, I would be nervous destroying the only copy of a private key and relying entirely on the fragments generated by the website. Looks like Bitaddress has an implementation of Shamir's Secret Sharing now under the "Split Wallet" tab. However it would appear that you cannot provide your own key for this, so you would have to trust bitaddress. Durable Media Pay attention to the media you use to record your paper wallet. Some kinds of ink fade, some kinds of paper disintegrate. Moisture and heat are your enemies. In addition to keeping copies of my paper wallet addresses I did the following:
Order a set of numeric metal stamps. ($10)
Buy a square galvanized steel outlet cover from the hardware store ($1)
Buy a sledgehammer from the hardware store
Write the die rolls on the steel plate using a sharpie
Use the hammer to stamp the metal. Do all the 1's, then all the 2's etc. Please use eye protection, as metal stamp may emit sparks or fly unexpectedly across the garage. :-)
Use nail polish remover to erase the sharpie
Electrum If you trust electrum you might try running it on an offline computer, and having it generate a series of private keys from a seed. I don't have experience with this software, but it sounds like there are some slick possibilities there that could save you time if you are working with a lot of addresses. Message to the downvoters I would appreciate it if you would comment, so that I can learn from your opinion. Thanks! The Easy Method This method is probably suitable for small quantities of bitcoin. I would not trust it for life-altering sums of money.
Download the bitaddress.org website to your hard drive.
Close your browser
Disconnect from the internet
Open the bitaddress.org website from your hard drive.
Has anyone been able to export private keys from Armory?
Hi everyone, I am super pissed but I am going to try and keep it low key. I have a wallet that I saved in Armory years ago, and I want to move coins from it now. I had looked online a few months ago, and it said that I could export the private keys from Armory and sweep them into Electrum. Well, today I tried it in both Armory 1.35 on Windows and the latest version on Linux. It doesn't work at all. You can open a window after choosing to backup individual keys, and there are checkboxes there for all the different types of keys you could want, but checking and unchecking them DOES NOTHING. All you can get is the Armory backup string for the wallet. That you already have, if you have restored the wallet from a paper backup. Time to download all 120Gb of the blockchain I guess. Has anyone ever exported private keys from Armory? Am I doing something wrong? Thanks. Edit: PSA: Armory does not work at all on a fresh Ubuntu 17 install. It just fails silently and doesn't install. Neither does it work on MacOS El Capitan. On Debian 8, not all of the dependencies are installed properly during installation. I'm afraid to update my Windows copy now. Edit: Bit the bullet and did it. Got it working on Ubuntu and found out that you have to start bitcoind in the background and play with some Armory settings to get it to run, then downloaded the whole thing from bitcoin-qt. Turns out I was right - Armory doesn't know the private keys until after it has downloaded the whole blockchain. And spent an hour chewing through transactions. AND you've restarted it twice. But I finally got them. Thanks everyone!
I just saw this one and had a doubt, does wallet leaks my IP? Does vpn requires special config for wallet?
Avoid Thin Clients and Hosted Wallets Almost all thin clients leak which addresses you own to whatever Simple Payment Verification (SPV) server they connect to. Thin clients do not store the blockchain locally. Instead, they query a single SPV server for the transactions that involve the addresses in your wallet. While this functionality is far more efficient and fast than parsing the blockchain locally, the trade-off is that every Bitcoin address you own is submitted to the SPV server. Some thin clients, such as Multibit, have the capability of using bloom filters to help conceal which addresses you own by requesting extra transactions that don’t involve your wallet. However, Multibit currently favors efficiency over privacy and does not utilize bloom filters for address anonymization. The Electrum thin client doesn’t use bloom filters at all, so just like Multibit, any server you connect to knows every address that you own. Hosted clients are even worse in terms of anonymity. All of your private and public keys reside on 3rd party servers, so it is trivial for the operator to know which Bitcoin addresses you own. Additionally, any other information you’ve submitted to the service is associated with your Bitcoin addresses and can be easily accessed by the service’s operators. These types of wallets make it easy for a SPV server operator or service administrator to not only know which Bitcoin addresses you own, but also associate them with your IP address. The operator could potentially publish the information, they could be hacked and the info stolen, or they could be subpoenaed or NSL’d to provide logs to law enforcement or government agencies. One of the fundamentals of Bitcoin is not having to trust any single party. In terms of anonymity, it’s best to use a full Bitcoin client like Bitcoin-Qt or Armory, and store the entire blockchain locally. tl;dr; Thin clients and hosted wallets leak which addresses you own — use a full client like Bitcoin-Qt or Armory instead. source: https://99bitcoins.com/know-more-using-bitcoin-anonymously/
I've been trying to get Bitcoin Armory to work. It seems I have a very common problem with the software. 'Initializing Bitcoin Engine' for eternity. I've done usual 'google it' but those solutions seem to have no effect on armory itself. For a short while, Bitcoin Core largely had the same issue, by running the 'qt' executable and waiting about an hour; Core is working just fine, and starts up with no issues. Meanwhile Bitcoin Armory just 'initializes' I do realize I could just use Core, but Armory seemed like it would be pretty damn nice if it actually worked. And after reading on how wallets work and private keys, etc. I decided the best combo would be a local software-based 'hot/active' wallet and I've got a trezor and trezor steel on the way to cold storage/recovery Other than running Testnet/qt, is anyone aware of other solutions that worked? My next step is a reinstall. I don't currently have any wallets or whatnot to worry about. I just spent the past few weeks reading about Bitcoin so I'd actually have an understanding of what I was doing. I also tried to register over at Bitcoin Talk but their captcha system is broken (shows the same image, but the puzzle is actually different) but that's their issue to resolve. Anyway, hope you're all having a good day. This cryptocurrency stuff seems pretty cool and I'm looking forward to hopping onto the train.
Bitcoin client comparison? Ease of use, functionality, security etc..
Hey everyone, I've recently started using bitcoins, and been trying to figure out the best way to store them.. There are a bunch of desktop clients available, each with it's ups and downs, supporting different features, and using different amount of resources.. I wanted to find a nice overview of them all, but so far I'm not finding anything that I wanted to know.. So I think we should have some kind of wiki page, that describes them in more details. Explains how to start using each of them, and how to ensure it's safe. For example, to try and secure my wallet files, I'm storing them in a TrueCrypt volume, that's archived to the cloud. This way they are backed up to multiple locations, incase my machine dies, and are also encrypted, in case one of the machines is compromised! I'm not sure if that's overkill or not :) I thought I'd start with a short write-up of my opinions on some of the clients and my impressions of them. It's by no means a comprehensive review (that would take a lot more space than a single reddit post). All of this is just a subjective view on each of the clients.. I hope more people will add to it, maybe even compoling a nice and informative comparison of all the popular clients!
Bitcoin-QT: The official client. Somewhat basic in functionality, advanced functions (like backing up the private key) available through the "debug" window., but works well for a lot of people.. You can backup the wallet.dat file in the TrueCrypt volume to secure the coins, but the client will store the main working copy of the wallet file in %APPDATA% in Windows - leaving it potentially compromised, unless you encrypt the wallet file (part of the client's functionality). There's no obvious way to change the storage location. The downside (upside for some?) of the client is that it stores the whole blockchain.. (almost 15GB atm) Initial synchronisation takes a lot of time.. If you don't use it for some time, you'll have to synchronise again, which takes time (and CPU resources btw).. At the end of the day, the wallet is as secure as your machine is. No support for paper wallets / watch-only wallets / offline storage, transactions.. But for basic use - it works perfectly fine.
Bitcoin Armory: A popular powerful client, runs "on top" of Bitcoin-QT, which means the blockchain is also stored on the local drive.. On top of that, the Armory client will also build a local database to manage it, which means it needs more storage on it's own.. (at the moment, that's an extra 16GB on top of the blockchain!). Also, the synchronisation status is not very helpful, just saying the % synchronised.. At least Bitcoin-QT states how many weeks/days you are behind, so you can somewhat estimate how soon the sync will work. The Armory client supports multiple wallets, compared to the official client, which can be stored separately. The wallets use (correct me if I'm wrong?) a deterministic key to generate the private keys, which means if you backup your wallet in cold storage - you can restore it at any point, and restore all the new addresses generated after the backup - a very useful feature. The Armory client has more advanced functionality like paper backups (described above), offline wallets and offline transactions, and a lot more.. Some features are missing, like importing watch-only addresses. You can though create a watch-only backup of a wallet, and import that on a different machine, but if you only have an address - not supported atm. The client seems rather powerful, but also feels a bit clunky and hard to use.. Some functionality is missing, and just strange (not all private key formats are supported.. even if most other clients have no problems with them)
MultiBit: A lite bitcoin client, that doesn't store the whole blockchain locally. This makes it a lot easier to start using, even on a new machine. It will only synchronise a part of the blockchain that is relevant for a specific address, which means you save on both time and storage when using it, but it can be (potentially, but quite unlikely) compromised, if the only nodes it can see are rogue. It also supports multiple wallets, you can select where to store the wallet files, and they can be password protected as well. You can store them on a TrueCrypt volume, to secure it even more. The app is still relatively simple to use, while providing more functionality than just the basics. Compared to Armory and Bitcoin-QT, you can also create a portable installation, which can be stored on a USB key / True Crypt volume along with the key files.
Electrum: This is one of the clients I've hardly used so far.. It has a full and a portable version! With the portable version I can store they keys where I want, and keep them secure as I see fit. As MultiBit, it doesn't store the full chain, but instead will use a server to keep and manage the blockchain. But nothing is stopping you from running your own electrum server and connecting to it, if you're worried. The client seems rather simple, but powerful at the same time. Same as Armory - it will create a seed that will be used to generate addresses. The nice thing is that it will generate multiple receiving addresses, and will also maintain change addresses, which (if I'm right) means that each transaction will not reuse the same address twice, unless you force it to. My only gripe so far with it is that it's the only client so far where you can't send to multiple addresses in one transaction, forcing only a single recipient per transaction.. I hope that'll change in the future :(
Is there any utility that lets you convert private key from "5" (wif format) to "L" (compressed key) for Linux which runs from command line.
I would be glad to have any solution Python, Perl, Bash or any application written for Linux. Because I need to convert the Bitcoin addresses from vanitygen into Bitcoin-Qt compatible format. I don't need such options which presume installing heavy wallets like Armory, Electrum, etc, because they presume importing addresses into their address book which won't let me be flexible enough with scripts and huge volume of private keys/public keys. Even though I appreciate if someone could help with these, it feels very ridiculous to me that bitcoin is so immature that very often I can't find necessary tools for many programming tasks in Linux automation and the whole thing with signing transactions in an automated way is so complicated! It shouldn't be like that. Linux is the most essential tool for developer but currently awesome libs like python-bitcoinlib written by Peter Todd are available only for people who know Python, which is really disappointing, because it create barriers for me since I'm not a programmer even though I know Linux/Bash/PHP
PSA For Noobs: Getting started in the bitcoin economy
Wallets: Electrum, armory, bitcoin wallet (android), blockchain (android/iphone), bitcoin-Qt, coinbase Bitcoin-Qt is the "full" client and requires you to download every transaction ever made onto your computer. This file is ~13GB(?) and the process can take several days. Here is a basic introductory video: http://www.weusecoins.com/en/ Here are paper wallets: www.bitcoinpaperwallet.com Here is an HTML file of 100+ bookmarks to bitcoin services/merchants/news/information which you will find very fascinating. http://www.fileswap.com/dl/8U3bZPAyOD/ A 'public key' is your bank address/account, and a 'private key' gives you access to the funds stored in a public key. Never share your private keys with anyone, ever. When encrypting your wallet, WRITE DOWN YOUR PASSWORD. If you lose this password, you lose your coins. Period. Here is an advanced video of the inner workings of the software: http://www.youtube.com/watch?v=Lx9zgZCMqXE Enjoy!!!
A proposal of a wallet to the clever developer shibes out there which concerns all and future shibes (Would be extremely beneficial with the Talladega race coming closer and closer)
I recently watched this talk by Andreas Antonopoulos (which I recommend every shibe to watch). In this video he explained how private keys, public keys, adresses, cryptography and wallets work. In the video, I realized how far wallets have come already, how little the QT-wallet actually matters for us common folks, and how important it is to have user friendly wallets with good features. I got especially intrigued when Alexander explained type 2 deterministic wallets based off of trees. And my question is: "Can you deveolper shibes develop a type 2 deterministic wallet (like electrum) with BIP39?" For all who don't know what I'm talking about, I will try my best to explain how type 2 deterministic wallets work by basically paraphrasing Andreas from the video. Please correct me if anything is wrong. Let me begin by saying that our, and every virtual currency QT client is more focused on implementing the stability into the core coin protocol rather than implementing user-based fancy wallet features. Recently the bitcoin QT client has been removed from the bitcoin.org site as the recommended wallet for new users. This is because it isn't a good interface for the common man, or really anyone. It has also been discussed by bitcoin developers to strip all the wallet functionality out of the QT-client just for this reason. Explaining type 2 deterministic wallets: When creating a private adress, a random number is drawn, in this process you will also generate a 128-bits random seed (for example 521566b6ebfe0ab8ff7b8110b92c57d4). A seed is generally speaking a starting point for the random number generation. This seed will therefore be the generator of all future adresses in your wallet. From this seed, you can use mathematical functions to generate keys in such a way that you can't predict those keys without having the seed. Just to clarify: If you have one private key, you can't figure out the other, and if you have the other, you can't figure out the first. This means that as long as your seed and mathematical function is not compromised, your keys won't be compromised. This is because you generate (or regenerate) all your private keys from that seed. These mathematical functions can for example be the following: "You generate the first key, then you jump over 5 keys, then generate another key etc.". What this leaves us with is that you need two types of information to "infiltrate a wallet": The seed and the gap. This means that the seed and gap still needs to be encrypted, the good thing is that there's no need for a backup if you lose your wallet because you know your seed, and the gap. Now you might be wondering: "How am I going to remember my seed? Won't this be hard? Won't it be a pain to remember?" Well there is also a new really interesting implemented technology called BIP 39. What this technology does is that it creates 12 random words (called a 12-word mnemonic code). These words are deterministically derived, in this way you can convert those 12 words back to the seed. Let me give you of an example of why this is beneficial: The first thing is that 12 random words are much easier to remember and hear than a combination of 12 random letters and numbers. This means that if you lose your wallet and you're away from where your seed is written down/stored etc., you can for example call someone you trust to help you to restore your wallet. This can be done by the person telling you the 12 words over the phone, which will again give you your seed. No need to wonder if the person said "b" or "d". The mnemonic code for the seed I wrote down (521566b6ebfe0ab8ff7b8110b92c57d4) is "pain apologize tired bar change think off outside clear fear hot stir". You can see how this could be handy. This is technology is at the moment restricted to the English language. More importantly, it is restricted to a specific dictionary. The reason for this is because based on those specifications, every single wallet in the world with these features can take 12 words with the gap and deterministically recreate the same seed. From this point it can then recreate the same keys. There's of course a checksum built in, so one of the words is a checksum for the other words. This entails that not every combination you throw at it will be correct. This means that if you remember those 12 words in that specific order, you will never have to take a backup of your wallet ever again. How great is that? So a TL:DR: I want our smart and clever developer shibes to create a type 2 deterministic wallet with BIP39 (like electrum or armory) with a great design. This would make it much easier for both newcomers and old shibes to use their wallets. The problem with backing up you wallet would also be a thing in the past. And if you know your seed or mnemonic code, you can import your wallet with extreme ease to any other device with a wallet just by typing in some words instead of moving a backup file to your device. If this wallet is being based on a litewallet, there will also be no need for synchronisation. Disclaimer: Like I said, I'm not a pro at this, please correct me if anything is wrong here. And please shibes discuss, is this something the community is also interested in? I would be so happy if we got a wallet like this.
Watch Only Wallets in Bitcoin-QT. Is that possible?
is there any way in which I can have my Bitcoind but with a wallet.dat that does not have the private keys?. For security reasons I only need to have public keys with BitcoinD (I know I can do that in Armory but I need a way to do that as part of my BitcoinQT Thanks
I am having a problem with my first transaction with Msigna and am looking for help. I have been unable to find an answer by searching the internet so I am writing this post. I sent a transaction to an address I wish to send funds to but the confirmation status is “unsent” after several hours of waiting. I am running Bitcoin-Qt and the blockchain is completely downloaded and synced. The icon in Msigna is a green circle with a check in it and it is connected. However the funds seem to be stuck locally and have not appeared in blockchain.info. I have installed the latest version and imported my vault (and updated schema) but the status remains the same. Am I doing something wrong? How do I recover my un-sent funds? How do I export the private keys so that I can import into another wallet like Multibit or Armory? Any help would be greatly appreciated… Thanks!!
A helpful discussion about wallet security (esp. Electrum)
I was recently contacted via private message by a redditor who read a comment of mine about wallet storage (I assume this comment). I think there was quite a bit of useful information in it for other bitcoin beginners, so I am reposting it here in full (with permission). The redditor in question wanted to remain anonymous though. I hope this is of use to some of you here! From: Anonymous Redditor
I saw your post regarding your wallet storage and had a few noob questions if you don't mind. My plan is similar to yours but I was unsure whether to use armory or electrum (electrum's seed creation scares me a bit). You mentioned you have a bootable LINUX (ubuntu?) USB stick that you keep your wallet on....do you only boot this onto an always offline computer? Do you use something like Truecrypt to further protect your wallet.dats? Thanks for your time!
My plan is similar to yours but I was unsure whether to use armory or electrum (electrum's seed creation scares me a bit).
For me it is the other way around. Armory (and bitcoin-qt) scare me. Armory is just a wallet. It still needs bitcoin-qt running in the background. For me the problem is two-fold: 1) Size bitcoin-qt (and armory) need to download the entire blockchain. That 13+ GB that takes hours to download and days to verify. And if you ever lose it, you need to do it again. 2) Random keys armory and bitcoin-qt generate random private keys. You get 100. If you use a few (you use them when you send coins for example) then new ones are created. So, if you create an armory wallet and make a backup, that backup will have 100 keys. Then, if you make 33(!) transactions, your 100 keys are used up and you will have 100 different random keys. If someone then steals your computer (or your house burns down) then you cannot use your backup anymore. It only has the 100 old keys and none of the new keys. So you have lost all your bitcoins. Why 33 transactions and not 100? Because of change addresses. If you have 10 BTC and send me 2 BTC then most wallets will create 2 transactions. 2 BTC from your old addres to me, and 8 BTC from your old address to a new (random) address. This process costs 3 private keys. 2 keys for the transactions and 1 key to create a new address. This means that after every few dozen transactions you need to refresh your backup so it has the newer keys. For me that is impractical. It means that I need to keep my backup close by because I often need it. Electrum does not have this problem. The seed solves this. Private keys are not random but are created from the seed. If you have the seed then you have, by definition, all the private keys you will ever need. Your backup can never be out-of-date. This is easy for me. I save the seed in a file, encrypt it, put it on an USB stick and give copies to a few family members who have safes in their homes. If my computer is ever stolen, or my house burns down, I can go to a family member, decrypt the seed file and use the seed to restore my electrum wallet. Even if that USB stick is 10 years old.
You mentioned you have a bootable LINUX (ubuntu?) USB stick that you keep your wallet on....do you only boot this onto an always offline computer?
It depends on how secure you want to be. For maximum security, keep the computer always offline. But if you want to spend the bitcoins from your wallet, you will need to be online. I use the USB stick for my savings account. It only receives coins and I do not send. So I do not need to boot up my USB stick. I have created a second wallet on blockchain.info that I use for day-to-day transactions. All BTC I receive goes to my blockchain account. Then I transfer a part of that to my savings account and only keep a bit of change that I need in the blockchain account.
Do you use something like Truecrypt to further protect your wallet.dats?
No. Electrum does not have a wallet.dat. It has the seed. I simply copy the seed to a TXT file and encrypt it using GPG and symmetric encryption. Example:
Make sure you use a password that is strong and that you cannot forget! If you need to write the password down on paper and your house burns down, then you cannot decrypt the seed anymore!
From: Anonymous Redditor
Forgive the naivety here: Correct me if I'm wrong - The safest way to generate your wallet seed is on an offline computer correct? So, theoretically, generate the seed on an offline-only computer, copy to txt...encrypt. back up on multiple USB's. Then on your online computer, load electrum and import Seed? Thanks so much for the thorough explanation! I'm a potato when it comes to reddit's bitcoin tip bot. Send me an address - would like to send some internet magic money your way.
The safest way to generate your wallet seed is on an offline computer correct? So, theoretically, generate the seed on an offline-only computer, copy to txt...encrypt. back up on multiple USB's. Then on your online computer, load electrum and import Seed?
Not quite. The risk with an online computer is malware and people breaking in. If you generate the seed on an offline computer and then move it to an online computer, you don't really take that risk away. You still have your wallet on an online computer which you use for day-to-day work and which is exposed to hackers and malware. I suggest you make two wallets. One wallet is your "savings" wallet. You can use the USB stick Linux for this. Generate the wallet offline, backup and encrypt the seed onto multiple USB sticks and note down the bitcoin address somewhere so you can transfer funds to it. The only time you should use the USB stick to go online is when you want to transfer funds out of your savings wallet. The, on your normal computer (or your smartphone if you prefer), create a second wallet using a different password. This is the wallet you keep only a little money in for your day-to-day transactions. Note down the seen, encrypt (with a different password than you used to encrypt the seed from your savings wallet) and add it to the USB keys. You can use Electrun for this second wallet as well, but you can also use something different. I use a blockchain.info wallet for my day-to-day expenses. Whenever you have a larger amount of bitcoins in your day-to-day wallet, transfer some to the wallet on the USB stick. You don't need to boot up the USB stick for this. You only need the address you wrote down. When you want to spend a large amount of money, boot up from the USB stick and transfer coins from your savings wallet to your day-to-day wallet. Reboot into your normal computer and use the day-to-day wallet to pay for what you wanted to buy. The core of the issue is simple: Don't store a lot of money in a wallet on a computer that you use a lot. Computers that are used a lot get attacked a lot. Simple :-)
Thanks so much for the thorough explanation! I'm a potato when it comes to reddit's bitcoin tip bot. Send me an address - would like to send some internet magic money your way.
That is very kind! My address is: 1PAXiscvKoGRJ5XxMZvri3CMNeKYYb8wMQ
From: Anonymous Redditor
You are awesome:) Thank you again for the insight! Sent some your way.
I don't know. You would be better off asking this on www.ubuntuforums.org for example. I don't know if that computer's hardware is compatible with Ubuntu. Speed-wise the bottleneck will be the USB stick and not the CPU or memory. USB sticks are much slower than hard drives. Note that you don't have to buy a computer for this. You can use the computer you already have and still run Ubuntu off an USB stick for your Electrum wallet. What I said in my previous post about not using your day-to-day computer for your wallet, with that I mean the operating system and software. Not the hardware. Unless you're afraid someone put a hardware keylogger inside your computer :-)
From: Anonymous Redditor
Fascinating! My tin foil hat is in full effect:) Thanks again for your time and patience.
Your welcome. Have fun with bitcoin! Oh, I have a question for you now. Would you mind if I repost our entire private conversation here to /BitcoinBeginners? I think other redditors there would also be interested. And if I can repost it, do you want your username in there or should I replace it with "Anonymous Redditor" or something?
From: Anonymous Redditor
You can certainly repost it! And yes, if you wouldn't mind removing the username I would very much appreciate it. Thanks for asking btw!
Anyway, I hope this is useful for some people out here.
Found my first bitcoin address from 2011. Now what?
After hearing the more online merchants are accepting Bitcoin, I started trying to learn more about it yesterday. I remembered that in 2011, I actually tried mining and I eventually got .05 BTC. I emailed myself my bitcoin address back then. Now here is what I don't understand. If I were to attempt to get the BTC from my old bitcoin address into my wallet on blockchain or my wallet on coinbase, what would I need? Would I need a private key, a password -- both? This isn't a huge deal and if I can't get the coins it isn't an issue at all, but I'm confused -- and I don't like that. :) UPDATE: Thank you all for your help. I found the wallet.dat file and have it loaded in Bitcoin-QT. The wallet did contain the 0.05 BTC. I'll now install Armory and use that as my wallet and utilize the paper wallet feature and stick that puppy in my safe. :)
Edit: bitcoin-qt creates compressed keys as you can check in the iscompressed key-value. Sign up for a free GitHub account to open an issue and contact its maintainers and the community. And spent an hour chewing through transactions. Paste the private keys from Bitcoin-Qt here. I appreciate anybody's help in term of how to get the private key at this point. Any private key is generated from randomness. If too much of it were predictable, that would defeat its ability to remain a secret. And that's the weak spot, because many computers in actual use are not too good at generating random numbers, either because they do not have a dedicated source of randomness built-in, or because the software used does not have access to it. With a computer you ... The Paper Wallet’s Private Key is no longer fully secure and is able to be compromised once uploaded to an Online Wallet service or to your Software Client such as the Bitcoin-QT client or Armory. It is recommended to spend the Bitcoins you need at this point, and transfer the rest to another Vircurvault Paper Wallet as soon as possible to ensure your Bitcoins are fully secured again. This ... COLD STORAGE BITCOIN WALLET. Armory pioneered easily managing offline Bitcoin wallets using a computer that never touches the Internet. Everything needed to create transactions can be managed from an online computer with a watching only wallet. All secret private key data is available only on the offline computer. This greatly reduces the attack surface for an attacker attempting to steal ... Got it working on Ubuntu and found out that you have to start bitcoind in the background and play with some Armory settings to get it to run, then downloaded the whole thing from bitcoin-qt. Turns out I was right - Armory doesn't know the private keys until after it has downloaded the whole blockchain. And spent an hour chewing through transactions. AND you've restarted it twice. But I finally ...
How to sweep private keys - Using the Electrum Bitcoin ...
How to get private key litecoin from qt wallet get free litecoin online now https://bitcoinbit.cf http://bitcoinbit.cf Bitcoin-QT is a Bitcoin wallet and does some other functions. Running this software is the backbone to the entire Bitcoin system. You may need to open port 8333 in your firewall. For more info see Dash is built from Bitcoin's core code, meaning that it remains compatible with systems that are already designed to work with Bitcoin. The creator of Dash, Evan Duffield, works with a "core team ... EXPORT PRIVATE KEY: dumpprivkey + "walletaddress"-----Private key is ORIGINAL wallet, you can move to any other wallet (web, electrum, qt, java ...). The most important thing is that it can NEVER ... bitcoin private key qr export private key bitcoin-qt bitcoin key resistance bitcoin keyring bitcoin key recovery bitcoin root key bitcoin rsa key bitcoin random key bitcoin private key recovery ...