7

I have seen many videos about paper wallets and different ways to store BTC. And I have choose to store using a cold wallet (paper wallet). But I am not sure what option I should choose: a normal BIP38 encrypted paper wallet, or a brain wallet printed in paper.

And plz tell me the differens with BIP38 and brain wallet.Thanks for your answer :D

P.S: Which one is securest?

4

BIP38 wallets are significantly more secure and are resistant to brute-force attacks when a decent passphrase is used.

Generally the term "Brain Wallet" refers to one in which the private key is derived from a phrase you make up. These have been shown to be insecure because humans are bad at entropy and generally anything easy enough to remember is not safe.

Note: modern BIP39 wallets will generate a 12, 18 or 24 word "seed" phrase from which unlimited keys can be derived. These may look like a brain wallet, but are completely safe as long as they were created securely. Remembering these words can be challenging though, so generally better to write them somewhere and store securely.

2

Brain wallets use your secret phrase to deterministically generate keys for you, meaning that you can never lose your wallet and there is no need to print it (except for extra-safe keeping). Hence the name, "brain" wallet (not paper wallet). But they have the downside that human chosen, and memorable, passphrases are usually easier to break. So in this sense, brain wallets are likely not as secure.

BIP38 wallets are password encrypted private keys stored on paper, and you can store the secret random password in a separate place. You can also do multisig with these wallets, I believe, so this has the potential to be much more secure. For example, if you made a 2 of 3 multisig address that you could send funds to, then even if an attacker got ahold of one key somehow, they still wouldn't be able to spend your funds.

Thus, you can see here the age-old compromise between convenience and security. Brain wallets are more convenient, but BIP38 paper wallets are more secure.

1

BIP38 allows you to hide your private key in plain sight. Nobody knows what the private key is until they decrypt it with the password.

A brainwallet is essentially generating a private key by hashing a password or passphrase.

You can generate a private key using random or pseudorandom sources, or you can hash a password or passphrase. You can then, if you choose, create a paper wallet from that key, and conceal the key with a BIP38 password.

You could conceivably generate a brainwallet and print it out with BIP38 concealment. The caveat is that BIP38 will not protect a private key that was generated with a weak password/passphrase, regardless of how strong the BIP38 password is. BIP38 only protects the paper wallet from prying eyes. If someone already knows what the private key is, BIP38 provides no protection.

  • I think this is the most accurate answer. Brainwallets do not conflict with BIP38 or seeds; it's just one extra step in order to make it easier to remember (and unfortunately in most cases easier to crack by an attacker). – Gendarme Jan 22 at 23:40
0

Why limit yourself and have the best of all worlds when you have all the power of bitcoin-explorer command line interface at your fingertips? The following examples should clearly answer your question with really short and sweet working examples.

Nothing says a 256-bit brain wallet private key has to be the result of a single hash. Besides picking a high entropy brain wallet phrase not published anywhere, cascading different hashing functions makes it harder to crack and discover a brain wallet's private seed.

% echo -n "This is a crappy brain wallet example that supports both BIP 38 and BIP 39" | bx base16-encode | bx sha512 | bx sha256 | bx sha256 6227e1e5a65d5791af2e433f42825b00ef30311439798f9f558c6066dfbb8362

% echo -n "This is a crappy brain wallet example that supports both BIP 38 and BIP 39" | bx base16-encode | bx sha512 | bx sha256 | bx sha256 | bx ec-to-ek --version 0 "My BIP 38 Passphrase" 6PYT2EZPT1AWDiPtRU19q9GJPABowwkM7s5WReTUhpgZW5KVyXG2G5FuhK

% echo -n "This is a crappy brain wallet example that supports both BIP 38 and BIP 39" | bx base16-encode | bx sha512 | bx sha256 | bx sha256 | bx ec-to-ek --version 0 "My BIP 38 Passphrase" | bx ek-to-ec "My BIP 38 Passphrase"

6227e1e5a65d5791af2e433f42825b00ef30311439798f9f558c6066dfbb8362

% echo -n "This is a crappy brain wallet example that supports both BIP 38 and BIP 39" | bx base16-encode | bx sha512 | bx sha256 | bx sha256 | bx ec-to-ek --version 0 "My BIP 38 Passphrase" | bx ek-to-ec "My BIP 38 Passphrase" | bx mnemonic-new

giraffe disease just erosion step silver royal silent dismiss beef nothing achieve vessel blush extend connect moon wide glide school hospital tape assault eagle

Additionally, be sure your BIP 39 wallet takes advantage an additional seed phrase of your choosing, also colloquially referred to as the 25th BIP 39 seed word. This ensures if an untrusted person gets access to your seed words, you have one more layer of defense.

Finally, to round out the examples, here is how to convert a 256-bit hex encoded key into an uncompressed Wallet Input Format (WIF) encoded key.

% echo 6227e1e5a65d5791af2e433f42825b00ef30311439798f9f558c6066dfbb8362 | bx base58check-encode --version 128

5JZWqe925xSFP9qC1XLVNm35JFKBts4bnQhjEg45b7czsJTpB2v

% echo 5JZWqe925xSFP9qC1XLVNm35JFKBts4bnQhjEg45b7czsJTpB2v | bx base58check-decode wrapper { checksum 1863987882 payload 6227e1e5a65d5791af2e433f42825b00ef30311439798f9f558c6066dfbb8362 version 128 }

0

BIP38 is a method for encrypting and encoding a private key. It says nothing about the private key itself.

Private keys are usually generated randomly, because Man is not a Particularly Good Source of Entropy and too many people are bad at creating strong phrases—which is why dictionary attacks are a thing. However, there is nothing that states that a private key must be generated randomly. A private key is simply a number between 0 and 2^256 (almost).

What a brainwallet does is to generate a private key from a phrase by converting it into a number between 0 and 2^256—usually by computing its SHA-256 hash. This way, even if you lose your private key, you can always regenerate it as long as you still remember the phrase. Unfortunately, this also means that if someone finds out your phrase, your private key is exposed. This is why brainwallets are not recommended; keeping a phrase secure is actually far more difficult than it first seems.

You can still encrypt your deterministically generated private key (i.e. brainwallet) with BIP38 and store it in case you ever forget your brainwallet phrase. Brainwallets and BIP38 are two separate things. Although it is not common to see them combined, it is very much possible.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.