|
|
|
@ -26,7 +26,7 @@ We'll examine public keys, private keys, signatures, and hash functions
|
|
|
|
|
in the following sections, and then use all of them together to describe
|
|
|
|
|
the addresses used by modern Bitcoin software.
|
|
|
|
|
|
|
|
|
|
==== Public Key Cryptography and Cryptocurrency
|
|
|
|
|
=== Public Key Cryptography
|
|
|
|
|
|
|
|
|
|
((("keys and addresses", "overview of", "public key
|
|
|
|
|
cryptography")))((("digital currencies", "cryptocurrency")))Public key
|
|
|
|
@ -61,9 +61,6 @@ _key pair_ for convenience. However, the public key can be calculated
|
|
|
|
|
from the private key, so storing only the private key is also possible.
|
|
|
|
|
====
|
|
|
|
|
|
|
|
|
|
[[private_public_keys]]
|
|
|
|
|
==== Private and Public Keys
|
|
|
|
|
|
|
|
|
|
((("keys and addresses", "overview of", "private and public key
|
|
|
|
|
pairs")))((("elliptic curve cryptography")))((("cryptography", "elliptic
|
|
|
|
|
curve cryptography")))A bitcoin wallet contains a collection of key
|
|
|
|
@ -117,8 +114,6 @@ random can significantly reduce the security of your private key and the
|
|
|
|
|
bitcoins it controls.
|
|
|
|
|
====
|
|
|
|
|
|
|
|
|
|
===== Generating a private key from a random number
|
|
|
|
|
|
|
|
|
|
The first and most important step in generating keys is to find a secure
|
|
|
|
|
source of entropy, or randomness. Creating a bitcoin key is essentially
|
|
|
|
|
the same as "Pick a number between 1 and 2^256^." The exact method you
|
|
|
|
@ -1411,16 +1406,8 @@ versions that haven't been defined yet. This will help make your
|
|
|
|
|
software usable for many years to come even if you aren't able to add
|
|
|
|
|
support for new Bitcoin features as soon as they become available.
|
|
|
|
|
|
|
|
|
|
==== Key Formats
|
|
|
|
|
|
|
|
|
|
((("keys and addresses", "Bitcoin addresses", "key formats")))Both
|
|
|
|
|
private and public keys can be represented in a number of different
|
|
|
|
|
formats. These representations all encode the same number, even though
|
|
|
|
|
they look different. These formats are primarily used to make it easy
|
|
|
|
|
for people to read and transcribe keys without introducing errors.
|
|
|
|
|
|
|
|
|
|
[[priv_formats]]
|
|
|
|
|
===== Private key formats
|
|
|
|
|
==== Private key formats
|
|
|
|
|
|
|
|
|
|
((("public and private keys", "private key formats")))The private key
|
|
|
|
|
can be represented in a number of different formats, all of which
|
|
|
|
|