In issue #1, we went into the philosophy behind currencies.
In issue #2, we talked about the many weaknesses of cash and how Bitcoin could do better.
In the next few issues, we’re going to dive into the specifics of how Bitcoin works. I'll explain its mechanics by inventing a “first draft” version and pointing out its deficiencies. We will solve each problem that pops up step-by-step.
This issue will be fairly non-technical. I’ll discuss
A transaction list as a naive version of Bitcoin
Scaling it for use by all of your friends
Scaling it for use by friends-of-friends
The next few will be more technical. I’ll be discussing digital signatures and public/private keys in issue 4. Proof-Of-Work and other concepts will come after that.
I hope you enjoy it; know that I welcome any comments or questions!
The transaction list: a naive version of Bitcoin
Imagine Alice and Bob want to invent their own currency for use between the two of them. They don’t want to use anything physical because it’s a pain to carry around, measure, etc. They don’t want to depend on a central intermediary (like a bank), either.
They decide to make one out of thin air called imacoin: short for imaginary coin.
They decide that they’ll both start off with ten imacoins each.
Alice tests it out by asking Bob to mow her lawn for her, offering two imacoins in exchange.
Bob accepts. He mows the lawn and they both agree that Bob now has twelve imacoins and Alice has eight.
Alice realizes that remembering who gave who what will be a pain. She decides to keep a list of transactions. We’ll call this list a ledger:
Bob and Alice are pretty good friends. Thus, Bob isn’t concerned about Alice fudging the accounting.
Scaling it for use by all of your friends
One day, Bob’s friend Sam finds out about Bob and Alice’s system. Sam thinks it’s fun and cool and he wants in.
Alice raises an eyebrow. She likes that it's only her and Bob, but she also doesn’t want to rock the boat. Eventually, she concedes and grants Sam ten imacoins.
(Side note: new Bitcoins are created via “mining” - which is essentially winning the right to add a “gets” line.)
Later that day, Bob and Sam are hanging out. Bob orders pizza from his favorite place. So, he offers Sam two imacoins to go pick it up.
Sam accepts and departs. Bob doesn’t have the ledger, so he calls Alice and instructs her to write down his transaction with Sam.
Alice realizes that because she has the ledger, she is the point of contact for updating it. She unwittingly became the central intermediary. She wants no such responsibility. She also believes no one person should have such a responsibility. So she decides to change the system a little bit.
She tells Bob and Sam that everyone should have their own copy. When Bob gives Sam money, Bob can add the transaction to his copy and email it out to everyone else.
That way,
Everyone's copy is always up-to-date, and
Nobody has to wait on Alice to make transactions.
To recap the migration to the new process:
Alice sends Bob a picture of the ledger
Bob creates a document with all the existing transactions
Bob adds his transaction with Sam to the document and emails it to everyone
Anyone else wanting to give money should do the same (i.e. add and send)
Scaling it for use by friends-of-friends
One day, Sam tells Frank and Kristy, two of his friends, about the ledger. They want in, so he gives them two imacoins each and sends his update to Bob, Alice, Frank, and Kristy.
Alice sees the email and immediately calls Bob to tell him this is getting out of hand. She asks Bob how they can know Frank isn’t going to write “Alice gave Frank five imacoins” and send it to everyone?
This is a valid concern. If someone writes “Alice gave Frank five imacoins,” we would want to know if it wasn't Alice.
A simple solution might be to make the following rule: transaction updates are only valid if the email matches the sender. In other words, “Alice gave Frank five imacoins” is only valid if the update came from Alice’s email address.
Unfortunately, this couples the ledger with the email. It means trouble if you want to change emails or your centralized email provider denies you access.
Fortunately, we can borrow a solution from cryptography called a digital signature. I’ll elaborate in the next issue, but long-story-short, it allows you to “sign” your transaction. This means anyone can verify you signed it, but only you can produce it.
Stay tuned for Bitcoin: Nuts & Bolts Part Two!
Thank you to the Foster members who reviewed this post: David Burt, Tom White, Philip Hendricks, and Dani Trusca.
Create your profile
Only paid subscribers can comment on this post
Check your email
For your security, we need to re-authenticate you.
Click the link we sent to , or click here to sign in.