Blockchain has undoubtedly broken the internet in the past year. Originally, Satoshi Nakamoto’s bitcoin was intended to disrupt global financial systems by providing a trustless, peer-to-peer electronic cash system. But the technology has proven to do a lot more, essentially enabling developers to disrupt not only financial systems but also virtually every industry.
This became possible through decentralized applications (Dapps), which are based on blockchain. Let’s take a closer look.
What makes a Dapp?
Most of the apps we know today are centralized, which means a few things:
- The overall flow of information comes from a single center.
- The control of individual units is executed from a single center.
- All individuals are dependent on the single center.
Unlike centralized apps, Dapps’ server-client model is entirely distributed. In order for an application to be categorized as decentralized, it needs to fulfill the following criteria:
- It should be autonomous and open-sourced. This suggests that any changes on it may only be executed after reaching a consensus. It also means that there is no single authority executing those changes.
- Protocols and information are stored on blockchain, protected by cryptography.
- Tokens are issued and used for rewarding application access and network users.
- Tokens are generated through an algorithm that encourages contribution by the members of the network.
According to Vitalik Buterin, founder of Ethereum, these criteria can be summed up in this way:
- Logical: Does the interface and the structure of data of the system suggest a distributed structure or a centralized one?
- Political: How many individuals are given control over computers that comprise the system?
- Architectural: How many computers can the system sustain before collapsing?
Advantages of Dapps
Before we go into the advantages of Dapps, consider this: everything an app can do, a Dapp can do better. Unlike centralized applications, Dapps provide a particularly quick, affordable, and highly efficient way of processing big data.
So, here are some of the biggest advantages of Dapps as compared to traditional apps:
Higher level of security
The nature of Dapps provides for a higher level of overall security. Since the information is stored on a distributed ledger, a potential threat would have to go through the burden of hacking all of the connected nodes. This addresses popular attacks such as distributed denial of service (DDoS).
The nature of decentralization itself bars collusion and infiltration, making Dapps a whole lot harder to hack.
Since Dapps run on blockchain, transactions that take place in it are easily verifiable. Everyone can access the record and check the status of current and previous transactions. This transparency also allows for precise verification of all the executed amendments to the code.
Superior community involvement
A decentralized ecosystem essentially encourages community involvement. Since everyone can contribute and take part in the governance of a Dapp, it’s in the community’s best interest to actively participate and produce. More importantly, they are usually incentivized for their activities.
Immunity to physical outage
Centralized applications usually store their information in physical data centers and are, hence, dependent on their uptime. Since Dapps are entirely distributed across a ledger, there is no single, central data center that harbors the information.
Therefore, Dapps are virtually immune to power outages and all sorts of physical malfunctions. This is why bitcoin has been boasting 99.99 percent uptime since its inception. Compare this to Visa, for instance, which recently experienced a major outage, affecting a huge number of people across the world.
Two types of Dapps
While there might be quite a few different ways to classify Dapps, for this post, I’ve chosen to categorize them based on the network they’re built upon.
- Type #1: These are applications that have their very own native blockchain. There isn’t a clearer example here than bitcoin itself.
- Type #2: These applications are built upon the infrastructure of Type #1 networks. This is the case for the many Ethereum-based solutions out there.
How do Dapps work?
You need serious technical knowledge to dig into and explain the bedrock of Dapps’ operational algorithms. For this post, I’ve chosen to simplify things up.
What you need to know is that there are two main types of consensus algorithms that Dapps use. They have one thing in common: a consensus is required for any form of change to happen on an existing infrastructure. However, they differ in the conditions of the said consensus. Let’s take a look:
- Proof of work: This is the algorithm behind bitcoin. A consensus is reached based on how much a stakeholder contributes to the Dapp’s operation. In other words, if you want to change something in the infrastructure, you’d need to work and contribute first.
- Proof of stake: Here, a consensus is based on how much a stakeholder owns in the entire application.
Challenges for developers
While all of the above might sound all fun and games, developing an actual Dapp sure is challenging. Some of the potential roadblocks developers have to go through are:
- Debugging: Debugging a blockchain-based application can be tricky. The so-called heisenbug, for instance, causes unwanted alterations to the operational behavior of the system through the testing process, making debugging a true menace.
- Information storage: While the concept of storing a single bit of information throughout a distributed ledger does sound alluring, turning this into reality is surely a burden. Also, maintaining the entire system and keeping the nodes fully updated are no walk in the park either.
- Legal matters: Remember that blockchain is still nascent, which means solid regulations are yet to come. While we wait for the lawmakers to bang their gavels, defining what’s legal and not surely poses certain risks in Dapp development.
Blockchain is here to stay. The industry leaders today are either on the verge of adopting the technology or have already done so. These include well-known names such as Microsoft, LG, Facebook, and Oracle. Even the financial industry, which was the original target of Nakamoto’s creation, spends over US$1.7 billion a year on blockchain.
As the adoption is becoming widespread, mobile app developers need to be quick on their feet if they don’t want to be left behind.