Creating a bitcoin address by flipping a coin can be a lot of fun, and will help you better understand bitcoin private and public keys and addresses. Be sure you understand the risks involved with managing your own bitcoin private and public keys before using this method to store large amounts of bitcoin.
Here is an example of a bitcoin public address:
It is a very large number, expressed in Base58. Anyone on the network can send bitcoin here, provided they know the address, just like anyone who knows your email address will be able to send you an email. This address was generated out of a private key, which is another very large (and very random) number.
Here is an example of a bitcoin private key:
The private key is like a password that allows you (or anyone who knows it) to transfer funds out of the address, similar to the way someone who knows your email password would be able to send email from your email address. The private key and public address have a unique relationship, such that the public address can be derived from the private key by running it through some complex math. The math only works one way, so the public address cannot be used to reveal the private key. For this reason, it is very important to have a very strong private key, that has not been seen by others, and cannot be easily guessed.
The first step in creating a bitcoin address is to come up with very large and random number (the private key). There are many ways to do this, but I’ll show you how to do it using a coin:
You will need:
- At least 1 coin (I like to ‘shake’ 4 coins at a time to speed up the process)
- A place to record the results of your rolls, like a sheet of paper, or a text document
- A computer to run scripts bitaddress.org (one the page loads, you can disconnect the internet and run it offline if you’d like)
Since a coin only has 2 sides, we will be using the binary numbering system to create our random number. We need to come up with a number that is 256 characters long (using only numbers 0 and 1) in order to generate our bitcoin address.
I chose to shake 4 coins, 64 times. I recorded the results from left to right from wherever the coins landed, and I separated them into rows of 16 when recording, to help me keep track of how many number I had done so far. I recorded heads as 1 and tails as 0.
The results of my shakes might:
I knew I had 256 total characters once I had filled 16 rows with 16 characters in each (16×16=256). I then seperated them out into blocks of 64 each, since I had difficulty finding an online calculator that would process all 256 bits at once.
I used a binary to hex converter here: https://www.mathsisfun.com/binary-decimal-hexadecimal-converter.html (it will automatically remove spaces and line breaks for you)
Here are the results from the conversion (done 64 bits at a time):
Removing line breaks, to make one long HEX number:
There are a variety of tools that will turn this number into a bitcoin private key / public address pair, but the tool I used is bitaddress.org. The website is released under an open source license, and the source code (as well as compiled versions) can be downloaded from github and inspected to insure they are not malicious in nature. You can then run it on your local computer, disconnected from the internet, to insure that spying eyes are not monitoring your activity. The mathisfun conversion script can also be downloaded and used offline, however is it not open source.
You can also just use bitaddress.org online, but its a good idea to look in the top left corner and make sure you see the green lock, indicating that your connection is secure, and even then, realize you are trusting a 3rd party with your private key, and there is always a chance they would either be spying on you, or that their website could have been compromised.
Click on the ‘wallet details’ option at the top of the screen, and then enter your random Base6 number in the field next to ‘Enter Private Key’ and click ‘View Details’. (note: there are a variety of other supported key formats besides HEX)
If your HEX number is formated correctly (must have 64 character, 0-9 and A-F), your bitcoin address information will be displayed, which can be printed, or written down by hand, and stored in a safe place. The public address can be shared with others, and bitcoin sent to this address will be able to be transferred out using the associated private key.
WARNING: This type of address should only be used for cold storage, and SHOULD NOT be treated as a checking account, where funds will be deposited and withdrawn over and over again. Multiple deposits can be made to this address, but spending from this address should only happen once. When a transaction is made, THE ENTIRE BALANCE will be moved from this address, to other addresses (usually the recipient and a change address). This is the way the bitcoin network works, and wallet software is used to manage multiple addresses at once, to help users from unknowingly loosing their funds. Its a good idea to play around with small amounts of bitcoin before trusting large amounts to any software, wallet, or blog posts from a random people on the internet, ;).