Public Key
Also: pubkey
cryptography · beginner
A point on the secp256k1 curve, derived from a private key. Used to verify signatures and derive addresses.
The public key is what you can safely share. It's mathematically tied to the private key but cannot be reversed back into it. Bitcoin addresses are derived from a hash of the public key — modern bech32 addresses commit to the hash, and only reveal the full public key when you spend.
The math is elliptic curve cryptography on the secp256k1 curve: pubkey = privkey × G, where G is a fixed generator point and the multiplication is point-multiplication on the curve. Going the other direction — recovering privkey from pubkey and G — is the elliptic curve discrete log problem, which has no known efficient solution on classical computers.
Public keys come in two encodings on Bitcoin: 33-byte compressed (legacy/SegWit, with a prefix byte indicating curve-point parity) and 32-byte x-only (Taproot). Both encode the same kind of point; Taproot dropped the parity byte because Schnorr signatures handle the ambiguity.