When I decided to learn about programming the blockchain, I found it hard to know where to start. It’s easier than ever for experts to stand up, but harder than ever for an expert to stand out from the crowd. The rapid rise of bitcoin attracted lots of scammers. So I researched the field and found this excellent book.
There’s a guy who got worldwide attention by claiming to be the creator of bitcoin, but he didn’t even sign a message with his digital signature to prove it.
Show your friends this Dilbert comic
If they don’t get it, then they wouldn’t be able to tell a bitcoin expert from the pointy haired boss character.
How scary is that?
You may be thinking that bitcoin sounds like a solution looking for a problem, a lot of hype and dismiss it, ignore it.
That was my first reaction and that was the reaction Andreas has as well.
A few months later, he read Satoshi Nakamoto’s white paper.
That was also my next step and I recommend it.
Satoshi Nakamoto white paper
From reading the white paper you realize Bitcoin is not only about money. It’s a network for trust without a central authority. Well, that sounds like git. What’s new is that Bitcoin brings scarcity to the digital world.
To be fair, whenever I hear a use case for Bitcoin, I ask myself, could I do that with git? Or some other less costly, well established technology. Even if you’re going to be working on Ethereum or some other platform, all blockchains compare what they’re doing to Bitcoin, so it’s good to have an understanding of it.
Back to Andreas. He became obsessed with learning all he could about bitcoin. He focused on it so much that, in 4 months he ended up losing 20 pounds and that’s where our paths diverge.
His obsession led to this book.
These are leaf cutter ants on the cover. They have a queen, but she doesn’t rule them. They don’t have a central authority. Each ant follows a few simple rules and out of that emerges complex behaviour and structures. It’s the perfect creature for the cover of a book on programming the open blockchain.
Andreas Antonopoulus clearly explains blockchain programming. This is a dense subject and there’s a lot to it. It took a genius to come up with it, but you don’t have to be a genius to learn it. If you love learning like me, and you’re willing to do the work, you can master this, if you want to.
If you don’t understand how git uses hashes to detect manipulation of code, I’d start by mastering git.
Using git distributed version control, open source projects have proven that we can create something complex and trustworthy in a decentralized way. git is like an append only, tamper evident ledger. As a programmer, that’s useful to know for whatever you’re working on. I’ll include a link to the free Udacity git course in the show notes.
Mastering Bitcoin is an excellent place to start learning blockchain. It’s published by O’Reilly, which is a good sign. O’Reilly has a long history of publishing great technology books. To be fair, pretty much everything I learned about unix and it’s utilities I learned from O’Reilly books. The internet was built by techies reading O’Reilly books. This is the book that blockchain will be built on.
Mastering Bitcoin is well laid out. I had a lot of questions and as they came to mind, I found that they were usually answered in the next page or two.
For example, I was curious how bitcoins are mined every 10 minutes or so when there’s so much changing. The answer is in the chapter on mining and consensus.
There’s a tremendous amount of information in here. Working through this and the code you’ll learn enough to setup your own full bitcoin node for regression testing and get the gist of it.
It includes an introduction to simplified payment verification and bloom filters. You’ll get a good sense of how privacy and security minded a blockchain programmer must be. It’s not paranoia when you are always under attack.
You’ll learn about encrypted private keys, pay to script hash and multi-signature addresses, elliptical curve cryptography, wallets and transactions that meet the ACID test. Andreas covers the bitcoin network, the blockchain, mining, security and consensus rules. Finally, he covers colored coins, state channels and routed payment channels, the Lightning network.
As I’ve studied this subject, I’ve found the key is to resist the temptation to categorize Bitcoin as a currency, a database, a network or a platform. It has elements of all of that, but try for a broad understanding of the entire environment.
It’s easy to look at parts of it and say “That won’t work” but keep an open mind. The details of implementation keep changing, but the gist of it remains the same. Don’t prejudge how it’s going to work out.
You don’t have to wait for anyone’s permission to take part in this revolution. It doesn’t matter how old or young you are, your religion, the color of your skin, your sexual identity or anything else that people might hold against you. You can dive in and learn this. You can even contribute your skills, working on the bitcoin core, if you want to.
My thanks to Naval for suggesting today’s show. If you read this I’d love to hear your thoughts on it.