Chances are, if you have a technically-minded teenager, you’ve heard of Bitcoin. Here in the Geek homestead, it started casually, over dinner, with something like the following:
Hey Dad (for some reason, it ALWAYS starts with that)… can I mine Bitcoin?
And here we are. Maybe you’ve gotten similar questions from your teenager, drunk on the prospect of fabulous riches with no effort. Or perhaps you’ve heard about Bitcoin, but have no idea what it is. Or perhaps you’re a New York Times best-selling author, looking for a little research for your next project. Or maybe you accidentally found this page while searching for a babysitter for your pet hedgehog. Well, this blog is for you. No, I won’t watch your hedgehog.
What is Bitcoin?
Glad you asked. Bitcoin is an open source, Peer-to-Peer (P2P) digital currency. I could end there, but the blank look on your face tells me that didn’t help. Let’s break it down.
Software that is open source simply means that the lines of code that act as the building blocks for the software program are available for other people to read, analyze, tweak, and re-distribute. The key word for open source software is “collaborate” – you are encouraged to work together with others to find new and creative ways of using the software. By comparison, an example of closed source software would be your Windows Operating System. The lines of Windows source code are the closely guarded secret sauce that no one else should ever discover, out of fear that Bill Gates’ gang of rowdy stormtrooper lawyers might drag you into court and sue you into oblivion.
Something that is P2P means that its job or function is distributed across multiple devices. Remember the hullabaloo a few years back about Napster and Limewire and all those P2P file sharing applications? If I had Wham’s Greatest Hits sitting on my computer hard drive, I could share those MP3 files with anyone, anywhere, and they could access them using a P2P program. Likewise, I could access any other P2P user’s Wham music, should they choose to share it. Other computers (peers) could access my computer files, and vise versa. That is file-based P2P sharing, though there are other applications. A few years back, there was a program called the SETI@Home Project. This program was a P2P distributed computing platform that allowed other peers (computers) to utilize your computer’s processing power to help search for extraterrestial life. The big word for P2P is “de-centralized”, meaning the whole is made up of many individual parts, spread all over the place. The copyright lawyers had a challenge in cracking down on P2P file sharing because there was not a single place all the files were shared from. They had to identify the individual peers, then encourage those peers to cease and desist. I worked for an Internet Service Provider back in the hayday of P2P File Sharing, and had to send out lots of nasty legal letters to home users to scare them into stop sharing their stuff.
This is the easy one. Were I to look inside your wallet right now, I might find a few dollar bills. Those are examples of physical currency – you can touch it and feel it and spend it or hoard it. By comparison, digital currency does not have a physical form – it only exists, digitally. You can find a cool looking round Bitcoin chip, with the Bitcoin B on it, and even transfer some digital Bitcoin onto it (via an onboard chip)… but that would be like moving Wham’s Careless Whisper MP3 onto an ipod, and thinking the ipod now was Wham. The coin isn’t a Bitcoin – it’s a cute shell, on which you placed some Bitcoin, because Bitcoins are digital currency, not physical. Make sense?
The concept of Bitcoin came about in 2008 through the release of a technical research article (called a Whitepaper) published by a person or group of persons named Satoshi Nakamoto. Much speculation abounds on who Satoshi Nakamoto is, and while some people believe they cracked the mystery, no one knows for sure. A few months after the whitepaper was released, Nakamoto bought the domain bitcoin.org and released the software source code there. The very first blockchain was created using this sourcecode, with an embedded note from the creator of ‘The Times 3 January 2009 Chancellor on brink of second bailout for banks’. This provided a clue as to the reason why Bitcoin was created, as it references the British government’s bailout of the centralized banking system. This is quite significant, as Bitcoin was created as a reaction to the perceived shortcomings of centralized currency- namely, shoddy government oversight, stock market crashes, the Great Depression, the transfer of bank debt onto the public taxpayer through bailouts. All of this could be remedied by creating a global digital currency that had no central bank, no government oversight, no middleman that could corrupt it. By utilizing strong encryption (hence the term Crypto-currency), creation and transactions could remain safe and secure. The classic utopian society, enabled by cryptocurrency… Lennon would have been so proud…
I See What You Did There
I mentioned a word in the previous paragraph, “blockchain“. Forgive me for getting ahead of myself, and let me explain. The magic of Bitcoin involves the use of blockchains, which are the transactional Bitcoin records that are linked and encrypted for increased security. Think of it like a ledger of all transactions. Each time someone buys something using Bitcoin, that transaction is written in the ledger. Each time a new Bitcoin is born (more on that, later), that transaction is written in the ledger. All Bitcoin transactions are recorded in the blockchain, going back to the very first transaction in January of 2009. Each block of information that is created lists any Bitcoin transactions that have occurred since the creation of the LAST block. In addition, each block records a hash of the previous block, to ensure the block’s integrity (to ensure no one tinkered with it).
Hash? Like that funky meat-and-potato stuff my Mom used to make me eat?
No, not that. A hash is a method for taking information and boiling it down into a simple fixed-length fingerprint. Hashing is used most commonly in password security. What I mean by that is your Windows computer doesn’t know what your password is. Strange, right? How does it know whether or not to let you log in? The first time you set up a password, your computer takes that password and creates a fixed length hash output. That hash is one-directional, meaning you can not determine the password by looking at, or modifying the hash. Your computer stores that one-way hash on your computer, and when you log in, it looks for your user ID, then when you enter your password, it runs that password through the one-way hashing mechanism, then compares the output with the hash value that is stored on your computer. You can play around with creating hashes of words and phrases here, to see what a hash looks like. Note that changing even one single character in your word or phrase drastically changes the output hash. Because the one-way hashing output must always be the same, a match means you can get in. It is statistically improbable that two different passwords could ever result in the same hash. So now you know what a hash is, and why your computer doesn’t actually know your password. If it did, a hacker could easily steal it. As it stands, a hacker could get the hash, but could not easily reverse engineer it and figure out the password. If your password is something simple like a dictionary word, a hacker could run all the dictionary words through a hashing program, then compare your hash with the list of dictionary hashes, looking for a match. There are hacking tools called Rainbow Tables that do precisely that. But staying on target…
Each blockchain contains all the Bitcoin transactions since the last block was created. Each blockchain also contains the hash for the previous block. Hence, each block is chained to the previous block, and ensures that no one tinkered with it because the hash is recorded and can be verified. So what about the very first block? What was it chained to? Answer = nothing. The author of the Bitcoin software created it when the first Bitcoins were created. The second block contained a hash of the first, then listed all the transactions since that first transaction, and so on until today. If you’re ever asked on a game of Jeopardy, the very first blockchain was called the Genesis Block, and was created on 18:15:05 GMT on 3 January 2009. It’s the only blockchain that does not reference the blockchain before it – because no blockchain came before it.
OK so that’s the basic introduction of Bitcoin. I’ve left a ton of questions unanswered – how do I buy a Bitcoin? Where do baby Bitcoins come from? And why is my teenager asking to mine Bitcoins? I thought they were digital and not made of metal? And how are Bitcoin transactions anonymous, if their records are stored in the blockchain? Look for a second installment on Bitcoin, coming soon…