https://medium.com/@bennerjonas10/bitcoins-cryptography-explained-elliptic-curves-over-finite-fields-b86c98ddc218