Satoshi Nakamoto begins explaining the Bitcoin system by first discussing the function of transactions, which are the most important aspect of the Bitcoin network.
The first paragraph defines what an “electronic coin” is.
“We define an electronic coin as a chain of digital signatures.”
What that means is that the Bitcoin you own is nothing more than a chain of digital signatures.
“Each owner transfers the coin to the next by digitally signing a hash of the previous transaction and the public key of the next owner and adding these to the end of the coin. A payee can verify the signatures to verify the chain of ownership.”
Yes, it’s complicated, but don’t panic. Let’s break that down.
In order to transfer a bitcoin, a user has to
1) Create a hash of the previous transaction and the public key of the next owner.
2) Add this hash to the end of the coin.
In this illustration, Alice can confirm that this Bitcoin is valid by verifying that Bob’s coin has an authentic signature on it from the previous owner.
Now that Alice has this coin that was assigned to her from Bob, she can send the coin to another user by:
- Producing a hash of the previous transaction with Bob and the public key of the next owner
- Digitally signing the hash using her private key.
The new owner can then transfer his coin to another user using the same process, and so on.
Take some time to really understand the snapshot above. When I first read the Bitcoin whitepaper, I spent an hour staring at this diagram until it made sense in my head.
If you find the diagram just doesn’t make sense even after you’ve mulled it over thoroughly, feel free to email me.
Satoshi then goes on to explain the recurring elephant in the room, which we’ve discussed several times by now: how can we be sure that a user who is transferring his coin did not previously transfer that same coin to another user?
That’s right. It always comes back to the issue of double spend.
One solution to this problem would be to introduce a central authority who is responsible for only approving valid transactions. But, I’m sure you’re already thinking it…this would bring us right back to square one, where we effectively have a bank mediating all transactions again. And the point of Bitcoin is to eliminate that need. So now what?
“We need a way for the payee to know that the previous owners did not sign any earlier transactions.”
All we really care about is that we can keep track of the first time a user transfers his coin to another user.
“For our purposes, the earliest transaction is the one that counts, so we don’t care about later attempts to double-spend.”
If we can easily verify whether there exists a previous transaction with a coin that someone is attempting to spend, we can then invalidate any later attempts to reuse that same coin.
Satoshi notes that the only way we do this is by keeping track of all transactions happening in the network.
“The only way to confirm the absence of a transaction is to be aware of all transactions.”
It’s clear we need a system where all transactions are logged and a majority of the users in the network collectively agree on the order of the transactions. With such a system in place, we can easily spot when a person tries to double spend, and we can then collectively agree to simply ignore that fraudulent transaction.
Phew! Hope you made it through. Take a break and we will see you for the next blogpost lesson 🙂