There’s a ideal ratio for the optimal decentralized application, but very few dApps ever reach it.
It’s a smart balance between decentralization and centralization that can make a dApp great. And in order to find success, like being sufficiently decentralized yet offering the UI tools that users expect, dApps must utilize the strengths of both methods in an optimal ratio.
It’s been a struggle for developers to get it right, but not due to a lack of expertise. There simply aren’t many available tools to help developers get blockchains to play nicely with web services, IoT devices or legacy software (...glad MESG is here to help).
Many go with the 100% decentralized route
Ethereum smart contracts made dApps easy to build, but unfortunately, most that have been made aren’t functional (practically not at all). This is because when you build an application within a blockchain, you’re limited to the functionality of that blockchain.
It’d be like building a retail store locked deep inside an old underground missile silo. Sure, it’d be extremely secure, but also it’d be hard for customers or deliveries to get in or out.
If you build the back end and the UI of your dApp decentralized, it’s quite difficult to ever change or update it because the application is set within a blockchain, isolated from external technologies.
The sheer lack of connections to any external technologies quickly turn these 100% decentralized apps into UX nightmares. When is the last time you purchased something online and didn’t receive an email confirmation or receipt? The majority of users these days would think something went wrong or they’ve been scammed.
Without being able to easily connect to external technologies, users are left in the dark and are not guided through the process like they have been on all other apps and websites throughout the years. With technology as it currently stands, dApps need to be at least partially centralized in order to deliver a good user experience.
For the time being, our missile silo retail store at least needs a front door with a key.
Others go with the 90% decentralized route.
To solve this dApp connectedness problem, many create applications that are partially centralized. The centralized portion of dApps can be ran on a server, such as a classic cloud provider, designed to listen to particular events in order to expand your dApp’s functionalities.
Others prefer to connect the dApps’ UI to centralized services, but in this case, dApps are either built to be completely dependent on centralized services, or they include gigantic security holes (such as private API keys made publicly available in the source code).
If you apply this to our silo store analogy, it would be like having a showroom (plus the electrical supply and transformer) above ground, with the back of house siloed and protected below ground.
With a sizable portion of your application (possibly 10% or more) centralized, it opens it up to single points of failure and control by large entities, which are the exact reasons why we’ve been moving away from centralization in the first place.
Is a 90% decentralized application even worth the effort if it’s both vulnerable to the risks of centralization and susceptible to the drawbacks of decentralization?
The ideal ratio
In the majority of instances, there’s no reason why 10% of our applications should be centralized. 1% is a much more practical percentage.
There is finally a way for you to reach that 1%. MESG’s Engine, along with the network of interoperable services take down the walls around blockchain applications, allowing them to be easily modified, updated and connected to external technologies.
Now your DApp can connect to any technology, including other blockchains, in a decentralized way while also being able to keep some information (such as private keys or sensitive APIs) centralized.
For example, in the past, if you wanted to automatically airdrop tokens to investors on a certain date, then notify them via email, you would have to use a centralized portion of your application to do that, therefore making a large portion of the functionality of your application vulnerable to failure or attack.
Now, app builders can simply choose which parts of applications are centralized and which are decentralized. Ideally, this looks like making the functionality of your app decentralized, with only the most sensitive information centralized, allowing your DApp to be both feature-packed and secure.
On top of that, MESG modular services make modifications and updates easier than ever, as each service runs independently. You can replace or update any technology, or even easily switch out your dApp’s blockchain from Ethereum to EOS, for example, because it's just a service like any other.
MESG is revolutionizing the development process. Maintainability, modularity, and compatibility have never been so easy for those tough-to-reach technologies, allowing you, for the first time, to find and maintain the perfect ratio of decentralization for your dApp.
Check out https://mesg.tech to get started building your solution on our open-source platform today.