Computing a Bitcoin Address, Part 1: Private to Public Key

:: public key, private key, elliptic curve, OpenSSL, C, Racket, FFI

I’ve been wondering how Bitcoin addresses are generated. This post and the ones following will explore, step by step, how to transform a Bitcoin private key to a public address.

I know that Bitcoin public and private keys are Elliptic Curve DSA (ECDSA) key pairs, and I’ve seen the Q = dG explanation on a few sites, but they leave out some details. I want to experiment for myself, so this post describes how to derive a public key from a private key with runnable code.

Verifying Andreas’s “Fundraising for Dorian” Message

:: Andreas Antonopoulos, signatures, Dorian Nakamoto, PGP

Today, Andreas M. Antonopoulos, Chief Security Officer of Blockchain.info, started a fundraiser for Dorian Nakamoto, the guy who’s being harassed by the media due to Newsweek’s recent article about Satoshi Nakamoto. To prove that the message is not fake, Andreas signed the message with his public key. Since I’ve recently been playing with digital signatures, this seemed like a great chance to explore some more. Let’s try to to verify the message.