Bitcoins generate a 256-bit random key which is converted in a Wif (Wallet Interchange Format key), where there is a 256-bit private key and a 512-bit public key. It uses Elliptic Curve Ciphers (ECC) to sign for transactions [Check sig]:
Bitcoins |
Theory
With Bitcoins we create a 256-bit random for the private key, and then convert it to Wallet Interchange Format key (WiF) format, which is a Base-58 form for the random key. This is the format that is stored in the Bitcoin Wallet. For example a sample private key is:
Private key: 5c04990cf2fb95ca8749d4021100ee98b0744e81a5ec00a2177aeaf4b29c00d3
We then convert this into WiF format (Base-58) to give:
5JWp4FM7sfAAE88DW3yvGF5mQyrsEXeWzXZn79bg61Vg8YMfJjA
This can be stored in a Bitcoin wallet. Next we can take then private key and a hash value, and covert it into a useable Bitcoin address, such as:
1A3CohNBuB6kFAMtp3KFEYwv3Eu58F2HyN
The format of the keys is defined below, where we create a 256-bit private key and convert this to a WiF private key. Next we generate a 512-bit public key, and then take a 160-bit RIPEM-160 hash and convert to a Bitcoin address:
Presentation
Elliptic Curve
Bitcoins use Elliptic Curve Ciphers (ECC) with a 256-bit private key (and a 512-bit public key). If you want to know more about ECCs, there is an outline here: