34

Essentially, a hardened child key is is computed with hash(parent private key + index), whereas a non-hardened child key is computed with hash(parent public key + index). So what practical consequences does this have? With an extended public key, you can derive non-hardened child public keys. This is useful in situations where you want to accept payments ...


29

There's a lot of confusion here, mostly bits and pieces of the whole scheme that is Hierarchical Deterministic derivation, and finally two questions that seem to indicate missing some point about it. The answer to the first question is No. The second question is more interesting : Let's start from extended keys, specifically BIP32 keys. Like private keys ...


23

Thomas' answer is correct, but I think an easy version may be appreciated as well. I suppose you know the concept of public key cryptography? If you don't, here is a very short explanation (or read the wikipedia page): Public key cryptography (as used in Bitcoin), allows you to hand people a public key and use the corresponding private key to prove the ...


19

Importing a private key can lead to non-intuitive behaviour, and that can be exploited by an attacker. Imagine I'm evil. I give you a paper wallet with 1 mBTC on it. You're happy and import it. I keep the private key and wait. Depending on the client/user, maybe someday you'll put some real money on there as change/received funds. Then I can swipe them ...


19

Yes, this is possible. However, I want to upfront state that this is not advisable for multiple reasons: Bitcoin keys are intended to be single use for privacy reasons, and leveraging them for encryption unnecessarily encourages treating them as a long-lived identity. There may be ugly and dangerous interactions when keys are used for multiple protocols ...


18

With HD wallets, a single key can be used to generate an entire tree of key pairs. This single key serves as the "root" of the tree. The word seed is simply a more human-readable way of expressing the key used as the root, as it can be algorithmically converted into the root private key. Those words, in that order, will always generate the exact same key. ...


14

Key import by itself (from a trusted source of keys, such as your own cold storage or backups) isn't a dangerous thing. However, the vast number of ways one can cause problems for themselves through key import leads to these warnings. Many such warnings appear to address more complex situations beyond bitcoind's scope. In this case, there can be many ...


14

"Improbable" is an understatement. There are 2256 possible keys. In the entire universe, there are estimated to be "only" 2100 atoms. So the odds of someone else ending up with the exact same address/key as you is far, far less than the same atom, out of the entire universe, being randomly picked twice. If you are worried about an address collision, here ...


13

There are three main types of wallets: non-deterministic (random) wallets sequential deterministic wallets hierarchical deterministic wallets With a non-deterministic (random) wallet, all the private/public keypairs are generated randomly. The wallet may generate 100 random private keys as soon as it is initialized, for example. With a sequential ...


12

Yes, all three assumptions are correct. You can with some effort keep your private keys offline for their entire life. A description of how to sign transactions offline is found here: How to sign a transaction using only an offline computer? Adding a bit of detail on Assumption 3 along the lines of Tim S.'s comment: A computer that is offline would ...


11

Bitcoin uses the secp256k1 elliptic curve with 256 bit private/public key pair cryptography to render ECDSA functionality. The two bitcoin explorer (bx) commands below replicate statements/results in the site references above. Note the private key is a 256-bit hexadecimal encoded number. % echo "...


11

The wallet.dat was created with Bitcoin Core (in 2011 it was called "Bitcoin"). You should install the newest version of Bitcoin-Core (0.14.2 by the time of writing). The wallet.dat from 2011 should still run. Use the GUI. If you want to export the private key, you don't need to sync (takes a couple of hours / days) Can also be done on a different ...


11

No, there is not one private key. There is one Master private key. The master private key is then used to generate more private keys in a deterministic fashion, i.e. using the same master private key, you will generate the same private keys. Those private keys are what are actually used in your wallet. Their public keys are generated and the addressees ...


10

Bitcoin private keys are most commonly displayed in wallet import format (WIF), also known as base58check (a number expressed in base 58 with a checksum at the end and a version byte at the beginning). To create a WIF private key, you need to: Generate an ECDSA secret exponent (the private key) using the SECP256k1 curve. Convert the secret exponent/private ...


10

You can sign any text with the private key you own and anyone can verify that with a public key associated with a given Bitcoin address. As long as you make the message relevant to the conversation, say "This is LethalFractal, at 2013-09-07, I claim ownership of address 1234567890... as a proof for negotiations with John Smith", the person can know that it ...


10

There's two types of wallet. A conventional wallet is just a collection of random keys, Bitcoin-QT and Multibit fit into this category. A Hierarchical Deterministic like Electrum or Armory generate all the keys in the wallet from a single key, so that one backup is permanently associated with a wallet no mater how many new addresses and change addresses are ...


10

With "Master public key" you probably refer to deterministic key derivation after bip32. The correct term is "Master extended private key" (acronym xpriv) and "Master extended public key" (acronym xpub). The acronyms are "xpriv" and "xpub" because the base58 check prefix results in those 4 characters for a mainnet extended pub/priv key. The difference ...


9

There are two main ways someone can hold Bitcoin On an Exchange or Online Wallet or Privately on a computer in a wallet or offline private wallet For (1) you will need to obtain the username and password to access the account. For (2) you will need to login to the computer and, depending on your luck, if the wallet is not encrypted, you should have ...


9

Are there any good points of WIF It is shorter than decimal/hex representation. And, yes, there is checksum. Can I sign on a transaction by using WIF without the private key? WIF is a representation of private key.


9

One private key maps onto two addresses - one that uses an uncompressed public key, and one that uses a compressed public key. What you might also be interested in is a deterministic wallet - a Bitcoin wallet holding multiple addresses generated from one private key / secret. This will let you secure multiple addresses and store only one key.


9

If you are comfortable with a command line, I have used ssss-split and ssss-combine for sharding encryption keys in a n-of-m scheme. These utilities use Shamir's Secret Sharing Scheme to safely break up secrets for later reassembly. For example, you could create a 4-of-7 scheme, where you would hide shards in 7 different locations (personal safe, safety ...


9

When you create a private key, this process is (or at least should be) completely random - meaning that in theory, the probability of creating some specific private key is 1/N where N is the number of possible private keys. There's nothing stopping someone from creating an already created private key, except chance. A private key is made up of 256 ...


9

The extended public key contains just a bit more information than the public key and chaincode, but the public key and chaincode are all that matter for key derivation. The rest is just metadata about the keys for wallets and people. The version bytes distinguish between xpub, xpriv, and other types of keys. The fingerprint identifies the parent so that a ...


8

I'd check out the python library PyBitcoin (https://github.com/blockstack/pybitcoin or "pip install pybitcoin"). It's pretty simple to get the address from the wif private key: >>> from pybitcoin import BitcoinPrivateKey >>> private_key = BitcoinPrivateKey() >>> private_key.public_key().address() '...


8

Coinbase no longer supports any sort of wallet import (wonder why?). To quote Coinbase (June 2016 on https://support.coinbase.com/customer/en/portal/articles/2285419-how-do-i-import-an-existing-wallet-) Coinbase wallets currently do not support a wallet import feature. If you have paper wallets, private keys, wallet.dat files, or brain wallets, they can ...


8

It is important to be able to recover your private keys using only tools you fully control. That protects you against failure of infrastructure you would otherwise need to transfer your funds. There are lots of stories of corrupted backups, unreadable backups, and backups that didn't actually include the private keys. Storing your private keys unencrypted ...


8

The ECDSA signature algorithm used by Bitcoin doesn't have symmetry between its private and public keys. If you read about how the algorithm works, they aren't even the same type of mathematical object: a private key is an integer, while a public key is a point on an elliptic curve. They do not, in your words, "perform the same task." So you can't do that....


8

If you are posting different questions I suggest, posting them up in different threads. But I'll try to answer all of them. 1) It doesn't work like that. Every address is a pair (private key, public key), the address is made after hashing the public key twice. So, each address has one private key and private keys are not shared. So if in one address you ...


8

You have many private keys Quintessentially, a wallet is a key chain for your private keys plus optional convenience and usability functions. When you create a wallet, at least one but usually lots of private keys are generated. E.g. Bitcoin Core keeps 100 unused private keys in store at all times by default, and whenever you use a new address, this pool of ...


8

Let me rewrite your question in a different notation, where all lowercase values are integers and uppercase values are points. The group generator is G (a known constant). The private key is q, its corresponding public key is Q = qG. The nonce is n, its corresponding point is R = nG. The X coordinate of R is r. The hash function is h(x). A signature is (r,s)...


Only top voted, non community-wiki answers of a minimum length are eligible