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.
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:
- 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..
- 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.
- Once the public key is created it can be shared after transformation using a hash function (p2pkH) into a public Bitcoin address.
- 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…
- 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.