What is a Decentralized Application (DApp)?
Decentralized Applications (DApps) are applications built on top of blockchain technology. The same like Bitcoin which is a cryptocurrency on top of the blockchain, developers made a step forward and implemented decentralized applications with the same principles in mind. Ethereum is the second cryptocurrency at the moment by market cap. Apart from being a cryptocurrency, it is also a platform for developing DApps. Ethereum developers first time introduced the concept of smart contracts, which are basically computer programs built on top of Ethereum blockchain. A smart contract is similar to normal contracts with the difference that it is an immutable and public DApp. Immutable means that once it was published on the blockchain it cannot be changed. Public means that all the parties involved in the smart contract can see the conditions on the blockchain publicly.
ICOs stands for Initial Coin Offerings and are basically a way to raise public funds for new companies the same like IPOs in the stock market. ICOs can raise money for their startup by developing DApps in a form of a smart contract. The vast majority of ICOs build their DApps on top of Ethereum blockchain platform. This is why Ethereum became so popular during 2017. Building a smart contract on the Ethereum platform requires studying a new programming language called Solidity. Also in order to publish your application on the platform, you’ll need to spend some Gas. Gas is the internal fee for running your DApp. But there are already also other competing platforms in this space like NEO, Lisk and even Bitcoin community is developing such a platform. Each of these platforms comes with innovative solutions, programming languages and useful tools for developers to build decentralized applications. For example, Neo platform promises the possibility for developers to write apps in more common programming languages like Java, Python or Go. Ethereum community is working on solutions for non-technical people to deploy DApps on the blockchain.
Even though there are already working solutions and platforms for building DApps this technology is in the nascent phases of its development. Developers of these platforms still have a lot of work to do to solve the transactions speed of the blockchain network. If we want DApps to be adopted by the masses, we need to find a solution for improving computational speed of the transactions and reducing internal fees. Another challenge is the security of the DApps. Because Dapps are public applications anybody can access them and try to find vulnerabilities and this fact makes them very attractive for malicious activity. To solve the security problem the platforms are developing new programming languages, like Solidity in case of Ethereum, new tools for checking and debugging the DApp before publishing it to the blockchain, as well as instructing specialists on best practices during the development process.
Nonetheless, this technology is evolving because this is the future where applications will run in a decentralized way without the need of a middleman in the interaction of two parties who want to collaborate.