Bitcoin is officially over 9000! Happy internet meme day, everyone!
In celebration of this great accomplishment, I will now explain to you in great detail how Bitcoin and other cryptocurrency schemes are ultimately doomed to fail as replacements for our current financial and legal systems.
I've had enough arguments about this it's time to "centralize" my numerous arguments in one place. This document is not intended to convince blockchain zombies to abandon their position -- in fact, it will mostly make them angrier. This is just to house my frequent complaints in one place so I can point here instead of typing it out every time someone asks me.
Let's first talk about where blockchains are relevant.
(For the purposes of this article, "blockchains", "cryptocurrencies", "ICOs", and "Bitcoin" are all used interchangeably. I will break down this laughable concept soup in later pieces)
The Global Unbanked
There's ~2 billion people in the world with no banks accounts or access to basic financial services. They should be able to use money. I'm all for that, and cryptocurrencies are a good stop-gap solution. Why?
Cryptocurrencies are financial systems programmed entirely in computer code. This is great, because computer code, in the form of libraries, are nicely packaged little systems you can implement extremely easy and cheaply and get instant access to transferring virtual money, which is deemed to have global value.
This is awesome.
This is awesome in the same way that Stripe.js is awesome. Stripe.js is a small library that allows programmers to implement a basic, well-designed, and user-friendly form for manual credit card input, taking "time you need to accept credit cards".
Ultimately, these "unbanked" deserve full financial systems, backed by soverign governments, central monetary control (or hell, a gold-like standard, if you're into that), rule of law, contractual agreements, etc. Until then, Bitcoin is an excellent choice as a stop-gap solution -- a much-needed stop-gap, because building soverign institutions with strong rule-of-law and property rights takes a very long time, and is a delicate, painful, generational process, that will not happen overnight. The ability for unbanked entrepreneurs to take an old computer, run a piece of computer code, and be instantly connected to global currency networks, is quite a cool thing if implemented correctly.
Drugs, money laundering, human trafficking, etc.
If you engage in illicit activities that governments don't approve of, Bitcoin is right for you. You'll be tracked by the US Department of Justice and that data will eventually be used to dismantle and prosecute global criminal networks, but until then, buying drugs on the Silk Road is fine for users and you, personally, will likely never be prosecuted. This is a good use for Bitcoin.
Making money off of idiots
Are you good at manipulating markets? Have you read up on the history of 1980s-style pump-and-dump penny stock schemes and yearn for a future where people forgot about all that and you could replicate those basic scummy methods on a greenfield market? Did you watch "Wolf of Wall Street" and say "hey, that sounds like a lot of fun!" Bitcoin is right for you. Cryptocurrencies are still mostly open season for people applying naive financial techniques to move the market in predictable ways. Also, consider running a "reputable" cryptocurrency exchange, where you simply make money off of transactions and exchange spreads from idiots trying to load/unload cryptocurrencies they heard about from their nephews over Thanksgiving.
Those are pretty much the only reasons I can think about to be excited about blockchains. Here's a compendum of reasons to not be excited about them.
Nation-states are bad, and we need a new currency to subvert them.
Well, I have some good news, and I have some bad news.
The good news is, you're correct that cryptocurrencies are a direct challenge to nation-states, and you're also correct that governments need subverting. The bad news is... well, there's a lot of bad news.
Governments need control over currency to survive. It needs to tax its citizens, it needs to control the monetary supply, it needs to surveil and prevent unwanted or illicit economic activity, it needs to enforce contract law and property protections, it needs to keep its citizenry employed, it needs to pay for social programs and military personell, it needs to... do all the things governments need to do, mostly which involve money, which implies a currency.
How does our government currently tax its citizens? Via a bunch of complicated, bloated, and vampiric bureaucracy, embodied in the tax code, intense policy debates about tax credits and incentives, and constant political-head yammering about raising or lowering taxes; IE, the political headache we're all familiar with, that will all have to be repeated if people magically switch to Bitcoin overnight.
Look, I'll get into all this later. The point is:
Cryptocurrencies, as invisioned and implemented by their creators, absolutely competes with this system.
You might ask: "Well, what about a government-issued cryptocurrency"? We have another word for that. We call it "fiat". If you proof-of-government, why do you need expensive and complicated schemes backed by proof-of-trust? If governments or banks decide that it's more "efficient" to implement a proof-of-work system to reduce inter-financial system infighting or something, fine -- I will accept those arguments. Until then, if a cryptocurrency is competing with a government (which they definitionally are), governments will always win.
Sidenote on subversion
Actually, I'm all for subverting nation states. Washington DC moves way too slow, and we need to disrupt it to prevent environmental and economic catastrophe & revitalize the American spirit.
You know how you do that?
Do the freaking hard work of actual political reform. We still have a functioning democratic system, people! Everyone stepping into the maw of current political debate is dismayed because the establishment control the public through spending billions of dollars through mass media.
Easy solution: Stop listening to mass media! Get your parents to stop listening to mass media! Make fancy websites and blogs explaining issues in terms real people can understand, steal back reputation and authenticity from failing mainstream publications and paid Russian trolls, articulate real policy positions and take part in the political process, reap money and power through the market to upseat the establishment at their own game.
Do anything but disappearing up your own ass in an unworkable techno-libertarian fantasy. Bitcoin and other crypto-assets are entirely under the control of the American government, who allows the toy industry to exist partly because of its own amusement. Silicon Valley, and the Millenial consumers that empower them, are incredibly politically disorganized. The roots are there to start an actual political party in the name of drastic technological reform.
Anything else is government by hidden "technocratic" oligarchs who embrace high-minded mathematical technogarchy but in practice is governed by "rule-by-hard-forks". Imagining a blockchain-based sovereingty administered through oligarchic (internet hivemind osmosis)[https://twitter.com/patio11/status/583701441866371073] is uh, not a promising political system. But you know, if you really believe in that, go ahead. It's not like people have been thinking about and practicing a variety of political systems at great bloodshed and cost for thousands of years or anything.
Smart contracts allow you to --
Do yourself a favor, read up on some of the basics about how legal contracts are formed in the United States. They're complicated. To be a valid contract, you need (at least) 7 parts: Offer, Acceptance, Consideration, Intention, Legality, Capacity, and Consent. I'm not going to define them, take a high school business law course or (read up about them)[http://www.lawhandbook.org.au/07_01_02_elements_of_a_contract/].
Contracts are very complicated, because they evolved over millenia of legal theory, practice, enforcement, and democratic refinement. US contracts are guaranteed by US property law and subject to US jurisdiction and interpretation, which are quite nice features! They prevent well-meaning people from making stupid contractual mistakes that people have made in the past and lost a lot of money on. If you don't believe me, I don't know, read The Merchant of Venice or the history of the Gilded age or apply basic common sense to realize that contracts taking place between entities with asymmetric contract-fu, legal power, or even levels of wealth are damned from the start and should be subject to strict legal authority and interpretation.
You could say something like: "Well, you should only write contracts if you're Smart Like Me and know how to avoid those mistakes". Frankly, you are an idiot. There's a certain type of Silicon Valley-Uber-Alles arrogance where SV types think they're better than everybody. I'm actually sympathetic to this temperament when it comes to things like user experience engineering, reputation of digital services with Millenials, graphic design, and (certain types!) of conscious, principled capitalism. It is absolutley bonkers to apply this temperament to contract law and compare yourself with the centuries of legal precedent, technology, and architecture that ensures our current level of rule of law, property rights, and consumer protections.
I'm not done. Let's say you're a perfectly trained legal scholar and 100% ready to sit down and translate your excellent legal skills into computer code. Well, as they say, "now you have two problems". Smart contracts, uniquely among most types of software, have an amazing property of being tested exactly once, directly into production.
Let's unpack this for a second. If you're a professional software engineer and you want to deploy critical computer code, one strategy you can use is to something called "testing that code" in something called "a development environment". You take the real world (called "production" in computer lingo), make an exact-ish copy of the real world (called "development"), and you run your code dozens of times (at least) against the fake world you created and see how it performs there. If, after several rounds of testing in the development environment, your code performs flawlessly (it rarely does -- you frequently need to make adjustments as your code surfaces bugs).
So, what's the problem with cryptocurrencies? Creating a development environment for smart contract testing is fully impossible, because you have to create a copy of the entire system you're testing against. In the messy, real world of transactions, businesses, services, regulations, and usualy physical goods being transferred, good luck creating a digital copy of that enviornment to test your code fully in! I suppose some cryptonerd is going to tell me about his cool startup that does this automatically, but I don't even want to have that argument. Good luck with that.
Crytpocurrencies are enviornmentally expensive
As of this writing (Nov 2017), (estimates)[https://news.ycombinator.com/item?id=15759468] of Bitcoin's total energy consumption is 15-30 terakilowatt-hours per year, comparable to total energy consumption of some small countries (including Iceland and most countries in Africa). That's a lot of energy to burn, which is a Bad Thing for environmental and economic concerns. What exactly are we getting for all that environmental damage? Oh yeah, "trust".
Cryptocurrencies are subject to routing attacks
Cryptocurrencies depend on current TCP/IP-based networks being "neutral", in several senses. There's a current hullabullo in the US over the FCC's recent plan to overturn Obama-era net neutrality protections. When you route a cryptocurrency transaction, you're assuming that the network not only remains basically neutral (Comcast, Level 3, and other providers will deliver your packets at same speed / fidelity as other packets), but with high-value cryptocurrency transactions there are additional risks of coordinated routing attacks against networks preventing delicately timed financial transactions from manipulation.
Read more here. https://btc-hijack.ethz.ch/
But the price of Bitcoin keeps going up -- that proves it's not a bubble/Ponzi scheme!
Information security is a mess
We think that computer systems are "mostly secure". To an infosec professional, this is somewhere between laughable and depressingly dangerous.
Remember Heartbleed a couple years ago? A bug in OpenSSL, the most popular SSL/TLS library available at the time, allowed hackers to slice through the core encryption protocols of the internet to steal any data they wanted. How long was Heartbleed out in the wild? Nobody knows for sure. The bug was present a full two years before initial disclosures came out in April 2014, and tinfoil hat types speculate that information agencies had been exploiting Heartbleed 6 months before discolsure.
Just to repeat: For 2 years, any hacker with the proper knowledge had plain-text access to "secure, encrypted" communications on the internet.
Well, that was one case, that happened in 2014, and a lot of auditing and improvements to OpenSSL happened and now networks are mostly secure -- right?
Here, check out this cool chart: https://www.cvedetails.com/top-50-vendors.php
Go ahead, click through some of the vendors. Here's a recent list for Apple.
See those "10s" in red ink there? Those are vulnerabilities where attackers have something called "total system access", which doesn't sound very good. I tried to scroll through this list to find the recent ("Krack" vulnerability)[https://www.krackattacks.com/] which affects all WPA2-connected computers, but the list is actually quite long and I got lost in the jungle.
The point is: Computer systems are insecure, despite pretending that they are all the time.
You know what we should do with this information?
I know: Let's make a globally irrevocable financial system based on the idea that networks are secure, "cryptographically proven", and hackers will never steal your data or private keys.
That's a fantastic idea, really. I see no problems with that.
This is just the beginning. I have many more complaints. Most importantly, though: All of the above is answerable with "There are potential solutions for that, and we're working on it." Which is exactly what I heard in 2012, when I first got interested, and basically no progress has been made on the core issues since then. It's time for people to conside the null hypothesis: Blockchains just don't work, and if we want the benefits of software, more trust, better user experience, and drastically needed innovation, we're going to have to do the hard work of tackling these issues in the scope of our current political system, which means stopping with the utopic pie-in-the-sky stuff and starting to examine the real world and how it ticks.