1 min read

Secp256k1 is the name of the elliptic curve used by Bitcoin to implement its public key cryptography. All points on this curve are valid Bitcoin public keys. When a user wishes to generate a public key using their private key, they multiply their private key, a large number, by the Generator Point, a defined point on the secp256k1 curve. Thanks to the Discrete Log Problem, dividing a public key by the Generator Point cannot yield a private key.

All elliptic curves are equations with a specific template: y^2 = x^3 + ax^ + b. For secp256k1 specifically, a = 0 and b = 7, yielding the equation y^2 = x^3 + 7. Because the y component of the equation is squared, secp256k1 is symmetric across the x-axis, and for each value of x, there are two values of y, one of which is odd while the other is even. This allows public keys to be identified simply by the x-coordinate and the parity of the y-coordinate, saving significant data usage on the blockchain.