What’s a dapp?
Decentralized applications (dapps) are programs that consist of smart contracts commonly built and executed on the blockchain. Dapps are open source unlike most web and mobile proprietary software. Instead of relying on a company like Airbnb or Uber to match buyers and sellers of goods and services, you can connect with them directly over a peer to peer network. The list of industries that these dapps are disrupting extends far beyond financial services and payments. Entertainment, social networking, identity management, advertising, IoT and even AI are all pushing decentralized applications towards widespread adoption.
Smart contract technology enables dapps to provide automated transactions, which often rely on the use of native tokens as a payment mechanism. This incentive structure motivates contributors and participants of the dapp ecosystem to maintain and advance the evolution of that particular application.
Much like a regular app store, anyone can publish their dapp. But there’s a caveat – dapps exist without the need for a middleman to function or to manage user information. Dapps connect users and providers directly, reflecting the decentralized nature of the blockchain and distributed ledger technologies.
Now think how a regular app like Twitter could function if it was built as a dapp instead. The decentralization feature would allow for greater flexibility and create a major resistance to censorship. Once you publish a message to the blockchain, it can’t be erased – not even by the company that created that system.
How to develop a distributed application
Much like with regular software, you need to come up with a plan once you formed an idea and value proposition behind your future distributed application. There’s always a set of preliminary requirements your team should take into consideration, including platform specification, technical stack, development lifecycle, and costs.
Considering the relatively young age of the blockchain technology itself, Ethereum has been dominating the dapp market for a solid amount of time. The track record is backed up with the following projection – Ehtereum is expected to power more than 2000 dapps by the end of 2018.
As the first major blockchain-based platform to build a Turing-complete language for smart contract development on blockchain, Ethereum quickly became the platform of choice for dapp development. 91 of the top 100 dapps are built on Ethereum. It’s hard to argue against the numbers, however, there are competitors who have entered the space with their own take on dapps development. Some of them are making a strong push to carve out their market niche, so if you are on the look-out for alternatives to Ethereum, you should definitely check out Lisk, QTUM, Cardano, and NEO.
Technical stack and development lifecycle
As long as you have a great dapp concept, execution is just a matter of your team’s preference as well as existing contingencies/available technology. One of the prototype dapps we built at DataRoot utilizes the following tech stack:
- React – front-end library;
- Solidity – language used to build smart contracts that runs on Ethereum;
- Truffle – framework for compiling, migrating and testing smart contracts;
- IPFS – decentralized storage;
- uPort – identity management for easy login to dapps.
The dapps toolkit is comprised of 90% standard web development technologies and tools – much like this webpage. The major difference is the smart contract developed to utilize the blockchain. When you execute a smart contract on the blockchain, you need to pay for the compute power. Every contract compiles down to a precise set of machine instructions with an exact fee. In the language native to the cryptocurrency community, this fee is called gas.
There’s no universal price tag you can put on a dapp development project – it all varies depending on the platform you pick, the toolkit you use, the storage capacity the app needs, etc. Take a look at how the team at CoinMonks built their first dapp, and how much it cost to install the moving parts.
In their case, the gas price of storing data cost 20,000 gas for a single 32-byte word. They’d need to store 62,500 words which would equal 1,250,000,000 gas. At a gas price of 5 gwei, that would cost ~6.25 ETH (around $3,750 at the time of writing) in transaction costs. This is also ~300 times higher than the maximum gas allowed in a single block (8,000,000 at the time of writing). Even if there was a way to get such a contract deployed, the transaction costs for interacting with it would be too high to ever see any adoption.
Despite blockers and low adoption rates, there are several dapps with major audiences and wide utilization. It’s notable that the following 3 are positioned in the top 10 by adoption level, and all of them are built on Ethereum.
Cryptokitties represents one of the earliest attempts of deploying blockchain technology for recreational purposes. Cryptokitties is not a cryptocurrency but a blockchain-based virtual game that allows users to breed, collect, purchase, and sell virtual cats. Anyone who knows what a Tamagotchi is or owned one will know the shtick.
Cryptokitties are blockchain assets. While they are structured similar to most other tokens, each cryptokitty is unique and is not meant to be fungible. The game makes use of the Ethereum network. Smart contracts are employed to administer the aspects of the creation and trading, while each cryptokitty is a unique ERC-721 token and the person who owns a particular ERC-721 owns the kitty, can hold it, allow it to breed, or trade/sell it at any given time. Fun stuff!
Bancor is a decentralized platform that aims to solve the problem of illiquidity in the crypto market. It allows you to convert between any two cryptocurrencies at an automatically calculated price without the interference of a third party. The network brings liquidity to the majority of tokens which do not have a consistent supply and demand in exchanges.
Bancor’s protocol employs the concept of smart contracts to generate smart tokens which carry out the conversion between different ERC-20 tokens internally. Unlike other cryptocurrency exchanges, the protocol does not call for an exchange of tokens with a second party. Bancor Network Token (BNT) is held as a reserve by all other Smart Tokens, allowing for comprehensive connectivity and easy conversions.
The Primas dapp aims to connect creative people by building trust and rewarding the creation of and interaction with premium quality content. The Primas movement brings credibility, accountability, and humanity back to the Internet.
This dapp restructures the relationship between online authors and their audience through the use of blockchain technology and economic incentives. This is a decentralized content publishing platform based on the Decentralised Trusted Content Protocol (DTCP) with the said protocol functioning as the underlying infrastructure and the dapp serving as a platform for reading, publishing, distributing, recommending, engaging with content – and getting rewarded for it.
It is difficult to summarize dapps in a 1-2 sentence definition, but do keep in mind the following criteria for software to truly qualify as a dapp:
- Open Source – Source code of app is available to all;
- Decentralized – Uses a blockchain-like cryptographic technology;
- Incentive – App has crypto-tokens/digital assets for fueling itself;
- Algorithm/Protocol – Generates tokens and has an inbuilt consensus mechanism.
If you’re looking for help with putting together a plan for your first dapp or need a dedicated team to execute your vision – feel free to reach out to DataRoot Labs for assistance. We are always happy to help you create something truly unique and exciting!