Everything you need to know

There is no arguing that dapps are quickly becoming ubiquitous. But what exactly defines a dapp? What are their main advantages over everyday apps, and why is real-time data the mission-critical component?

Before talking about Dapps or decentralized/distributed applications let’s define terms. The most precise definition I have come across of what a dapp is was formulated by David Johnston et al. It states: dapps operate autonomously with no central controlling entity with all changes decided by proposals and consensus by its users.

This definition already begins to clarify why Dapps have become so interesting to developers: with no central authority, they are architecturally superior to centralized apps.

The dapp advantage

One of the key challenges in regular web applications is fault tolerance. If an application gets too popular or falls victim to a denial of service attack, there’s little a regular application developer can do except weep. Dapps, on the other hand, have their resources and functionality distributed among the peers on the blockchain, making it extremely costly to attack with traditional denial of service attacks as they are not dependent on one sole server.

The other major advantages dapps have over their centralized counterparts is that they reformulate the dynamics of reward, information ownership, and power. In a nutshell, there’s the saying “if you are not paying for the product, you are the product”. It’s never been truer. Platforms such as Facebook, Twitter, and Instagram, depend on the content their users produce and consume. With regular applications, the centralized entity is the utmost beneficiary of the effort contributed by its users. With Dapps, their decentralized governance models ensure that power is re-distributed so that app users and their software creators can both benefit in a more egalitarian fashion.

Is real-time data essential for mainstream adoption?

So while the technological and socio-political advantages of Dapps may be abundantly clear, when it comes to truly unlocking the potential of dapps, there is still a missing element: real-time data. Applications that can come alive and operate at the moment are always going to be far more powerful a tool to people and organizations than applications that must essentially remain static in time. Think of the difference between a city map where you can search for street names, and one that is real-time enabled e.g. Google maps which reports current traffic status and allows you to search for public transport connections.

Most developers are of course entirely familiar with the advantages real-time data bestows but integrating quality real-time data feeds for decentralized applications come with serious challenges.

Going back to our definition of a decentralized application, who will decide what real-time feeds to insert into a given application? How do we guarantee the integrity of those feeds, and for data feeds that must be paid for, how will licensing terms will be paid for? There is a long list of questions to answer on that front and it is likely compromises of some sort will need to be made.

Currently, Dapps that handle only crypto transactions within the realm of blockchain don’t need to think about these issues. However, in order to build complex Dapps that can offer more functionality than just transaction settlement, accessing external, real-time data from ordinary people and a multitude of organizations becomes vital.

SEE ALSO: The ins and outs of testing blockchain apps

This real-time data must come from a secure and approved source, such as an airline portal or a carmaker’s chip. In addition, data must be transferred securely and encrypted to protect against man-in-the-middle-style attacks or to avoid any single entity being able to manipulate outcomes by hacking or hijacking the network. In order to achieve this, r_eal-time data should ideally travel on a decentralized real-time network otherwise again that information will have to be ported according to the rules of a centralized party.

Despite the challenges, a number of disruptive innovations that harness events occurring in real-time are already live and kicking in production environments. In September 2017, AXA announced its Fizzy dapp, which handles automatic compensation to policyholders whose flights are delayed. Fizzy uses self-executing contracts triggered automatically once predetermined parameters are met in the real world.

Perhaps an even more game-changing innovation is a decentralized prediction market protocol called Augur that enables anyone to create a prediction market about anything. Although this might sound vague and simple at first glance, the use cases are myriad – everywhere from creating an insurance against a drought to betting who will win the next presidential election. Real-time data acts as the backbone to base any prediction or hedge against it.

At the time of writing, dapps are still in their infancy. According to DappRadar only eight dapps from a list of 650 have more than 100 user interactions within the last 24 hours. There are 1637 coins listed in CoinMarketCap and 631 ICOs listed in 2018 at CoinSchedule which indicates that more are coming.

So while It’s clear that there are a number of challenges to overcome before dapps achieve mass adoption, the fact remains that they hold enormous potential and a number of advantages over their centralized counterparts. However, overcoming the real-time data challenge is going to be a crucial aspect of delivering on this potential. This will add a very necessary additional layer of functionality that, consumers expect with apps and will no doubt expect with Dapps too.