For quite some time I’ve wanted to write this piece, but I have always stopped myself before I actually started typing. Main reason is that I really don’t like to voice my opinions in such a public fashion as this, but recently the amount of, I’ll be frank here, human stupidity has reached a level where I simply can not keep this to myself anymore.
As you can tell from the title, I’m talking about blockchain. Yes, you’ve heard about it, unless you’ve been living under a rock for last few years — and even in that case I think you’ve heard about it. But the question is do you really know what it is? If you are a regular Joe, hell even if you’re a software engineer, the chances are that you have zero or close to zero knowledge about what it actually is.
Yes, you’ve heard about Bitcoin, I mean, my grandmother has, yes you know it’s a digital currency, yes you’ve heard about Ethereum — my grandmother has not though, and yes you know it’s a Bitcoin rival currency/platform that is all the rage now days because of the ICOs, but this is not what this post is about.
Because of the Bitcoin and Ethereum popularity you can hear people talking about the blockchain basically around every corner. Want to go out with your friends for a beer — you’ll listen about the blockchain for at least 5 minutes. Do you want to watch some TV — like a caveman I know, you’ll stumble upon the word blockchain, no worries. You will hear them saying how easy it is to make money on these currencies and ICOs and how blockchain technology going to take over the world, replacing the banks, intermediaries and wait for it - even the internet itself. It’s the new internet they say.
Now I’ll be honest with you, I don’t plan to explain everything in detail here to you. This will be just a brief introduction post in a series of posts that I have planned. I will not get technical at all here, nor in the future posts, because I want this to be light and easy to understand.
You probably already understand a concept of a database, even if you are not a developer. So a database is used to store some information that you can then retrieve at a later time. It’s nothing special right? A big wardrobe for your computer to organize your data.
Now the blockchain is just a database. I’ll get to the origin of the name in a minute, but all you need to know right now is that it’s just a database. A different kind of database for sure, but still just a database — it stores some data. Now in case of Bitcoin the data we need to store is the transaction that you make. So whenever you send money to your friends a transaction is made. A basic transaction consists of the following data:
Of course in a real world the transaction would also have some additional information such as date and time etc. Anyway you have made a transaction, now it needs to be checked first if it’s valid — if you have enough balance, processed and stored in the database. So the computer will check all those things and store the data — the transaction.
Now if you did your transaction through the bank, the banks computer would do all those things. It would make sure you have the money, it would check if it’s really you who is sending the money and then it would update your and your friends balance and that would be it. Of course you needn’t worry about those things, you just want to send the money.
But this was all done through a banks computer, now if you do it through Bitcoin it’s a bit different. In Bitcoin you don’t trust your bank, you are your own bank, and so is everyone else. Everybody and anybody can store the transactions and anybody can check if you should make a transaction. But how does that work? Wouldn’t people just make things up?
In this post we will not try to understand how a transaction is processed, I just want you to understand what a blockchain is — a database. So once a transaction has been processed it needs to be stored. Multiple transactions are grouped together in a block and a signature of the entire block is made. The block also contains the link to the previous block containing the transactions from that time slot, and that one also contains a link to the previous block etc. So the blocks are in a way chained together — chain of blocks — blockchain.
It doesn’t sound so magical, does it? So next time your friends will say something stupid like, “Blockchain is the next internet” or “Eveything is going to be on blockchain in the future”, you are free to roll your eyes, because now you know it’s just a database.
In essence the blockchain is a new way to store data. Not very efficient to be honest, but that’s not why there is so much hype around it now. The thing is, that it’s copied to hundreds or thousands of computers all over the world. By itself this is also nothing special, big companies also have thousands of replicas of their data all over the world, just look at Google or Facebook right? While you will probably never have full access to Google or Facebook database, in Bitcoin and other blockchain technologies you do. You can copy the entire database to your computer from other peoples computers — so in a way no one owns the data.
But if I copy it from other people how can I trust those people to send me the real data and not some fake data? If you scroll back a little you will notice this sentence:
Multiple transactions are grouped together in a block and a signature of the entire block is made.
The key word here is the signature. It’s really hard to make the signature of the block. First it takes time and did I mention the time? So if someone wanted to change something that was stored in the past, they would have to sign the block the data is stored in once again. And since the blocks are chained together they would have to recalculate the signature of every block that came after the one they have tried to manipulate. Since that takes time, they will probably never catch up with the present block of data and you will simply take the longest chain you receive from the network and assume it’s the truth.
You must think I’m delusional if you only read the titles but yes, blockchain is still just a database, a distributed one with tamper protection. You can have a copy of it and so can I. But neither you nor I can change the data that was saved to it. Well we can, but other people will know that we did and therefore not trust our data. It is basically a democracy, if enough people say the same thing, then this is what the network accepts and believes.
Now the blockchain is not restricted to store only financial transactions, it’s designed in a way that it can store any type of data, but like with everything else, if you’re given a hammer, remember not everything is a nail. The developer inside me is excited by the possibilities this technology provides, but the truth is that at this point in time there are very few actual useful use cases for it. Most of the companies you will find boasting with blockchain technology are using it just to play around with something new and they probably don’t really know why they need it. Or you know, to ride the hype train and raise as much money as possible from investors.
If you’re given a hammer, remember not everything is a nail.
So if I want you to take anything from this post is that blockchain is just a distributed database and not some magical technology that will save the earth. Do we really need it? No-one knows, because at this point it’s still to early to tell.
In the next posts I will try to explain some of the philosophy behind the blockchain, trustless applications and platforms built on blockchain and why I think most of them are not feasible.