Open source: First and foremost, these applications should enable everyone to use their core source code. The core features of dApp are autonomy and consensus. Essentially, changes must be determined by all or most users. In addition, the code should be available to everyone for inspection.
Decentralized features: As the name implies, a decentralized application stores all content in a decentralized block chain or any encryption technology to avoid the threat of centralized permissions on the application.
Incentive: Because applications are based on decentralized block chains, validators recording on the network must be rewarded by encrypting currency or any valuable digital asset.
Algorithms: Decentralized applications need a consensus mechanism to describe the value proof in an encrypted currency system. Essentially, this gives the value of the encrypted currency and creates a consensus protocol that users agree to generate valuable encrypted currency.