Usage of Elliptic Curve Cryptography in the Bitcoin Protocol

Elliptic Curve Cryptography

Within the Bitcoin ecosystem, the usage of elliptic curve cryptography is very specific. Bitcoin uses a specific Elliptic Curve Cryptographic Signature Algorithm to create the public-private key pair.

Elliptic Curve Cryptography
Elliptic Curve Cryptography

The standard used is  known as secp256k1  and has a very specific form for a generator function otherwise known as G. The properties of numbers known as fields, etc. are given here.

Elliptic curve cryptography is used in Bitcoin to generate the private-key/public-key combination pair for each participant on the network. The ECDSA algorithm is used as follows:

  1. The public key is a product of a mathematical function which is related to the generating function G,  with some mathematical properties, such as lying on a curve defined by the generating function. The curve has its own mathematical properties such as being symmetric (the name elliptic comes from there), etc..
  2. The properties of the private key and elliptic curve crypto-system are such that one can generate any number of public keys (theoretically infinite) from the exact same private key. For each such public key one can generate a corresponding bitcoin wallet address.
  3. Once the public key is created it can be shared after transformation using a hash function (p2pkH) into a public Bitcoin address.
  4. This address is used later in a series of transactions for storing data pertaining to balances on the Blockchain, as an input in the mining process, etc…
  5. This is further used to ensure a) the rightful owner of funds can spend b) only the right amount of funds from c) the wallet.

References:

  1. Marshalls blog on ECSDA