Written by Dan Parry.
DApps(Decentralised Applications) run on a decentralized network that is not owned or controlled by any single entity. A DApp will look and feel the same as any other app to the end user, but in contrast to normal applications, dApps exist and run on the blockchain. But why is this better? How do dApps work and why should they play a role in the future of software applications? Let's start with how, and then it will make sense when we get to the why…
Just as any developer can write apps for the app store on Apple's iOS, a developer can build a dApps on Ethereum's blockchain infrastructure. A dApps's front end code and UI can be written in any language that can make calls to the back end but the back end is written on a decentralized peer to peer network, like Ethereum.
In most cases the code is also open source, meaning anyone in the community can view it and add to it. The users of dApps are also completely autonomous and free to govern themselves. This transparency and lack of any 3rd party ownership means dApps are generally considered much more secure and trustworthy than their company own counterparts.
DApps can only be built on Smart Contract Networks. A Smart Contract, in short, is an agreement written in code that is both immutable and distributed so there is no room for human error or outside interference.
They are also Open-source, meaning anyone can view the code, eliminating any dispute of its meaning or interpretation. A Smart contract is programmed to complete a certain action and once the conditions of the contract are met, it will carry out that action no matter what. This rigid simplicity makes them fool proof and ironclad.
A Smart contract network is simply a blockchain platform that is compatible with smart contracts. Thanks to Ethereum's language Solidity, users are able to create smart contracts on the Ethereum network, making it perhaps the best platform to create dApps. The Bitcoin blockchain, in comparison, was built to only accept the sending of its native coin, and so cannot run dApps.
To address the common misconception here, Ethereum is not a cryptocurrency, it is a blockchain platform that allows for things to be built onto it. It also happens to have a native coin - Ether.
DApps are also Censorship-resistant, meaning they don't answer to any one person or organization of any kind. The code was written to serve a specific purpose and when the smart contract is triggered, it will carry it out. While there are some obvious pros and cons to this unstoppability, for things like DeFi Apps (decentralised finance apps), removing the ability of a 3rd party to control your money or interfere with it in any way is the whole point.
Being decentralised, dApps have no central control and no single point of failure, meaning they never go offline. Running on the blockchain means a dApp is being run by many hundreds of thousands of devices at any given time and only a failure of every device would cause the app to be offline. This is a luxury centralized applications don't have, because if the servers go down for, say, all Facebook owned sites, the user has no choice but to wait until they are fixed. This also makes dApps far more resistant to attacks than single-server applications meaning any data stored there is safer by default.
Using a dApp doesn't require you to hand over your personal information to use. The unfortunate majority of apps require you to agree to a data policy and hand over some level of your personal information for their use. Whether it's your location, personal details, or contacts, there is usually a requirement expected.
Whether the company collecting the data will misuse it is far beyond the point in today's climate and there is an ever-growing cry for apps that deliver us great services without the cost of our data. The removal of the 3rd party interest removes the ability for any entity to collect and abuse the user's data.
There is a reason dApps haven't taken over the market just yet. While they do hint at a future in which we as consumers no longer need to answer to corporations, the tech is still relatively new and there are some growing pains that still need to be addressed.
User base is the first of the double-edged swords dApps are working with. Being run by their user base gives many of the advantages we discussed earlier, but it also means that a lack of the user base leaves the app without enough nodes to operate to its full potential. Accessibility also plays a role in this, dApps are not as easy to sign up for and start using as any given app you might find on the app store in your phone. They require a dApp supported browser to run. DApps are also hard to fix bugs in and developers need to pay the gas fee to push the code. So development, in general, can be much slower.
There is no question that dApps represents a positive alternative to the current status quo, but it seems there is a mountain to climb before we see any real mainstream adoption. This is in no small part due to the enormity of what dApps propose to replace. For decentralized applications to be the norm would require a huge paradigm shift from where we currently are and there isn't much incentive for big players in the space to support it.
Similar to how the world saw electric cars in the '90s, dApps are for sure better on paper, the concept is undoubtedly sound, but there are still a few too many kinks to work out before we can all expect to be using them. They are the future, but it depends entirely on what your timeline is for that future.
The infrastructure is still not in place to support a large-scale migration to dApps. They are still too inaccessible, too complex and the problems they solve are not big enough, yet. So in the short term, no dApps are not likely to be the next big thing.
Some day, however, and I won't venture to predict exactly when the world will be ready to adopt them wholesale, but eventually, decentralization is very likely going to be the way to go.
Agree with our take? Let us know down below!
Happy coding from your friends at Codesphere, the next-generation cloud provider.