This post has 2620 words. Reading it will take approximately 13 minutes.
Bitcoin has brought a wave of excitement. It’s is mostly because it has brought such concepts as “honest
Bitcoin essentially solves two problems: only the owner of a bitcoin can spend it and that owner can only spend it once. The reason the second is an issue is that everything I, as a bitcoin owner, can do to spend a bitcoin once, I can repeat, so nothing prevents me from spending one bitcoin on all the drugs today only to spend the same bitcoin on guns and grenades tomorrow. This is known as the double-spend problem.
To solve that, bitcoin has a mechanism to check whether a bitcoin has been spent already. Such a mechanism needs to allow checking if a bitcoin has already been spent, and that mechanism is the blockchain. The blockchain lists all transactions ever made and allows checking if I have already spent my bitcoin by running thru the entire blockchain and checking if I have. If that sounds insane and inefficient to you, you’re right, but that’s bitcoin.
Now, everybody needs to agree 100% on which transactions have been put on the blockchain and in which order. If not everybody agrees on which transactions have been logged, I could spend my one bitcoin on drugs at Ketamine2go and then find somebody who has not seen the transaction and spend my bitcoin on weapons at Weapons’r’us. Since Weapons’r’us doesn’t see my purchase of drugs, they see nothing wrong and happily hands me my weapons, so I can go on a very bitcoin drug-fueled rampage. If everybody agrees on the transactions, but not on the ordering, I could spend my one bitcoin on drugs today at Ketamine2go, and tomorrow send my one bitcoin to a friend but include a timestamp that says I sent it yesterday. Since no transaction was logged when buying drugs, I get my drugs from Ketamine2go, and since the transaction where I sent my bitcoin to my friend has a timestamp saying it happens before that, there is no transaction saying I already spent my bitcoin coming before the timestamp, and my friend can now spend the bitcoin (e.g., on weapons we can then use to go on a drug-fueled rampage together).
The details are not too important, but these problems are real problems and the solution is a concept known as consensus. It is an old problem in computer science that describes that a number of parties (not drug-fueled parties but different persons) have to agree on something. The other part of bitcoin is solved using standard public-key encryption. It allows me to sign a message (basically “I want to spend one bitcoin on drugs at Ketamine2go”) so that others can verify it came from me.
The consensus problem has been shown to be unsolvable in general. Often, this is referred to as the Byzantine Generals’ Problem. In this problem, a number of generals have to either agree to attack an enemy or retreat. If they don’t attack with full force, any force attacking will die, so it is imperative that they agree. This mirrors the situation where all butters need to agree on which transactions are on the blockchain. If anybody has incorrect information (attack when the others retreat), they may not have seen an important transaction and get scammed out of their drugs or weapons. In the Byzantine Generals’ Problem, generals can send messengers between each other but not communicate directly. This is similar to how butters can send messages over the internet but cannot leave their mothers’ basements to interact in person (also they smell so nobody would want them to). Finally, any messenger can be intercepted by the enemy and either be killed or replaced by a spy who will lie to the other generals. This is similar to how messages may get lost on the internet or bad actors may simply lie and say they haven’t spent a bitcoin when they have.
The Byzantine Generals’ Problem cannot be solved in general. We have to drop some of the assumptions. Bitcoin does this by wasting energy. It does not do complex computations like newspapers and
So the bitcoin solution to the Byzantine Generals’ Problem does not 100% guarantee that everybody agrees, it just gives a high probability that they do. It is perfectly vulnerable to what is known as 51% attacks, where if somebody owns more than 50% of the capacity in the network, i.e., they are faster at solving useless puzzles than everybody else combined, they can replace old blocks. This works by simply spending one bitcoin on drugs at Ketamine2go and then starting solving useless puzzles for blocks that say you never spent your bitcoin without telling anybody else. After a while, the rest of the network will have created, say, 6 blocks, but you have created 7 (remember, you can solve useless puzzles faster than they can). You then send your 7 blocks to the network, and everybody will agree you never spent your bitcoin, and can now go buying some weapons for the bitcoin you have now never spent. Ketamine2go will not have the bitcoin because the transaction that said they got it from you will have been erased from history and they will be out the drugs, because you snorted them like a pig while solving stupid puzzles, getting ready for the upcoming rampage with the weapons you can now afford.
The 51% attacks seems like a theoretical thing that would never happen in reality, but is an actual thing plaguing both bitcoin and the various copies called shitcoins. A large percentage of the bitcoin mining capacity is concentrated around very few large producers of bitcoin mining hardware, and for one of the variants of Bitcoin Cash (a shitcoin) scammers actually cashed in a number of bitcoins at an exchange and got out money (doubtlessly to go and buy drugs), only to revert the transaction saying they sent it to the exchange in the first place. You can do things to mitigate the attack, but never 100% solve it: the Byzantine Generals’ Problem is provably unsolvable.
Now we get to why you don’t need a blockchain. The whole mining shenanigan is only in place to reach consensus. It solves absolutely no other practical problem. On the other hand, it is vulnerable to 51% attacks and is an environmental/economical disaster. If you have any other way to solve consistency, you can make a cryptocurrency with the exact same properties except for what is needed for consistency. This includes everything
A very easy way to achieve consensus is to introduce any form of trust. The simplest is to have a central authority that decides what is and what isn’t on the blockchain. This is similar to what Facebook (and, BTW, a large part of shitcoins) do. This has the same security implications as if a single party owned most or all of the mining capacity (so similar to pretty much all the bitcoins and copies). The single party can indeed alter transactions if they want. As a bonus, the transaction ledger can be public or private as desired or even in-between, so it is possible to expose your drug purchases while still keeping it secret that you purchase Barbie dolls in bulk.
In fact, it is possible to take any consensus protocol from this list and build a cryptocurrency with the trade-offs each protocol has. It does not have to be a single central authority, but it is possible for each participant to have a single trusted party that sign their transactions as long as these trusted parties trust one another (exactly like how the banking and
In fact, many systems rely on consensus already. Any distributed database does this, be it a good old-fashioned HA SQL database cluster, a peer-to-peer protocol for sharing
TV shows Linux ISOs, algorithms for controlling access to physical networks, or something as
Sane people also have it wrong when they say that bitcoin is just old technology and digital signatures and public-key encryption has existed for ages. It is true that it has, but public-key encryption is only part of the puzzle; the big thing is in the consensus. Sane people claiming that the Merkle trees used to secure the blockchain is old hat as well are also only truth-adjacent. Sure, Merkle trees are not new (and so trivial that I believe everybody has come up with the idea independently, at least I know I have), but they too are just an insignificant part of the puzzle. Sure, hashcash “solved” consensus in a trustless environment before bitcoin, but nobody cared. Bitcoin genuinely put the pieces together. Unfortunately, the prototype showed that the hashcash means of consensus is not viable in practise: the energy usage is not sustainable and as miners tend towards monopolisation, so instead of trusting an authority that has in some way proved trustworthy, butters now put all their trust in a cabal of Chinese miners with dubiously legal intentions.
Enterprise does not need blockchain. Sure, there is a use for append-only storage. This is essential in auditing and can easily be achieved using by simply signing transactions and giving them to a trusted third-party, or storing an audit-log that is only editable by a trusted third party. SAP does this and has done this for almost 50 years now. You can easily have a public ledger without it being a blockchain; just using a regular public-key signature and publish a certificate (like how literally every encrypted website works today). Or a public r/o Git repository, like millions of projects for decades. If you have a group of parties that trust one another (or which all trust a central party), they can build a simple web of trust using public-key encryption for communication instead of using a blockchain. They can even make a ledger public and sign everything using public keys. This will work better than any idea of a healthcare blockchain or tomato blockchain or dental blockchain. There is also no need to have ICOs to get tokens on a blockchain to purchase a service; since you already want to purchase a service, surely you must trust the service provider? Even if you wat a public proof, just rely on digital cheques: the service provider gives you a signed note stating “I provide service X to customer Y” and you can cash it in, just like a cheque, by signing the message and handing the cheque back to the service provider. You can prove the service provider owes you a service using the original certificate, and the service provider can prove they already did
So, if anybody tells you, you need blockchain technology, it is most likely that they are trying to sell you something as boring as a consensus protocol using buzzwords. Nobody in a first-world country has a need for a completely trustless network except for trading illegal contraband, and can
Time person of the year 2006, Nobel Peace Prize winner 2012.