Blockchain technology has attracted tremendous attention in both academia and capital market. However, overwhelming speculations on thousands of available cryptocurrencies and numerous initial coin offering scams have also brought notorious debates on this emerging technology. This paper traces the development of blockchain systems to reveal the importance of decentralized applications (dApps) and the future value of blockchain. We survey the state-of-the-art dApps and discuss the direction of blockchain development to fulfill the desirable characteristics of dApps. The readers will gain an overview of dApp research and get familiar with recent developments in the blockchain.
future dApps demand a blockchain platform that fulfills the following desirable characteristics:
1) Low Latency
Long transaction delay has been a critical issue since the birth of Bitcoin. Since the average time for the Bitcoin nodes to mine a block is 10 minutes, the average transaction confirmation time is around an hour (as a user typically waits for 6 blocks). Even though the response latency has been significantly reduced to around 15 seconds in Ethereum, a sufficiently small latency to support interactions of general applications is yet to be achieved. In fact, longer delays frustrate users and make dApps less competitive with existing non-blockchain alternatives. For instance, a common user in a blockchain-based social network website will typically require the system to respond to his/her like or share action to a post within 2 to 3 seconds.
2) High Throughput
Modern web-based systems, e.g., social networks, massive multi-player online games, online shopping malls, require the blockchain platform to support millions of active users on a daily basis. Therefore, the capability of handling a large amount of concurrent traffic is critical in a dApp platform. However, current blockchain platforms still suffer from throughput bottlenecks. For example, CryptoKitties, which gained a lot of popularity on its launch, at one point account for nearly 30% of all transactions on Ethereum, which resulted in a peak backlog of about 30,000 pending transactions.
3) Fast Sequential Performance
In system designs, dependencies among software components or logical steps restrict the execution of an application. Some procedures in certain applications, such as updates on one particular piece of data, cannot be implemented in parallel, due to the sequential dependent on the results produced by previous steps. In blockchain systems, the sequential performance of a dApp is determined by the response delays from all nodes in the network, since all transactions/operations should be executed and verified by all nodes to reach a consensus. Therefore, the blockchain platform that hosts dApps needs fast sequential performance to handle high volumes.
Many current blockchain systems depend on Internet connectivity in order to verify funds quickly. Systems participating in a particular blockchain network may go offline periodically. However, if a subset of devices disconnect from the Internet and exchange signed transactions with each other, there is no guarantee that double spending has not occurred if another device remaining online with the same key-pair as an offline device has the ability to simultaneously spend. For example, consider a group of people take a bus trip to a remote village with their mobile phones. The village has no Internet access. A dApp could be designed such that it could accept offline transactions which are signed for payment for goods. A person on the bus could send their payment for a coconut this way to a vendor using a local Bluetooth connection. When this signature eventually is relayed to the Internet at a later time, the payment would be successful, unless the person on the bus also had the same key-pair being used back in their home computer, and spent the money before they went offline. This problem becomes more complicated when large groups of devices fragment the network. Since many of the blockchains rely on over 51% of devices to co-operate, there are potential malicious attacks possible whereby an attacker could attack the Internet infrastructure strategically in order to divide and conquer with 51% attacks , .
1) Low Transaction Fee
As part of the incentives for block producers, the concept of transaction fee was born with Bitcoin. In classic blockchain systems, e.g., Ethereum, transaction fees can also be a way to prevent spams or malicious executions of smart contracts, since intruders need to spend their tokens to start their attacks. However, transaction fees become a barrier for transactions with relatively small monetary values, due to the large proportion of the transaction overheads. In the current blockchain ecosystem, the dApp developers are struggling with the high transaction fees they need to pay when they deploy and execute their smart contracts.
2) Modern Free Internet Business Model
Another critical issue related to transaction fees is the business model. By default, the action initiator, e.g., the invoker of the smart contract in Ethereum, need to purchase tokens before they can utilize the system. This limits the user base of the dApp, especially since cryptocurrency has yet to achieve universal acceptance in society. In fact, the modern Internet business model is based on the fast increase of user popularity, which implies that the dApp developers should have the flexibility to offer users free services. In other words, the users do not need to purchase or hold tokens to use the platform, which leads to more widespread adoption. Future dApp can adopt the modern Internet business model by offering free services to users and share the profit of the platform with its users and its content producers.
1) Enabling System Upgrades
As blockchain technologies are still in their infancy, it is inevitable that a blockchain system will require upgrades from one version to the next. However, due to the nature of P2P consensus, the hard fork is the only approach for current blockchain systems to upgrade themselves, which may result in the loss of participating network nodes. Another potential issue for a hard fork is that there will be multiple similar tokens sharing a common origin, which will confuse users. For example, like Bitcoin and Bitcoin Cash, ’Ethereum’ (ETH) and ’Ethereum Classic’ (ETC) forked from each other in July 2016. To this end, a system upgrade mechanism is needed for next-generation blockchain systems, which facilitate version control of dApps deployed over them.
2) Easy Bug Recovery
Security issues in smart contracts has been investigated in many previous works –. Though most bugs and system flaws can be prevented by careful implementation and intensive tests, it is virtually impossible to guarantee that a non-trivial smart contract is bug-free. The situation is exacerbated by the high complexity of some dApps. However, the immutable nature of blockchain data prevents the modification of dApps, which makes the delivery of bug patch impossible. Therefore, the blockchain platform must provide flexibility in supporting bug recovery approaches for dApp developers, especially for those critical issues that may crush the whole ecosystem in dApps.
Many blockchain dApp systems are struggling with challenges around identity. Some systems such as ZCash27 and Monero28 try to hide the identity of users and transactions. There has also been recent work to add the ability for anonymity on top of existing blockchains, particularly in use-cases like Initial Coin Offerings (ICOs), where money is being fund-raised through smart contracts and regulatory bodies require the Know Your Customer (KYC) and the Anti Money Laundering (AML) checks  without giving up the identity of the contributors to the entire global network. On the other hand, there is a movement to create one common identity such as Blockstack29 that can be used across all dApps in a similar way that openID30 was used to create a common identity across web services.
New to trading? Try crypto trading bots or copy trading