In the previous two episodes we have discussed how the Bitcoin island keeps labels with a name of the owner attached to each piece of land. Since Bitcoin’s purpose is to be a currency / financial system, it could not work if everyone’s real name was attached to the amount of bitcoin they own. Bitcoin island displays all the labels and changes publicly, so everyone looking at it can see how much land is owned by each owner. In effect, everyone could see how much money you have and what you are doing with it.
To solve this problem Bitcoin island doesn’t keep people’s real names on the labels, but instead uses anonymous code names. One way of doing it would be replacing owners’ names with random nick names, such as instead of “Peter” the label could say “coolPete 190” – the same way people create user names for email accounts or public chat applications.
Using random nick names on the labels would help with anonymity a little bit, but it turns out there is a much better way of having both anonymity and labels that are very useful for enabling changes of ownership (more on that later). This better way is called public key cryptography. In our case public key cryptography is just a fancy name for a system of digital signatures or stamps.
In the real world you often use a hand written signature to prove your identity and to certify you approve some change or a contract. Public key cryptography is a system of such signatures developed for the internet. Among other things it has introduced a significant improvement to signatures: a unique signature is generated for every document you sign, thus making it impossible to copy or forge on another document.
Public key cryptography is based on two pieces of information. The first piece is a public identification number which is announced and distributed for everyone to see. Anyone can use it to verify the identity of the owner of a signature. The second piece is a private number, also called a private key, that is used by computers to calculate signatures. If someone wants to create a digital signature of a document, his computer would use his private key to calculate the signature, which is then published. Anyone can subsequently take the published signature and verify it against the public identification number of the alleged owner of the signature.
A totally simplified example would look like this:
Peter wants to create digital signatures on the internet. In order to do that he uses public key cryptography to generate a pair of corresponding numbers: the public identification number and the private key. Let say they look like this (in real world these numbers are significantly more complex, large prime numbers):
Peter’s public identification number: 1214949492923 (he will publish this number and say “hey everyone, this is my public ID number, you can use it to verify whether I signed a certain document or not”)
Peter’s private key: 39385383583839 (he must keep this number a secret and never share it with anyone)
Let’s say Peter wants to sign a business contract. His computer than takes his private key together with the contract and uses public key cryptography mathematics to calculate a unique signature. Let’s say
Peter’s business contract signature is: 202324325064606
Using public key cryptography anyone can take the signature (202324325064606) and Peter’s public identification number (1214949492923) and plug them into a mathematical function which will determine if it was indeed Peter’s private key that was used to calculate the signature. This is possible because no other number can be used to calculate the same signature. Assuming Peter didn’t share his private key with anyone, this proves it was Peter who signed the document. The genius of this scheme is that Peter’s private key is never revealed to anyone but everyone can still use the mathematics of public key cryptography to verify if his private key was used to calculate the signature.
The Bitcoin island makes use of public key cryptography to manage ownership of the land. Instead of people’s names or nick names, it records anonymous public identification numbers as owners of each piece of land. It uses a special format for these numbers that are also called “bitcoin addresses”. They start with numbers “1” or “3” followed by 25-34 alphanumeric characters. Such public identification number / bitcoin address could then look like this: 3J98t1WpEZ73CNmQviecrnyiWrnqRhWNLy.
Instead of recording Peter’s name directly, the Bitcoin island records land ownership by public identification numbers or “addresses”.
Bitcoin addresses have 2 main useful features:
- they don’t reveal identity of the owner, enabling anonymous ownership of land on the Bitcoin island
- they utilize public key cryptography which makes it possible for the anonymous owners to prove they are indeed the owners and transfer ownership of land to someone else (this process will be discussed in the next episode)
No names are recorded on the labels, instead bitcoin addresses – anonymous public identification numbers are stored on each label. Unless the owner publicly reveals his identity, there is no way to determine it from the records of the Bitcoin island alone.