This is a tremendous introduction to Bitcoin. If you are not technically minded, it's as good as you could possibly hope for.
On the other hand, if you are a bit of a technophile, perhaps you may want to look for the fine detail somewhere else.
First comes all the necessary background. You get a thorough introduction on what money is, or rather what it is that that turns something into money, you get an introduction to the biosphere out of which Bitcoin sprung, including a long list of its predecessors, and that part of the book is rounded up by a brief history of the "genesis" of Bitcoin itself.
Next comes an explanation of the Blockchain. Problem #1 with digital money is "how do I know this money is good money" and problem #2 is "how do I know that you are not presenting this good money twice at the same time to make two purchases." The Blockchain is a technology that puts together four pre-existing technologies in an inventive way, to incentivise independent agents to solve these two problems:
1. Public-key encryption
2. The hash
3. The peer-to-peer network of "nodes"
4. Proof of work
Feel free to skip if you know / to set me right if I've understood it wrong -it's not all there in the book and I've had to fill in the blanks myself by spending time on the Internet
--------------------------------
First, public-key encryption:
This is a fantastic new way to write coded messages. The simplest one, RSA, works out as follows:
1. Take two prime numbers and multiply them with one another 3 x 23 = 69
2. Subtract one from each and multiply them again with one another 2 x 22 = 44
3. Add one to the second number 44 + 1 = 45
4. Find two numbers that don't have any common factors and multiply to this third number 9 x 5 = 45
5. You're done. The public key is (9, 69) and the private key is (5, 69). To encrypt do mod(x^9,69) and it turns out that (mod(mod(x^9,69))^5,69) = x
So, for example, suppose I want number 20 to be my message
20^9= 512000000000 and mod(512000000000,69) = 5. So the coded way to say "20" is "5"
But 5^5 = 3125 and mod (3125,69) = 20, so, lo and behold, "5" is decoded as "20"
The beauty of this code is that if I pick two very large prime numbers a and b, NOBODY has the computing power to factorize a x b. And if they are very big, then (a -1) x (b - 1) can have a very wide choice of co-prime numbers c and d such that c x d = (a - 1) x (b - 1) + 1.
Ergo, if I give away (d, a x b) nobody has the computing power to figure out what c is. So I can put out there (d, a x b) as a code for anybody in the world to send me a message. They can post it on the Internet. And only I can break the code. Even better, even if somebody out there rats me out and says: "here's how to encode messages for Athan to read" that still does not help the CIA read my messages.
More prosaically, you can send me Bitcoin and you can sign it with my public key. Everybody can verify that it is my Bitcoin, because my Bitcoin addresss is (or is derivable from) my public key. But only I can turn around and assign the Bitcoin to somebody else, because only I have the private key that is necessary to do so. Neat, huh?
It all kind of breaks down if somebody one day writes a computer that can calculate hyper-fast and goes through all the numbers in the world, but the fastest computers on earth would currently take longer to break a good-enough code than mankind has existed! (It helps that raising to a power is not cake)
N.B. The above is merely an example; Bitcoin does not use RSA, it uses elliptic curves-based encryption, which (among other advantages) obviates the need to change private key every time you've changed your public key.
Second, the hash:
The hash is a 26 to 34-character string that is the output of a function that generates a fixed-length alphanumeric representation of the data it received. To build it I need input (example 1: the sentence "to be or not to be"; example 2: the complete works of William Shakespeare) and I need a "hashing" algorithm. The big deal here is that "hashing" always brings the same input to the same short string of characters.
My wallet is the place where I keep my Bitcoin. At all points in time my wallet has a public key and a private key. The rest of the planet knows my wallet by the 26 to 34 character hash (you guessed it) that is a (hash of) my public key (it's not the public key itself, chiefly for error-correction purposes, one of the few times Bitcoin looks after you). After every time I deal my wallet changes its public key, so nobody can keep track of what I'm doing except for me.
The first input in the life of a Bitcoin is something along the lines of "WalletAthan was legitimately awarded 1 Bitcoin at 4:59pm on Sunday the 12th of April 2015". That's subsequently "hashed" into gobbledygook that looks like 12yxzhUNfQSPWeDrmwKrWKCxQW2Cz36v3B.
Suppose I want to use the 1 Bitcoin to buy something from my brother George. The real-world message then is "WalletAthan was legitimately awarded 1 Bitcoin at 4:59pm on Sunday the 12th of April 2015. WalletAthan gave 1 Bitcoin to WalletGeorge at 5pm on Sunday the 12th of April 2015." But we already know that the first part of the message is represented by the hash 12yxzhUNfQSPWeDrmwKrWKCxQW2Cz36v3B. So I apply my brother George’s public key to a string that looks something like "12yxzhUNfQSPWeDrmwKrWKCxQW2Cz36v3B WalletAthan gave 1 Bitcoin to WalletGeorge at 5pm on Sunday the 12th of April 2015" and the money is now irrevocably his.
This transaction information gets scrambled into a 64 character hash. Something like 975bT0e06f6395403fd37c2bb8003ef1T94b8a9Ucc9e150c2d99klKEB6EHEf.
The 26 to 34 character hash that was my 1 Bitcoin gets re-hashed together with my brother's public key into a new 26 to 34 character hash. Something like GGe3523tn65ybn9a9441hmaR90AFGWR
So we started with 1 Bitcoin (which is a hash), we did a transaction (which is a longer hash) and we ended up with another 1 Bitcoin (which is a hash) Because the new 1 Bitcoin has my brother George’s public key somewhere in the hash, he alone knows what the private key is that can prove he is the rightful owner of the 1 Bitcoin.
Whenever he feels like transferring the money to somebody else (say a bookstore), he must first unlock the 1 Bitcoin with his private key and then apply the bookstore’s public key to the 1 Bitcoin.
This in turn generates 2 new hashes:
1. a 1 Bitcoin hash that has in it somewhere the bookstore’s public key
2. a transaction hash that has in it both George’s unlocking of his public key and the bookstore’s public key (and this solves the mystery of why the transaction hash is longer)
And so on.
The big idea behind the hash is that IT TRAVELS LIGHT. Regardless of the input, the Bitcoin hash is always <= 34 characters. So the hash is evidence of the entire history of a particular Bitcoin without getting longer and longer.
Every dollar turns 7 times per annum in America and some surely turn a lot more often than that. A hundred years down the line the full history of what happened to every Bitcoin would be impossibly long, the Bitcoin would be pages long, but the hash keeps it all at a max of 34 characters at all times. You most obviously cannot travel from 34 characters back in time to every transaction, but the transactions themselves (64 characters apiece) are so compact that every "full node" (see below) can verify every transaction ever done via Bitcoin.
The little miracle that is the hash means Bitcoin is money good that travels light.
Third, comes the peer-to-peer network:
This technology first became popular with the various pirate schemes to share music without storing it in one central place where it could get confiscated. Instead, if you opened an account with one of the various peer-to-peer music sharing networks your computer became a "node" in a web of connected computers. All music stored on your computer was available to all other computers on the network and vice versa. The algorithms are complex and they need to deal with the fact that computers are not connected to the network the whole time, but this technology makes is possible for Bitcoin wallets to become "nodes" in a network, with the explicit purpose of validating each other's transactions using the public key.
The fourth relevant piece of technology is "Proof of Work," a lottery that involves hashing in pairs all 64-character transaction hashes of the past ten minutes and then hashing pairs of the resulting hashes until there's only one hash left (called the Merkle root) and then repeatedly hashing the Merkle root with a specified length hash (the "nonce") until a small enough hash can be generated. How small that hash is (think of it as rolling six dice until they add up to less than ten, for example) is the "difficulty" and the difficulty of the problem is continuously reset to keep the whole "proof of work" down to roughly ten minutes.
The four technologies were combined by the legendary Satoshi Nakamoto (the book dedicates several pages to the sundry theories of who he might be -his true identity is heavily disputed and quite possibly unknown) into the idea of the Blockchain:
Every ten minutes all nodes on the network ask their neighboring nodes and then the ones beyond (a bit like you'd go searching for a song on Gnutella) for as many time-stamped transactions (64 bit hashes) as they can get their hands on. Each node tries to piece together the full information on which wallet sent what Bitcoin to whom. Once you've checked (and endorsed) enough transactions you build them into a "block," and can then start racing everybody to obtain "proof of work," which involves heavy use of your CPU.
The first node to review a block of enough transactions and finish the requisite "proof of work" gets 25 Bitcoin (this it does by inserting an extra "coinbase" transaction whereby it is awarded 25 Bitcoin), publishes its results to the network for verification (incl. that it only awarded itself 25 Bitcoin) and the financial incentives are very strong to stop wasting time on unfinished blocks and try to build on top of the latest winner. Any transactions that weren't included can hope to be included in the next block, but if they are not endorsed soon they get left out, presumably because they amount to double spending. (In the future, and to avoid inflation, the compensation in Bitcoin for calculating the next block will be halved to 25 and will keep being halved every 4 years).
This block is attached to the previous block and all previous ten-minute blocks to form the "blockchain." All history is encapsulated in the header hash of the most recent block in the blockchain.
----------------------------
The beauty of the system is manifold:
1. All the hashes that correspond to transactions are made public. So if two guys say "we made this transaction" and have kept the keys to prove it, everybody on earth can calculate if they are telling the truth.
2. But you can't travel backwards! To catch a drug dealer, basically, you need to lure him into a sting and then the whole world can see you transferred money to him, but if I and my brother George can keep stumm, to find out what we did you need to keep track of the series of George's (forever changing) public keys I used to make the transactions and link them to my series of (forever changing) public keys that people used to give the Bitcoin to me. Good luck to you, basically.
3. Also, good luck establishing if "Wallet Athan" really is mine. It's not called WalletAthan, it's the hash that is equivalent to my public key. Provided I never cash my Bitcoin into dollars (i.e. provided Bitcoin is money good and all I ever wanted to do is make a donation to the Finnish Sea Scouts, which will never be traceable to me) I can keep my identity totally safe.
4. Even cooler than all of the above, and key to the fact that Bitcoin does not need to be "curated" by anybody is that PEOPLE GET PAID TO TURN THE CRANK. It costs time and money (the electricity to run a large farm of computers) to do all the proof of work. Well, for those willing to do the work, there's Bitcoin to be earned! So the world at large has an incentive to verify if I had the Bitcoin in the first place to give to my brother George.
Between these four inventions we have a system that is a very good means of exchange (fraud is impossible) and is also self-perpetuating thanks to the financial incentive to keep updating the blockchain also known as "mining" for bitcoin. Obviously, 0.5 to the twentieth power is also known as one in a million, which at an original 50 Bitcoins per ten minutes in 2009 corresponds to 2.5 fresh Bitcoins per annum after year 100, so Bitcoin needs to appreciate like mad for it to be worth mining for, but that's a story for later.
And with a prevailing wind it can also be a unit of account and a store of value as well. The authors discuss all of that very extensively.
Also very significantly (and this is me talking, not the authors), Bitcoin is a lot like gold:
(i) unlike all bank-generated money, it's nobody's liability
(ii) it does not perish
(iii) while we know it's finite (0.5^n converges to zero) it's still being profitably mined for.
The authors next go into full Michael Lewis mode: a whirlwind tour of everything Bitcoin. They actually admit in the Acknowledgments that he was their role model, but if you ask me they do a much better job than he's done in all his books, except perhaps for his recent masterpiece, "FlashBoys."
Among other things, the tour includes:
* a very good history of the actual Bitcoin protagonists such as Mt Gox
* interviews with the founders of perhaps twenty startups that are doing work along the lines of Bitcoin around the world
* a glimpse of the dinosaurs that are ripe for slaughter when the world has completed its move to cybercurrency (for example the seven companies that handle the money as it moves from my account to yours when I use my Visa card in your store)
* a vista of the massive opportunity to provide transactional services to the world's unbanked, including field trips to the third world to see the work in action
Much like Michael Lewis does with Lewie Ranieri or Jim Clark or Brad Katsuyama, the authors tell the story from the angle of a "Sherpa." Their views are very much informed by the opinions of the current unofficial CTO of Bitcoin, Gavin Andresen. This makes "Cryptocurrency" the official book for Bitcoin, if there could possibly be such a thing for a distributed cryptocurrency.
This does not stop them from dedicating a full chapter to the various weaknesses of Bitcoin.
They explain very well that until the day people can buy everything they need using Bitcoin and also receive their salary in Bitcoin, users of Bitcoin will find themselves in the unenviable situation of an expat who gets paid in Euros but does his spending in Dollars, i.e. hostages to the exchange rate of Bitcoin to the currency in which they get their salary. Similarly for businesses whose employees and suppliers get paid in dollars, to accept payment in Bitcoin would entail a highly volatile pricelist.
Moreover, they detail how the New York Department of Financial Services takes this issue to its natural conclusion and treats Bitcoin like a commodity, recommending that holders of Bitcoin be taxed on their capital gains when they liquidate their Bitcoin to make a purchase in dollars. This is entirely consistent with how they'd handle a taxpayer who keeps his cash in Euros or Sterling, so it's not unfair, but it is a massive impediment to Bitcoin being a good means of exchange, because in essence you'd have to think twice about using Bitcoin ahead of every transaction: "am I about to realise a capital gain here?"
They also worry a lot about the fact that much as Bitcoin might be distributed rather than centrally-controlled, with all the benefits this brings in terms of minimizing risk to the failure of a single central counterparty, when you and I convert our hard-earned dollars into Bitcoin (and vice versa) we have to go through one of a handful of rather primitive exchanges, like the now defunct Mt Gox. So the vulnerability might not be there once you're in Bitcoin, but it's not inconsiderable at the point where you are moving in and out. Oh, and God help you if you misplace your private key. You lose everything.
They also don't shy away from the problem that Bitcoin is in essence a "deflationary currency" in the sense that a central bank cannot manipulate Bitcoin to loosen monetary policy during a recession like the one that occurred in 2008-09 because the increase in Bitcoin is predetermined by formula. In the eyes of many people (they call themselves the "Austrian School") this is a blessing and the Fed should not have prosperity in its mandate, but the authors take the more mainstream view that incompatibility with traditional monetary policy is a minus.
A list of technical problems with Bitcoin, finally, includes that
1. there simply isn't enough Bitcoin to handle all the world's transactions. Bitcoins get exchanged once every ten minutes and the proof of work has to be hard enough to prevent people from mining tons of Bitcoin. Long story short, Bitcoin is good for 6k transactions per 10 minutes and there's a large multiple of that going on worldwide.
2. the electricity people need to use to "mine" the next Bitcoin is not only very expensive but also an environmental issue / threat.
3. if somebody does collect enough computer power he can use it to overwhelm the network and endorse his own version of Blockchain and spend all his Bitcoins twice or more
4. there's already been a case of a documented bug in the Bitcoin code, which allowed Bitcoin to be stolen
Regardless, the authors are convinced that the technology is valid and at some point will evolve to the point that the benefits from adopting it (cutting out the 3% tax on all transactions that middlemen earn, full auditing of transactions for those who wish to submit to it, the benefits to the 100 million unbanked Americans and billions of unbanked people in the third world etc. etc.) will be far too compelling for us not to find a solution.
In my opinion, there are two massive issues that must be dealt with first and a third one that is less tractable:
1. Bitcoin is high-powered money, also known as "outside money." It is not "inside money" of the kind that arises when a bank opens a bank account for you to receive your loan in. In other words, it's M0, rather than M1, M2, M3 etc. So Bitcoin is a means of exchange and a unit of account but it's not fit for purpose when it comes to lending and credit.
2. I left out "store of value" above, because Bitcoin is neither scarce like gold (we can start millions of strands of Bitcoin, but we are limited to the amount of gold there is on planet earth) nor a way to pay tax. The much-maligned paper dollar is money good because Uncle Sam (like Roman emperors 2,000 years before him did in their coin) rakes in 4.5 trillion of dollars per annum in tax and he does not accept payment in pesos. Sadly, neither does he take Bitcoin.
3. Governments do tons of things covertly. Things we want them to do but don't want to know about. Blockchain means audit trail. What are the chances our governments would want to usher in a regime of 100% accountability?
So my bet is the Blockchain technology survives, but a lot of innovation still needs to take place before it is integrated into mainstream banking and lending in particular. And Bitcoin as we currently know it should remain for some time still the preserve of petty criminals, anarchists and techies.