When (not) to use a blockchain and the Dapp revolution

May 4, 2016 Blockchain, Dapp Framework

The original bitcoin blockchain was built to solve one problem: the creation and management of a digital currency without oversight by a central body. Since then, individuals and businesses have realized that a blockchain can be used to solve a wide variety of problems, with implications far beyond those introduced by Satoshi Nakamoto in 2008.

Criteria to think about before starting a blockchain project

There are elements of certain solutions that lend themselves to blockchain implementation; here are some of them:

A Trustless Network

Does your problem include many stakeholders who all operate in their own best interest? Usually situations like these require a central body managing the system, and the other members trusting it to uphold the integrity of the network. With a blockchain it’s easy to manage a trustless system between members where agreements are all coded in smart contracts, and the integrity of the ledger is maintained.

Asset Management

Does your problem include the management and exchange of assets? Blockchains lend themselves to managing a ledger that stores exact data about who owns what, so double-spending or counterfeiting are impossible from the outset.

Data Storage

Does your problem involve storing data without interruption, while limiting the ability for users to change any past data? Blockchains store data immutably, meaning that once a block has been validated, the transactions and contracts that are inside of it cannot be changed.

Predicatable Code

Does your problem involve agreements between users, or opaque background processes that would benefit from additional transparency? Typically the code that’s run on a server or in an app is hidden from its end user, but with Smart Contracts it’s possible to read and verify the code before you use it, ensuring it does exactly what you expect; and nothing else. Dapps – what has been done and what’s in progress

The Dapp market is diverse … as it should be since no two problems are the same! Here are some of the distributed applications people are currently building:

Distributed Organizations: True democracy is only possible when members are certain that everyone’s vote was counted, and never more than once. Smart contracts enable members to create new laws or rules that other members can agree with, and their public nature ensures voter fraud or manipulation is impossible.

Smart Devices: Your 21st century dog bowl notices that it’s out of food, and automatically orders some from your favourite online retailer. This is possible through internet enabled devices and smart contracts, which can automatically feed data into the blockchain and make predictable decisions based on the data.

Digital Asset Storage: With blockchains it’s possible to store copies of your files on a blockchain, which leverages its immutable properties to ensure its long-term integrity. This is useful for content creators to prove that their original work on a certain point in time, or to store the files without fear of their loss (as a backup).

Gambling: From rock-paper-scissors to 5 card poker, people have deployed smart contracts that allow users to play money-based games while removing their ability to cheat. Since the rules of the game can be encoded for all members to verify, you can be sure that no intermediary gets a cut of your winnings.

Smart contracts that live on the blockchain enable developers to create more technically efficient versions of solutions that already exist right now. Most of the examples above are in this domain, and are the logical first step whenever a new technology is introduced. The next step will be figuring out what can’t be done without the blockchain. This domain is small but growing, and we’re excited to see what the community comes up with in the next few years.

-Mark B