This is the second part of my post about the opportunities and caveats of blockchains in the business world. I'll focus on performance, revocability and append-only behavior and conclude both blog posts. You can find the first post about some generic data-aspects here.
Please be aware that both posts talk about public blockchains, i.e. permission-less blockchains. Private/Consortium/Permissioned blockchains are not yet covered by these posts and might follow soon. The different bullet points show a first indication of how helpful ( + ) or painful ( - ) a blockchain would be in the business.
Performance: Take a seat, your commit will be ready in ten minutes!
A blockchain transaction is only starting to gain validity once forged into a block. Due to possible occurrences of side-chains it is usually considered safe to wait for a few more blocks to be forged after the block your transaction is in. For Bitcoin, you should wait for about 4-6 blocks - which is about 1 hour - until you can be sure that the transaction is valid and final. This is fine for a financial transaction in an online world, but still not good enough to pay your beer at a bar – I’m German so the beer won’t last the whole hour anyway :wink: Anyhow, for a multitude of other transactions, say a reservation of an item from stock, there should usually be no latency at all and thus blockchain might be the wrong technology.
Let us differentiate the different time aspects in:
Time to transaction: The time it takes for your transaction to arrive in the system.
For nearly any transactional system nowadays, this is usually quite instant. For decentralized networks, you could argue that though it would be quite instant that one node gets your transaction, this is not a guarantee that your transaction will be ever fulfilled, e.g. a node could simply accept transactions but never forward it.
Time to transaction receipt: The time it takes to have a solid proof that you entered your transaction.
For example, if you transfer money from your bank you could instantly print out a receipt which is usually good enough for a proof that you transferred the money. For blockchain, this would be the first time your transaction appears in a block, which might take up to 20 minutes, depending on the frequency of new blocks and the number of transactions waiting for a block.
Time to fulfillment: The time it takes to have a successful fulfillment of a (business) transaction.
Even if you have the receipt, the money is not yet on the bank account of the recipient. This usually takes hours or days. Here, the blockchain has advantages because once a transaction is in a block, the transaction is usually fulfilled. However, it is usually considered safe to wait up to six blocks to treat a transaction as successful, which could take up to 60 minutes. Traditional integrated transaction systems can usually be much faster (milliseconds to seconds) – but there are often batch-jobs going on (waiting for thousands for transactions to move it over to the next system) or sometimes even manual steps in between which leads to days.
Time to fulfillment receipt: The time it would take to get a receipt back, that the recipient really got the money.
This is usually not done in a bank transfer scenario nowadays, but as a sender you usually want some proof that the money was received. Here blockchain really has an advantage.
All these factors show a simplified business view on performance of transactions. A blockchain reduces the number of parties involved in a transaction, the more parties are involved in a process, the more time you can save with a blockchain. However, it might make sense to think about the implemented scenario first and if it could be handled by better integrating the systems or lifting restrictions.
If only one or two parties are involved, integrated systems are usually much faster. When we think a little bit more technical, the overhead of a distributed network (synchronize nodes, establish connections, transfer data, get consensus) can be quite a performance bottleneck.
Revocability: And where is the support hotline?
A big factor in the business world is usually revocability. If errors or abuse occur, you often need to revoke or abort a transaction. This can be done by calling a support hotline, like disabling fraudulent credit cards. But this is no longer possible the same way with blockchains. Even further, it should be not possible because you are anonymous in a blockchain - once you would need support you would most probably need to open up your transaction history because otherwise the best support could not help you.
My credit card information was somehow hijacked this year and though I still had my card, somebody booked shoes, trips and electronics from all over the world on it. Well, thanks to my bank the fraudulent transactions didn’t even appear on my balance – they called me upfront that there is something wrong.
Think about land titles – is it really a good idea to have your land title in a blockchain and with any error (or hacking attempt) your land is no longer yours? Or your car, your flat, your identity, your pension? There are laws and judges in the real world coping with such cases. But there is no such instance for any blockchain - nor would there ever be.
Another interesting case would be the other way around: What happens if an official court tells you to change something which you can't change anymore because it is in the blockchain? Could somebody sue you because you are technically not able to give back assets?
Append-only: Digital non-erasable graffiti
Due to the nature of hashing, changing a bit in any block of a blockchain would corrupt the complete chain on a node. Other nodes would then discard any changes coming from such a corrupt node or blockchain. Therefore, the chain is tamper proof (let us ignore the case that a network consists of more than 50% malicious nodes). This means thatdata stored in a blockchain cannot be modified or deleted, which means a blockchain is an “append-only database”. This has some interesting implications:
The size of the blockchain can only increase.
Though there are ideas how to archive blocks, they still need to be accessible any time to verify the integrity of the whole chain.
Mistakes or technical errors cannot be rolled-back – or once a transaction is in the network, it cannot be undone by anybody.
This might be bad for errors, it might be good for stuff which should be non-erasable e.g. reports of journalist, leaks (depending on which side you are on) or ledgers which may not be changed at all, etc...
A moderation of content after a block is forged is not possible.
There would only be the possibility to check content upfront, if illegal* (or copyrighted) content is uploaded to a blockchain. But if there would be a content check upfront, who is in charge of this check? Or under which country’s law would an illegal* check be performed?
This leads us to a theory, that free-text or free-data scenarios - like bulletin boards, data stores, articles, or chats - are either not allowed by the blockchain network or lead to an ethical problem about hosting illegal* content. And illegal content might eventually lead to a ban of using, accessing or collaborating in a specific blockchain in various countries.
We acknowledge that technically it is still possible to host any content even without free-text fields, but then it is more an abuse of the actual blockchain. We also acknowledge that paper is also not banned because of somebody could write illegal content on it. Nevertheless, it could mean a high impact if businesses are related to highly illegal content only because they are using the same blockchain as criminals for example.
* For sake of simplicity, please consider “illegal” as anything broadly considered as criminal acts, frauds against civil rights, racism, violence, extremist materials, etc…
As Gideon Greenspan clearly stated in his blog post: “Blockchains are overhyped.”. I'm with him, and I hope I was able to give you some detailed explanations why so. My thoughts are certainly not final or reflect all the unknowns we currently have around blockchain. But those are the topics that have been most prominently on my mind over the last couple of weeks.
What does that mean in a business world? For me, it seems that with blockchain technologies, you won't simplify the current systems which check if data is plausible or if people could be trusted. Nor would you simplify the trust relations between the business parties - there is currently always a way I could think of to deceive the system to my own goodwill. Nor would you help yourself by making all data transparent or insecure. I could also think of current laws prohibiting the use of blockchains for specific data because of its transparent storage. Additionally, transactions needs to be rolled back - to a certain degree. But how to roll it back if the network is decentral and doesn't listen to central authorities? There might be chances for performance improvements of certain scenarios, but usually the lack of performance is because either the systems are badly integrated with each other or it should be that way (think about batch commits).
For permissionless blockchains, I really see the use in a anonymous verification of hashed and timestamped data or the substitution of fiat currencies. For permissioned blockchains, e.g. within a consortium, this might be a whole other topic - I might be spoiling but I currently doubt that there is a use-case at all for them.
What about your thoughts? Would you rate the blockchain technology as a clear business disruptor, a very good technology for specific scenarios or a hyped technology not yet (or never) ready for business? I personally do really like its use as a substitution of fiat currencies or as a file verification service and really see potential in there – but I’m not buying the majority of potential scenarios which are discussed everywhere.