edgecase
Author: StJohn Piano
This page is subject to change at any time. It is not signed by its author or by Edgecase Datafeed.
448 words - 121 lines - 4 pages




Summary


To create a Bitcoin private key, you will need to generate 32 bytes of entropy.

Browse to the article Recipe for generating entropy bytes using dice #2. Use this recipe to generate 32 bytes of entropy, which you can use as a new Bitcoin private key.




Contents


- Summary
- Contents
- Background
- More information






Background


A Bitcoin address is the public entity that holds bitcoin. Anyone can know the address and send Bitcoin payments to it.

An address is derived from a private key. The private key is the entity that can authorise a payment from the address. It must be kept secret. Anyone who knows it can spend bitcoin from the corresponding address.

Example Bitcoin private key (64 characters):
15e7e195332b0aa8a684dc3be1f29dd04daa0a5434c11a8b9e6ad180df076ae4


In computing, "entropy" is used to mean "some information without predictable structure". It is generated using some physical process whose output is unpredictable and converted by a transducer into digital data.

Bitcoin addresses rely on ECDSA public-key cryptography. In the ECDSA cryptosystem, entropy is needed for private keys and for making signatures.

The human brain is bad at generating entropy. Given that a large part of its operation involves detecting patterns, this is unsurprising. Detecting patterns is the opposite of generating random values. If a human is asked to think of a random string of words, his/her mind will flow along existing grooves of thought in ways that could be predicted with some success by an adversary.

So, if you try to think of a good passphrase for use as a private key, this may be more guessable than high-quality entropy and therefore insecure. Example: It is possible to write a program that will generate many combinations of this type:
"[mother's maiden name] + [your birthplace] + [your house number] + [etc]"
and test them to see if, when used as Bitcoin private keys, they lead to Bitcoin addresses that exist on the Bitcoin blockchain and contain bitcoin. If they do, then your bitcoin can be stolen.

It is difficult and time-consuming to generate high-quality entropy. If a tool is used to automate entropy generation, auditing such a tool is difficult and time-consuming.






More information


For more information concerning entropy and using dice to generate it:
- Browse to the article Generating entropy with dice and read the Notes and Further Work sections.


For more information about Bitcoin private keys:
- Browse to the article Generating a standard Bitcoin address. Go to the Notes / Discoveries section. Go to the part "Notes on the nature, secure creation, and validity of Bitcoin private keys and transactions". Read items (1) and (3).