[Back] 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:

## 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: