Blog posts at Coinbet.com frequently reference blockchain. We often talk of blockchain as the foundation for Bitcoin and other cryptocurrencies. Sometimes we reference it as a platform on which all kinds of applications can be built. The thing about blockchain is that it is widely misunderstood by both techies and non-techies alike.
The goal of this post is to help readers better understand when it is appropriate to use blockchain and when it is not. As exciting and useful as blockchain technology is, it is not the right choice for building every app. Simply put, it does have its limitations that makes it inappropriate in many cases.
Blockchain works very well for cryptocurrencies for obvious reasons. It also works well for other apps with similar properties. Yet blockchain is inadequate for most applications. It is extremely limited in its usefulness by design.
This post uses four app development questions from a Coindesk post as a launching point. The original article was written by Nolan Bauerle with images by Maria Kuznetsov. Each of the four questions provides insight into how blockchain works.
1. Are you securing or formalizing digital relationships?
As a software technology, blockchain is nothing more than a compilation of computer code designed to perform specific functions. Like any computer code, blockchain is ineffective if deployed outside of its established parameters. This makes for a good place to start our understanding of how blockchain works.
The tasks performed by a blockchain application are manifested in the record-keeping of its associated ledger. All of the tasks are digital by nature. As such, all of the data contained in both the blockchain and ledger is digital. Before anything else, developers have to ask themselves if the application they are working on seeks to secure or formalize relationships within that data.
In an application like Bitcoin, the data in question has to do with coin transactions among users. Every transaction generates a certain amount of data. In order for the transaction to be considered legitimate, that data has to be secured and formalized. Otherwise, it is meaningless.
An app that does not make any practical use of digital relationships has no need for blockchain or its ledger system. A good example is the software that creates what you see on your computer or mobile display. Blockchain would be both inadequate and impractical for that application because the software makes no use of digital relationships among different streams of data.
2. Is the data dynamic with an auditable history?
The next question deals with the digital relationship among data points over an extended period of time. If developers are dealing with data that changes, blockchain might be appropriate. If it is data that requires an easily auditable history, blockchain may be appropriate.
In his post, Bauerle cited a system of record as one with data that is both dynamic and requiring auditable history. Hopefully your mind is already thinking about cryptocurrency here. The opposite side of that coin is static data that rarely changes.
Cryptocurrency involves data that changes with every transaction. That data has to be preserved in a long record so that it can be audited every time a new block is added to the chain. The ledger formed by the blockchain is, for all intents and purposes, a system of record.
If a software developer were working with a static data set with rare changes, there would be no need to implement blockchain. Any record-keeping benefits would not be worth the effort. On the other hand, a developer working with large data sets that continually change and have to be historically tracked may be a good candidate for blockchain.
3. Is there a need for a central authority to control data?
This third question was reworded from the original post to give us a bit more clarity. The question deals with who actually controls the data added to a blockchain ledger. In a cryptocurrency environment, there is no controlling authority. That is why we refer to things like Bitcoin and Ethereum as decentralized.
Bitcoin's blockchain is not controlled by a single developer, a central bank, or a government entity. It is controlled by the miners who maintain both the ledger and the network itself. All of these miners operate computer nodes through which they mine new coins by verifying transactions. Each node has a vote on any changes to the ledger or network.
If there is no need for a central controlling authority, blockchain is a good alternative for maintaining dynamic data that relies on formalized and secure digital relationships. Cryptocurrency certainly fits the bill.
In cases where centralized authority is required, that need is not an automatic disqualifier. Blockchain could still be the most effective technology for that application. It would simply have to be modified to give control to those individuals or groups already assigned such authority.
Bauerle maintains that privacy is the most important consideration when a central, controlling authority is involved. In other words, the developers behind the blockchain in question must do everything they can to secure privacy given that this central authority will be capable of controlling data.
4. Is transaction speed the most important consideration?
The fourth and final question has to do with the speed of digital transactions within the finished application. If answers to the previous three questions all point to blockchain as the best option, the last consideration is speed. How fast do you need the application to process transactions?
Speed is one of the main advantages of cryptocurrency as a monetary system. If you are a frequent online gambler, this should make perfect sense to you. Your ability to play your favorite games is influenced by how quickly deposits are posted to your account.
Let us say you want to play slots at your favorite Bitcoin casino. You can make a Bitcoin deposit and know that you will be ready to start playing in mere minutes. Try to make that same deposit using a bank transfer, and you could be waiting days to play.
However, speed is viewed differently by Bauerle. He maintains that if transaction speed is most important developers should concentrate on beefing up their networks rather than putting all their baskets into blockchain. He takes this position because the system of record embedded in a blockchain ledger is ultimately more important than speed.
Remember that the very first consideration for blockchain development is whether or not the app in question requires securing or formalizing digital relationships. Such an application has a greater need for accuracy and security than actual speed. This is an important consideration because transaction speeds slow down commensurate with the length of the blockchain. The longer it gets, the longer it takes to complete a single transaction.
The speed illusion
You still might be scratching your head because you know that cryptocurrency transactions tend to post faster. But that is really an illusion. Consider that a typical Bitcoin transaction can take up to 10 minutes to finalize. This is due to the size of Bitcoin's blockchain in combination with its proof-of-work algorithm that requires exponentially more computing power as the blockchain grows.
By the same token, you can run a credit card transaction in mere seconds. The illusion here is created by a traditional banking system that relies on multi-party settlement before a transaction can be verified.
Let's say you deposit at your favorite casino using a credit card. The casino runs your payment through a payment processing company. That payment processing company must then run the payment on at least one banking network; sometimes it's two or three. Finally, all of the parties have to reconcile the transaction in order to settle it.
The transaction can be run on each individual network in mere seconds. But settlement takes longer. Settlement can take 2 to 3 days because of the schedules of everyone involved. As you know, banks have normal operating hours. So do payment processors and credit card companies. Their computers can run transactions 24 hours a day, but those transactions cannot post without human verification. Thus, posting is subject to working hours.
Cryptocurrency transactions post more quickly because you are not dealing with banks and credit card companies. In some cases, coins are pushed directly from one wallet to the next without any intermediary interference. Other times, a merchant might use a cryptocurrency payment processor. But that payment processor runs everything automatically on a cryptocurrency network that never stops.
Traditional payments could be finalized just as quickly as crypto if banks, credit card companies, and payment processors changed the way they do business. But under their current model, it takes days to finalize a single transaction. It takes minutes with crypto.
Hopefully you now have a better understanding of blockchain and why it is used as a foundation for cryptocurrency. Blockchain is a record-keeping technology built around formalizing relationships among multiple data sets. It is intended to provide an auditable history of dynamic data in an environment with no central control. It is a system designed to protect data integrity over transaction speed.
If that's what developers are looking for, blockchain is the ticket. On the other hand, blockchain might not be the right choice for applications with different requirements.