Creating a bitcoin address using a pair of dice 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 dice:
You will need:
- At least 1, six sided die (I like to roll 3 dice at a time)
- 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 the dice have 6 sides, we will be using the Base6 numbering system to create our random number. We need to come up with a number that is 99 characters long (using only numbers 0 – 5) in order to generate our bitcoin address.
I chose to roll 3 dice, 33 times. I recorded the results from left to right from wherever the dice landed, and I separated them into rows of 9 when recording, to help me keep track of how many number I had done so far. Whenever I rolled a 6, I recorded it as a 0, since the dice have no number for 0, and since Base6 only accepts character 0-5 (not 6).
The results of my rolls:
Once I had filled 11 rows with 9 characters in each, I had 99 total characters. I then removed the line breaks between them to create one, long Base6 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.
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 Base6)
If your number is formated correctly (only contains numbers 0 through 5 and is exactly 99 characters in length, with no spaces), 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, ;).