Lesson

The Case for Decentralized Apps

Decentralized apps, or DApps, are applications that run on a blockchain. The blockchain enables apps to run without having to have a central location like a web URL to go to. This opens up a whole new breed of applications. Let’s discuss how DApps work and why this is a radical evolution in technology. The word DApps is simply short for decentralized apps. So let’s take a step back and look at centralized applications and how they function. Whenever we go to a centralized app, we’re either going to go through a mobile app or through a web URL.

Whichever way we go through, it’s going to interact with the same core functionality at a central point. All of the functionality will reside on a server, or servers, or virtual servers and all of the data will be stored within that environment. Some problems with this model, for starters,because it’s a centralized location, it’s vulnerable to a distributed denial of service attack, where the server can be taken down or it can effectively block other people from being able to access it. Every time you use a centralized application, you’re surrendering your trust,you’re paying fees, and you’re giving up data to whomever is operating that central application.

Anything that happens within that environment, any transactions, or any data that’s created or given, is essentially hidden. We don’t know what happens to it unless they care to show it to us or are required to show it to us by law. Some examples of these types of applications are ride-sharing apps like Uber and Lyft, Airbnb or other applications that allow us to rent our homes out or rent a home somewhere else, and most recently in the news, has been Facebook who’s come under a lot of fire because of all this data that they’re holding, and they’re providing to their customers whether we like it or not.

When you look at a DApp, everything is essentially hosted through the Ethereum network. Because of that, you can access that DApp from any node that can access the blockchain. This opens up a huge global network of the Ethereum network. The advantages of running things in a DApp are for starters it reduces fees. Because there is no centralized authority, there doesn’t need to be a big charge for the management of that application.

DApps reduce the reliance on a central resource. Because it’s running on the Ethereum network, it’s essentially invulnerable to a DDoS attack. And lastly, we can remove personal trust from the transaction. By using smart contracts, we can ensure that funds are moved around only when certain conditions are met and we don’t have to rely on a middleman to handle the transactions for us. Let’s look at an example of a ride-sharing DApp.

If we were to use a decentralized application for ride-sharing, it would look and behave much like any current ride-sharing application. We would put a request in, that request would go out, the difference is that request would go out on a blockchain. The request would then go out to anyone who’s listening, any driver. Now certainly we would want the ability to possibly select a driver, look at the ratings of a driver, cancel a driver, things like that to provide our own security, but that’s mostly irrelevant.

That stuff could all be built no matter what type of application you’re using. Once the ride arrives, the funds wouldn’t be released until we reach our destination and our device alerts the blockchain that we’ve arrived at our destination and then the funds are released. In this way, there’s no organization that had to be in between us and getting that ride, so you can see it eliminates a lot of overhead. The way that DApps work from a more practical and technical standpoint, is that our files are going to be hosted in Ethereum through an app called Swarm that exists on many of the Ethereum nodes.

Any interactions that happen with an application, will happen via a smart contract. So this contract will handle any kind of financial transactions as well as any general processing and data storage. And all of that data will be stored, anything that’s persistent will be stored in the blockchain. Now keep in mind that Swarm can host any types of files, so this would enable us to deliver any kind of file that you would want to. Typically, it will be hosted with HTML, JavaScript, and Cascading Style Sheets.

One of the most powerful use cases for Ethereum is the ability to create these decentralized applications, or DApps. DApps utilize the power of the blockchain to cut out the middleman, or to do things like track items through a supply chain. The possibilities are virtually endless, and we can see some of these DApps starting to make it in the world today.

Course Discussion