The process to create a Bitcoin address first starts with the generation of a private key. The private key (k) is a number that is usually chosen at random. The calculation that someone has to do in order to generate the Bitcoin public key is to perform an elliptic curve scalar multiplication, which is used in elliptic curve cryptography (ECC):
K = k * G
The private key is multiplied by a predetermined point on the curve, which is referred to as the generator point “G”, in order to generate another point on the curve, which is the corresponding public key “K”.
Finally, public keys ‘K’ run through a double hashing function (SHA256 and RIPEMD-160). In order to present public key hashes in a compact form – i.e. in the form of Bitcoin addresses – these are almost always displayed to users in a BASE58 coding address.