What is it that emerges from the ability to manipulate numbers and data in a trustless manner provided by smart contracts and what would we call such an application? We can now decouple the application from an individual company or owner and create a “decentralized application” also known by the contraction DApp. It can be pronounced with two syllables as “dee-app” or with one syllable as “dapp.” Capitalization is not always consistent (as in Dapp) and the D is occasionally written with Ð (as in Ðapp), where Ð is the Norse letter eth (ETH News).
Decentralized applications are often described as trustless or peer-to-peer with the distinguishing characteristic that there is no single server or entity controlling it like in a client–server model. We understand the attractive properties of the smart contract and the flexibility of the platform. But to understand what really makes a DApp different from a centralized application, it is worthwhile considering what goes into a contemporary centralized application.
A prototypical modern software application includes at least one user interface (UI); this could be a mobile app downloaded from an app store, a website (accessed from a computer or mobile device), or a desktop application installed on a computer. It usually involves data. This data could be provided by a single group or company, like a weather app using a national weather organization, or like in a social networking app it could be provided by the end users themselves. Finally, it involves some sort of manipulation of the data or computation.
A DApp uses the blockchain at the core of its data storage and processing. This is implemented using a smart contract. Currently the UI for a DApp is usually created using a traditional website model. So one can think of a complete DApp as a website plus one or more smart contracts. A DApp has the same general properties as a traditional application. The main difference, therefore, is that the data and computation are provided by the blockchain.
3.1 DApp and Blockchain
The merit of using blockchains for DApps are as follows:
A user can see what is going to happen before executing a function or submitting any data.
Once the user has performed an interaction, it cannot be withdrawn, tampered with, or deleted.
By themselves these properties are useful. This embodies decentralization at a protocol level. However, this facilitates another type of decentralization that is a driving philosophical motivation behind DApps:
Governance can be decentralized so that the users of the application participate directly in its management.
At this point, we consider two examples—one makes use of the first two properties, and another that helps demonstrate the idea of governance, or structural, decentralization.
CryptoKitties is one of the more famous decentralized applications (Bowles 2017). It is a game created by Axiom Zen that allows players to trade, breed, collect, and sell virtual cats. Unique or scarce tradeable items are a well-used pattern in gaming, both traditional and digital; however, in CryptoKitties, the virtual items are recorded on the blockchain. In this way, the actions are transparent and guaranteed, but there is nothing particularly decentralized about the ethos of the application.
Another example of a DApp is the DAO (decentralized autonomous organization) (Securities and Exchange Commission 2017). The application was governed by tradeable tokens that had voting rights. In this sense, the mechanism of the application was guaranteed by the decentralized Ethereum layer, but the concept itself was designed for decentralization of authority.
3.2 Coins, Tokens, and DApps
The terms “coin”, “token” , “cryptocurrency”, “virtual currency” , “digital currency” and, more recently, “crypto asset” are now frequently used in similar or interchangeable ways. We could continue to generate similarly exotic terminology by pairing different “crypto” adjectives with different “coin” synonyms! It is enough to confound even the most diligent financial linguist. Therefore, it may be quite some time before we all agree on the correct language to use, both casually and legally. For now, however, we take a practical approach. We can break apart the different types of technologies and categorize them by the most accepted terms even though there may be some overlap in real world usage.
The primary distinction we will make is between “coins” and “tokens.” We can describe coins as a base currency. When a network, such as Bitcoin, includes the currency as an integral part of the software, we think of that currency, in this case Bitcoin, as a coin. As we know, Bitcoin was created for the primary purpose of storing and exchanging funds. In Ethereum, the currency Ether is also built into the platform and is therefore a coin. This applies to other platforms derived from Bitcoin such as Litecoin or Monero. Coins are also used to incentivize good behavior and secure the platform. Coins are used to pay for computation and storage resources and are given to mining nodes as rewards for their work.
We can describe tokens as the units built on top of one of these base networks as a secondary feature. They are a way to take advantage of a robust and established blockchain network to create new digital assets. There is no need to convince users to join a new network or run new software. The token runs on and is secured by an existing network.
One of the earliest attempts to do this was with “colored coins” on Bitcoin (Bradbury 2013). Think of it like taking a poker chip and marking it with a special red stamp. It is still difficult to make a forgery, but now you can use it for another purpose, like a coupon for a free bowl of ramen. Mastercoin (which became Omni) was another attempt to extend Bitcoin by storing extra data along with the native Bitcoin transfer transactions (Buterin 2013). These were both creative attempts to leverage the technology but have some inherent difficulties in aligning with a platform that has its own independent design goals. Bitcoin, for example, introduced an upgrade to reduce the number of tiny transactions. This was done to prevent malicious degradation of the network, however, colored coins are optimized to minimize cost by making use of such tiny transactions.
Ethereum, having been designed from the ground up as a platform for running arbitrary computer programs, lent itself naturally to the creation of tokens on top of its platform. Using an Ethereum smart contract, a software developer can (comparatively) easily create a token with any amount of supply, distribution goals, or custom logic. The Ethereum smart contract formed the basis for most of what we call tokens today.
Tokens, like coins, do not have any innate properties besides their bookkeeping ability. However, they have a few basic genres under which they commonly fall. You may have heard the terms “utility token” or “security token.” The reason this distinction is made has to do with how the tokens are used to raise capital for a project or business. Anyone can create tokens from nothing and sell them. The way Ethereum raised money for its development was by selling the platform’s future currency (Ether) for Bitcoin. The concept was that Ether could be used to pay for the submission, storage, and execution of smart contracts and related data. It was this “utility” that would make it valuable in the future and a worthwhile investment. It could, of course, also be used simply as a medium of exchange like Bitcoin.
Inspired by the success of Ethereum, many other projects raised money by selling their own tokens. The sale of fractional ownership in a project to the public to raise funds, in exchange for a promise of a share of the future profits, is an economic practice dating back hundreds of years. The potential for defrauding or disappointing investors by lying about a project’s potential, absconding with the money, or simply failing to execute, means we have sophisticated laws and regulations in economically advanced societies to prevent good people from being duped into funding bad projects.
Selling cryptocurrency-based tokens proved to be an attractive way to raise a lot of money compared with traditional financing. ICO funding reached a peak in the first quarter of 2018 where blockchain startups raised an astronomical $6.9 billion through ICOs compared with $0.5 billion through equity funding (CB Insights 2019). To avoid running afoul of existing securities laws, many projects took great pains to indicate the tokens they were selling were utility tokens and therefore not subject to existing regulations. There are a number of conflicting legal opinions on the subject. Whether the regulators eventually decide there is a place for utility tokens (and what that place is), the markets as of mid-2019 have had their fill. The span of 2017–2018 was an exceptional period and there is effectively no current interest in such projects (Vigna 2019).
But what about security tokens? A traditional security means attaching a paper or digital legal agreement to a physical object or to a company or project. This could be shares in a company like Toyota or a government bond that pays interest. These types of instruments are things that could be easily modelled or represented in the blockchain. If we allow tokens to represent securities, we can draw on the advantages of tokens, such as broad access to capital with low management overhead, with the reliability and responsibility of legally regulated instruments.
3.3 The Case for DApps
There are a number of applications being pursued in the DApp space. So far, they mostly fall under the following general areas:
We now examine some of these applications.
To provide financial or securities services like a bank or stock exchange in a pre-DApp world, the barrier to entry is significant. The burdens of regulatory compliance, staff, infrastructure, and institutional relationships required to operate are staggering. In the United States, the estimates to start a bank, for example, are $12 to $20 million in capital (Harrington 2016).
Using a smart contract-based system, where the deposits are governed by publicly visible computer code, anyone with the ability to write software can create a system that securely handles large amounts of assets. An ambitious software developer in 2016 created a working cryptocurrency exchange called EtherDelta (Winters 2016). The exchange smart contract held over a billion dollars of ETH and tokens at its peak.
One of the frequently cited goals of decentralized projects is “self-ownership” of data. After so many security breaches and revelations of large companies selling the personal information of users, DApps provide a chance for users to have more control over their data.
A well-designed smart contract system could allow regulators or lawmakers to authorize or monitor certain activity on a platform. Imagine a sales program where merchants and consumers could register in a marketplace. Each participant would have a unique identity in the program and transactions could be posted and settled directly through the program. Although it might sound undesirable to some less than scrupulous audience members, every transaction could be automatically taxed to the appropriate level by the government. When tax rates change, the government could simply adjust the rate in the smart contract directly and there would be no onerous actions required by merchants to implement the new rates. Moving control to a common system instead of disparate bureaucratic entities has great potential to align societal and commercial interests.