How do I Sign up for Bitcoin?
Short Answer: A Bitcoin address is a unique number that “holds” bitcoin currency. You use the address to receive and send bitcoins.
Medium Sized Answer: A Bitcoin address is the public key half of the public-private key pair that enables the validation of ownership of that address. WHOAH there, what in tarnation does that mean??
Bitcoin addresses are created as part of a key generation process that creates a pair of keys. They are a matched set, where one is public and the other is private. When you “sign” a bitcoin address you are running the public and private keys through an algorithm that checks to see that those keys belong together. Usually signing is talked about in the context of a message. Someone sends you a signed message and you can verify that the message came from the genuine person. You can verify the message because it was signed with their private key and you match it to their public key. When sending bitcoins the signed message is a portion of the bitcoin transaction and you do not explicitly see the message, it is just part of the transaction. This lets you validate the ownership of the address. The transaction (the transfer of value) was signed with the owner’s private key and you check that it’s valid using their public key.
A little diversion – public key cryptography is a really cool technology developed in the mid 1970’s. The amazing thing about public-private key pairs is that everyone can know the public key and the owner of the private key can prove that he is the owner of the message sent with the associated public key. For more information on PKI (Public Key Infrastructure) upon which much of bitcoin’s security is based see Mike Hearn’s (a core bitcoin developer) great description of many issues in “Why you think the PKI sucks…but can’t do any better“.
A Longer Story: Let look at the sequence of actions to create and then use the key pairs. First we need to generate the key pair, which will result in two keys the public and private keys. The Bitcoin address is actually a form of the public key (it’s a hash of the public key). From the Bitcoin protocol specification at: https://en.bitcoin.it/wiki/Protocol_specification#Signatures