Blockchain is a trendy technology right now. Countless organizations are looking for ways to adopt this revolutionary technology for their needs. The popularity stems mostly from Bitcoin, one of the most public examples of blockchain in use. According to Statista, blockchain wallet use continues to rise quickly.
But while blockchain has lots of potential, it’s not right for every application. In many cases, a traditional centralized database - like MySQL - is still the best solution. When considering technologies, it’s important to focus on what’s right for your products, not fads or trends.
How do you know if blockchain is right for your application? Before you can answer that question, you’ll first need to understand the fundamentals of the technology.
What is a Blockchain?
A blockchain is digital information (blocks) stored in a public database (the chain). It’s a distributed ledger built on a peer-to-peer (P2P) system across countless users’ devices, creating an unchangeable record of transactions. Users can opt to connect their computers to the blockchain as nodes, which gives them a copy of the blockchain that continually updates.
(Interestingly, “blockchain” doesn’t appear in the original description for Bitcoin, but it does use “a chain of blocks” in a comment in the source code.)
Blocks store three kinds of information:
Data about transactions, like time, date, dollar amount, etc.
Data about who participates in the transactions. Instead of using names, however, parties are recorded using an anonymized digital signature, similar to a username.
Data that distinguishes blocks from other blocks. Each has a unique cryptographic code - called a “hash” - that’s created by an algorithm. This prevents us from confusing blocks with one another.
When a block stores new data, it is added to the end of the blockchain, where it becomes available for everyone to view. If you look at Bitcoin’s blockchain, for instance, you can view public information about each block, including several transaction data points.
In the case of Bitcoin, there are millions of nodes - all identical copies of the blockchain in real time. This makes it impossible to manipulate or fabricate blocks because the hacker would need to change every copy of the blockchain.
Is the blockchain secure? For the most part, yes. Since new blocks are stored linearly and chronologically, it's difficult to alter the contents of a block. Each block contains its own hash code and the hash code of the block before it. These codes are created by a math function that produces a string of numbers and letters. If the string is edited in any way, the hash code changes as well.
Image: Computer WorldTherefore, if a hacker attempts to edit a block, the block’s hash will change. The next block in the chain will contain the old hash, so the hacker will need to change that block as well. They would need to repeat this process all the way to the end of the train, which is extremely difficult if there are new blocks added frequently. Recalculating all those hashes would require a tremendous amount of computing power.
Bitcoin is the ubiquitous example of a blockchain, but it’s not limited to financial transactions. It’s a reliable way to store data about any kind of transactions, such as medical records, political votes, property exchanges, contracts, and much more.
When to Use Blockchain
Blockchain is an exciting technology with the potential to transform businesses, protect the validity of data, and create innovative software applications. Here are a few situations you might choose to use a blockchain over a standard centralized database.
You want to keep a record of past transactions
This is what the blockchain excels at. It’s one of the best ways to record a history of activity. Data is always fresh, but you can still look back and see where it came from and how it got there. It can’t be corrupted or deleted by any one party, which means that data trail is always available and hard to dispute.
You want to eliminate middlemen and gatekeepers
In some industries, gatekeepers are a necessity to sell products and services. Hotel accommodations is the best example. It’s unrealistic to check every hotel in a particular area, so aggregators like Airbnb, Trivago, and Expedia are necessary to bring hoteliers and customers together. A blockchain for accommodations means the hotels could update their availability themselves without going through a middleman. TUI is working on this now.
You want to manage complex digital relationships
Certain digital relationships are exceedingly complex, more so than users ever expect. Those travel platforms we just mentioned work with several parties to combine airfare, hotels, car rentals, and other vacation services into platforms. The customer makes one purchase, but the platform negotiates complex deals. A distributed ledger is a smart way to track and release payments once all parties agree that the right conditions have been met.
You need something that’s very secure
Blockchain is one of the most secure technologies today because there’s no central point of attack. In order to add a block to the chain, the network of nodes must agree that the transaction is valid. This means no single entity can make changes on its own. Instead of hacking one system, you would have to hack every node on the network.
That said, blockchain is not impervious to hacks. Smaller blockchains with few nodes have been hacked when thieves gained control over a majority of nodes (called a 51% attack). This problem fades away when you start dealing with thousands or millions of nodes because it becomes less likely to control many.
When Not to Use a Blockchain
Blockchain is a unique and trendy technology. You may be tempted to use it in your next application. But it’s not right for every project.
You don’t have tremendous computing power
A blockchain requires huge amounts of computing power, which means it’s not right for transactions that need to run in milliseconds. It’s difficult to make changes to a distributed ledger quickly, which makes interacting with it multiple times in a short period of time problematic. This makes scalability a big problem.
For instance, let’s say a banking user wants to transfer money from account A to account B, then make a payment from account B with those funds. The first transaction may take more time to complete than the user expects to wait unless you’re providing enormous computing power.
If you need to process and store information quickly, a traditional centralized database is usually a fatster, cheaper, and overall more effective method.
Blockchains come with confidentiality issues (by design)
Blockchains are open sources of information. That’s part of the built-in transparency. Users are hidden behind a unique identifier, but there’s still an open record that a transaction took place. Some users and customers may not be happy with such exposure. If confidentiality is important to you and your users, opt for a centralized database that you can maintain and protect.
Distributed ledgers are hard to develop, bug, and test
It’s hard to build a distributed system. Running tests and debugging on a single computer is hard enough, but fixing software that needs to coordinate with other software over a network is exponentially harder and more expensive. We run into a lot of obscure, hard-to-identify bugs, as well as “heisenbugs” - bugs whose natures change when we try to text them. These are common in distributed applications.
Of course, this doesn’t mean blockchains are impossible, but you should have a realistic outlook of the time and expense they require to get up-and-running. If your budget is a concern, stick to apps with centralized databases.
Do You Need a Blockchain?
New technologies are released every day, but that doesn’t mean they are all right for your applications. It’s important to take a pragmatic approach rather than chasing the latest fad.
Blockchains can support the creation of new processes, but as you can see, it’s still in the early days of development. There are still some challenges to overcome. The distributed nature of blockchains makes them hard to work with, but we expect that problem to be overcome in the next few years as more organizations experiment with the technology. We also expect to see a degree of standardization with the technology as well, which will encourage adoption.
If accurate record keeping is important and computing power isn’t a serious concern, blockchain could be right for your application, especially if you’re working with multiple digital parties.
Now that you understand how blockchain works and when you should and shouldn’t use it, you’ll have to work with your development team to decide if it’s right for your application. Like we said, ignore the hype and focus on what makes the best product.