Behind only AI, Blockchain is the second-most-hyped developer technology. There are a few good reasons to use it in a project, but plenty of bad ones too. Whether blockchain technology is right for your application is ultimately up to you, but we’ll take you through some of the basics on whether it is worth serious consideration.
Blockchain Stripped Bare
It is far too easy to confuse blockchain technology with cryptocurrency and especially Bitcoin. Blockchains are actually much more general, with many other applications. In particular, blockchains do not need to involve currency. They also don’t have to involve mining, or trusting countless anonymous individuals to secure the system. In fact, the bulk of enterprise-grade blockchain projects involve entirely different models of trust, and many don’t require any notion of a currency. So that begs the question: What does blockchain itself really get you?
A Distributed Database
If you’re happy with your database solution now, there probably isn’t any reason to throw it out and move to blockchain. The switch involves rethinking everything, recoding most things, and betting on a new technology that will need many years of work to become as mature as whatever database you’re currently using.
However, if you are constrained by your database architecture, then moving to the distributed database (ledger) you get by using blockchain can have some major advantages. Everyone sees the same thing from everywhere, for starters. And anyone can add to the ledger in a verifiable way. So if you have lots of business partners who need to be able to transact with each other without you being a bottleneck, then blockchain may provide a solution. An example of this is the effort Maersk and IBM have announced to develop a private-blockchain-based solution for the entire supply chain that makes up the shipping industry. If it was simply Maersk keeping track of its relationships, it could use a traditional database it controls. But if the system is to work for all its partners, then the data store needs to accommodate contributions from many different entities. Blockchain is perfect for that.
An Alternative to Having a Gatekeeper
You can, of course, implement a system that allows lots of participants using traditional data management tools if you have a Gatekeeper who everyone trusts. That’s how many financial markets and banks work. But that Gatekeeper adds a lot of overhead and expense. For example, startup DMarket allows gamers to buy and sell their in-game assets virtually friction-free. That means more of the money can stay in their pockets instead of going to Steam or whichever platform would otherwise have been the Gatekeeper. Further, a game publisher can set up a system where it gets a portion of any aftermarket sales, helping finance the cost of game development.
Do You Need Smarter Transactions?
Sample of the workflow for a smart contract on a blockchainTraditional databases are great at simple transactions between parties. But if you want to legislate the longer-term behavior of assets in a transparent way, blockchains have begun to enable something called Smart Contracts. Smart Contracts are pieces of code that determine the way a particular transaction unfolds. For example, they can be written to include a Deposit upon order placement, an Escrow where the deposit is placed, a Proof of completion of the task or delivery of the product, and a final Payment. These contracts can even persist beyond a single transaction, and affect the future behavior of, and payment stream for, assets. For example, if blockchain was used for selling concert tickets, the Smart Contracts used could be written so that the artist received a portion of any aftermarket sales at scalper prices.
Smart Contracts are incredibly powerful, but they are in the early stages of development, and not for the faint of heart. You literally put your assets and business transactions under the control of a bunch of code. Recently, $300M of Ethereum was at least temporarily and perhaps permanently destroyed by accident when a novice programmer stumbled across a bug in the Ethereum Smart Contract implementation and panicked. In a private blockchain system, there would probably be a simpler way to undo the damage, but the variety of things that can go wrong may give developers pause.
Do You Need Your Own Currency?
Bitcoin is the most famous crytocurrency, but now there are over 2000. Should you create another?It is absolutely not essential to have a currency to make use of blockchain, any more than you have to invent your own coinage to start a bank. But in many cases there are good reasons for one. In particular, since you’re probably not a bank, but want to allow people to transact — perhaps internationally — then having your own currency may make that easier. For example, Ripple, which is aiming to revolutionize the international transfer of money, provides an optional currency, XRP, to its partners. XRP has the advantage (so far) of being easy to buy and sell across borders. Then financial institutions or end users can trade out into their local currency as needed.
So if you do need your own system of tokens (which is really what cryptocurrencies are), then blockchain has many of the tools needed to create them (mining using proof of work being the most crude and ultimately self-defeating). Tokens are also a way to provide stakeholders with a share of the success of your system if that’s appropriate. Through Initial Coin Offerings (ICOs), they can also be a way to fund a project — although they are probably mis-used as often as they are used responsibly.
One recent example that has come in for a lot of criticism is the planned KodakCoin. It is intended to be a token that can be used to license photographs, stapled to a blockchain implementation of licensing and payment. Now, the idea of validating photo licenses using a blockchain is certainly interesting, although not too many seem to be excited about this particular implementation. But adding a cryptocurrency to it simply makes life more difficult for everyone. Except perhaps for Kodak, which is hoping to raise as much as $20M from selling the initial tokens in an ICO. Amusingly, the tokens can only be sold to accredited investors (people with money) since they are a speculative security. That will make them even less useful for the licensing of photographs.
A counter example, of which there are plenty, is Siacoin, a distributed storage solution. It has one of the easiest coins to understand. You earn them by letting people use your spare storage, and you spend them to store data on other people’s storage. The company behind it, Nebulous, takes a transaction fee for providing the secure service. Nebulous has separated fundraising into a different coin, Siafunds. These are only sold to accredited investors. That’s okay because they are strictly a fundraising vehicle, which confers a right to a piece of the transaction fees earned on the Sia network. Whether or not the effort will be successful, it at least represents a fairly clean way to break apart tokens and funding into understandable chunks.
Consider Proceeding in Parallel
Having spoken with a few dozen blockchain-based startups and similar efforts inside larger companies, if you do decide to launch a project to blockchain-enable your application, I’d suggest doing it in careful stages with plenty of prototyping and iteration. Once there are real users of a blockchain system, and real value is stored in it, fixes get time-consuming and expensive. Hopefully, you can do this in parallel with continuing development on your existing systems, in case blockchain doesn’t work out or the effort takes longer than you think.