So now we have a very unique and special key that we can use to prove to everybody else that some of the moneros on the shared list are ours. But think about it for a second, or five seconds. If we give someone the key to your house just to prove that the house is ours, that person can also enter the house. How can we solve this?
Another way of thinking about this problem beyond our money creation dilemma, is to think of it as secret sharing. We want to privately disclose to the network our special key without making it public, not only to anyone eavesdropping, but also to the network itself! It’s our key after all, and no one else’s.
So, if two people want to say a secret to each other, they can come up with a very clever and secure key to encrypt the message. But how can they send each other such key without it being intercepted, or uncovered? You could make a giant nesting doll of encrypted information, but you’ll eventually always reach a problem sharing the first key that decrypts all the other ones.
Believe it or not, it took up to 1976 for a solution to this problem to be public. And it changed almost everything. The solution was to have two set of related keys, one is private (for your eyes only) and one is public (for everybody else).
How does it work? Well, the public key is created used the private key, with a formula that is one-way only. You cannot guess the private key if you know the public key. But the key part here (pun intended) is that you can use your private key to unlock or decrypt anything that was encrypted with the matching public key.
Here’s how we can use this for our money: we can have a key that grants us rights to our money, and create public addresses with it, so that anyone can use those to send money to us. That way, no one can guess our private key just by knowing our public ones.