By now we all know that something is cooking. Everyone who is in tech long enough gets the grasp of how big is the thing that blockchain is bringing.
But, do you know what it is? Is it database? Is it money? Is it… What is it actually? Let’s first take a look at what is in the display window now, let’s take a peak at trends that brought blockchain into the light.
If you look at the current ecosystem, everyone is going “crypto”, and blockchain, but mostly crypto — into the big lucrative land of new currencies. We are all blinded by the light of shiny things, and it is literally more important for it to be named crypto-something then to prove a value. Do not get me wrong, whoever participates in all of those ICOs is right — they are big and valuable golden barrels full of gems. But where is value, where is it coming from, and where is it going to be?
If you look at traditional currencies, these are all solid and stable “traditional assets” as we call them. The stability is not traditional in sense it is based on something of unique, usually chemical value (like rare metals, or gems etc), it is traditional in civilization sense — it is based on power and reliability of the institution standing behind it.
Looking at current state of things in cryptocurrency world, people can’t help but wonder or doubt — what conspiracy is behind that much value in these rebellious decentralized and in more then one views completely esoteric modern assets. It all seemed ephemeral, like a blazing star just showing out of nowhere and continuing to nowhere… But it seems that crypto currencies are here to stay, and yes — there is something strong behind them, and it is traditional in a sense.
It is traditional science, one of the oldest and, more importantly, the most reliable one — Mathematics. Along with it there’s also a tech, the best invention after the wheel (and probably electricity) — the information network.
The most important characteristic of each crypto currency resides in a fact that it is not forgeable and that its transactions are immutable — you can not fake the money and you can not fake transaction of that money. This is due each transaction and each new coin in the system (which is transaction again, but from the system to user) is mathematically blended with all the events from the past. If you wanted to fake something after it happened and has been written, you would have to rewrite it all — or at least good chunk of it, depending on when it happened.
Ultimately — even if you rewrote it all, it is not even remotely close to being official — there is network of growing number of participants who all hold the copy of history of the system and keep it under the close eye. This army of independent nodes keeping cryptographically enhanced history data in check is called blockchain.
By the time you wrote new block (event if you want to look at ti through the perspective of transaction ledger) to this mathematically enhanced chain of records, it was all replicated many times over many anonymous copies residing in independent nodes on the network and whatever you manage to do locally has to pass one more check — the unbiased consensus of the network.
So, even if you made an effort of mathematically analyzing the encryption algorithm and somehow accessed, forged and edited one of the copies, it would go through scrutiny of the network, ultimately being flagged as faulty data and recreated from other nodes.
Add a layer of anonymity to it and you’ve got yourself really nice and super valuable package including database, data backup over many nodes, unbiased validation, immutability, ability to have anonymous communication or data handling. That is why all of the cryptocurrencies are so valuable today and you can say that, as people start to value their privacy again, it will be even more valuable as time passes.
Solution to many problems
On contrary what some would say, blockchain is not a solution in a search of a problem… It may have been when it was proposed in 1991 since it was mainly academically approached and general solutions were provided based on hypothetical problems.
Starting from academic research in ’90s and merged with some even older applied maths tools from late ’70s (Merkel tree) and some more advanced tools like GPG, blockchain is growing to be quite purposeful solution that currently strives to cover:
- Need for notary-like unforgeable database of documents.
- Need for higher autonomy of validity confirmation process - going for distributed solution with network consensus as outcome of every validation.
- Providing anonymity to communication (two parties trusting one another but not the network they are on).
- Providing anonymity for storage (instances handling data do not always know what data it is since it can be behind public — private key pair or other data locking method).
- Most recently, executing custom logic (code) based on system parameters, under same validation rules and mechanisms that are keeping database safe. This is paving the way for execution of custom code, which is leading to currently ongoing new distributed computing initiative. Ethereum calls it global computer.
But not a silver bullet
Blockchain as technology is not yet in fully mature stage, meaning that major research around some technical concepts is still ongoing. It is also still in adoption phase, but that is pretty crazy situation… It is all caused by sudden all around popularity of the technology, causing everyone to want to switch to it, or use it as a solution in certain places in their system.
This is quite unique situation in history of technology — something being so “hyped” that company just mentioning that it is considering using it shifts significantly towards the hotspot on the stock market. Keep in mind that this is not necessarily unrealistic— it does have unrealistic taste to it, but use of blockchain carries the value in the zone that has not been explored enough in the past.
To continue down this path, I want you to first understand what blockchain is not. As you will see, it mostly boils down to performance.
Why not buy pancakes with BitCoin
Now, I’m going to try and make this my last use of crypto currencies as example, but as blockchain is fully proven only as currency ledger, it is only right to do so.
Bitcoin uses blockchain technology, and its performance bears same limitations as any current blockchain.
Transactions are slow — they are super safe, immutable, non forgeable, but they are slow. It does not mean that they are slow in general sense, but in comparison to what they strive to replace they are. There is general standard that any payment method has to go against to compete.
For BitCoin transaction to happen you have to wait on a confirmation for some 10–15 minutes, and then some more time until the confirmation reaches network consensus and you are able to use your money. This time is currently at its limit and is often influenced by number of pending transactions, which means it still does not scale well on that front. You can look at what that time is at this moment, and any moment in history by looking here:
For reference Visa and MasterCard card transaction stats boil down to 1900+ transactions per second, with Visa doing 1000 tps. Main advantages of these systems are centralized databases and easy scalable technologies. These transaction metrics are not by any mean a limit, but mere usage stats.
Bitcoins infrastructure is, however, operating at its scale peak for some time now, causing surges in transactions to create long waiting times for transactions waiting to be processed, this also in some cases causes transaction fees to go up…
So, I know that there are some places, for example here, in Amsterdam, that take bitcoin and that you can pay for food, accommodation and regular shopping using bitcoin, but it is rather inconvenient for you and one you are paying to. Bitcoint is good to be used as a strong asset, but not as a day to day payment method… at least not yet. Keep in mind that there are other blockchain implementations that are able to perform faster, but at the time of writing, it is still way below the standard.
It is database, so we can use it for user data and authentication, right?
Theoretically, anything that stores data can be used to store user data, if you have user data stored and accessible, you can make authentication mechanism. Blockchain is database, but what we are used to calling database is actually relational database, mostly one with some query language (like SQL) on top of it, which is making it easy to access, fetch data in some regular and real life related fashion. You can’t SELECT name WHERE this and that on blockchain… The very essence of all blockchain features is difficulty of access and immutability. So, no, at least not as a direct solution.
If you ever want to store your user data on blockchain, each new change to user data requires to be written to a new block, and depending on whether block size matters to you or not, you might have to store just changes, not whole profile. In order to reach optimal performance on user facing systems, you are going to have to denormalize blockchain data to regular database and keep those in sync. Depending on how many blockchain nodes your network has, how many blocks blockchain has and what is your implementation, system like this could take lots of time to sync.
So, it is useful, but it can damage performance of your application. If performance is not your main focus, go get some nice blockchain solution and do some tests for what you want to do.
We will build media sharing service on a blockchain
No you won’t. Blockchain is crazy good with decentralizing your data, but it is also decentralizing data as a whole, with advanced data validation and stuff performed on whole blockchain. It’s main purpose is being constantly growing chain of recorded events (data). New data is recorded as a new transaction (or a set of), which would mean some really big block sizes and encryption times… Every node that would contain whole blockchain in order to be able to access any of the blocks or process new transaction (new uploaded content) would quickly get to being just a big blob of TB and TB of binary data bringing the network to complete halt every time new episode of Rick and Morty is out (I am not even considering GoT). And these nodes would have to perform some really unnecessary operations to send some squirrel video your way. Not optimal at all…
Blockchain is usually used as a database in systems like these and media is residing in more optimal distributed environments that allow splitting and generally better handling of content that exists on the network, like IPFS or even torrent. But, in any case, lets forget GoT episode scenario for now.
I hope this part covers enough of the needed research focuses and relatable unhappy paths for blockchain adoption, because in the next part I want to get to solutions blockchain can provide (and some even now).
More on the future of blockchain technology, distributed ledgers, distributed computing and implementation ideas in the second part of this mini series: