A Guide to Decentralized Applications (DApps)



Criteria

An application will truly be a Decentralized Application if it meets all of the following criteria:

1. Open-source.

2. Uses a decentralized consensus mechanism.

3. Uses a decentralized ledger, eg. a Blockchain.

4. No single or central point of failure.

Open Source

The source code of Decentralized Applications (DApps) is transparent and available for the public to view. It is as termed, “Open Source”. There will be no hidden functions eg. spyware to collect your data, malicious codes or functions that are centralized in objective not known to the public. Hence, an application that is not open source can never be considered a “Decentralized Application”.

Decentralized Consensus Mechanism

With source code available to all and changes decided through the consensus of the users on the blockchain, users will be able to use with exactly what they see from the source code. As compared to downloading other software from the net, no one (except the software creator) knows what else is loaded or hidden in an application that is not open source, and no one has control over the application development except the software creator and owner.

Decentralized Ledger

DApps work with cryptocurrency tokens that can be generated as fuels to run the DApps operations and they connect the users and the DApps directly. Although some users argue that Decentralized Applications do not have to be running on top of a blockchain, a blockchain allows transactions to take place securely and transparently. Uploaded content cannot be removed or erased by anyone, not even by its creators.

On the other hand, P2P Applications without blockchain cannot ensure that its data in its client software will not be tampered by either side of its P2P users and if they will add malicious components in. Applications with a ledger that can be easily manipulated by individual or group of hackers should not be classified as Decentralized Applications. Hence, Decentralized Applications mentioned in this guide will refer to applications using decentralized ledger, eg. Blockchain.

High Availability

Decentralized Applications or DApps are applications that can work independently without the need of a middleman or any single authority to function or manage data, and it runs on a distributed computer system instead of on one single computer. When one computer system goes down, every other computer systems can take over. There is no downtime for DApp and it cannot be shutdown since there will always be some user computers running live 24 hours a day.

For Centralized Applications, hackers can paralyze the entire system just by disrupting the hosting service. It is much easier to disrupt centralized system hardware located in a data center or a less secured cloud hosting, than bringing down all nodes using the DApps in the entire world. Organizations for centralized applications may be capable of adding in 2-3 more redundancies (eg. add secondary server, data center or site) but they cannot reach the system uptime reliability or high availability capability of a decentralized application on a blockchain, not even close.

Centralized systems are highly susceptible to data corruption, and their owners' tendencies to synchronize their data with different data storage, data centers and sites (usually for performance or disaster recovery purposes) cause data corruption impacts (if it is compromised) to be especially devastating since corrupted data will be synchronized and replicated elsewhere as well.

On the other hand, Decentralized Application is distributed by process, it involves participation of all elements from the decentralized network to change or modify any data, partial corruption will be rejected and auto-corrected quickly by the majority consensus mechanism. For attackers to corrupt data successfully, they will need to compromise majority of nodes and data operating on a global scale decentralized blockchain simultaneously, which is seemingly impossible to be achieved since the massive costs required to do so are likely too enormous for attackers, cartels or even governments to afford.