Ethereum for Decentralized Application

What is a Decentralized Application?

Internet users don't have sole control over the data they share on today's websites.

Ethereum is unique in that it attempts to wield the blockchain as a way to correct what its designers believe is a problematic part of the internet's design.

It's like a "decentralized appstore" where anyone can publish their unstoppable apps (dapps), which unlike today's apps (think Gmail or Uber) don't require a middleman to function or to manage a user's information.

Dapps connect users and providers directly.

One example is to use this design for a decentralized Twitter that's resistant to censorship. Once you publish a message to the blockchain, it can't be erased, not even by the company that created the microblogging system.

There isn't one definition of a dapp, though, as it's a newer concept.

A couple of main characteristics are that they're open source and don't have a central point of failure.

Three types

With this new technology out in the wild, ethereum advocates might feel electrified by the thought of decentralizing "all the things." But the types of applications that users can build with the computing platform might be somewhat narrow.

The ethereum white paper splits dapps into three types: apps that manage money, apps where money is involved (but also requires another piece), and apps in the "other" category, which includes voting and governance systems.

In the first type of app, a user may need to exchange ether as a way to settle a contract with another user, using the network's distributed computer nodes as a way to facilitate the distribution of this data.

The second type of app mixes money with information from outside the blockchain.

For example, a crop insurance application that's dependent on an outside weather feed. (Say a farmer buys a derivative that automatically pays out if there's a drought that impacts his work.)

To execute, these smart contracts rely on so-called "oracles" that relay up-to-date information about the outside world. (Though, it's worth noting that some developers are skeptical that this use case can be done in a decentralized way.)

If bitcoin can do away with financial authorities, is it possible to do the same for companies and other types of organizations?

Decentralized autonomous organizations are one particularly ambitious breed of dapp (this is explained further in 'What is a DAO?').

The goal is form a leaderless company, program rules at the beginning about how members can vote and how to release company funds and then... let it go.

Authored by Alyssa Hertig; images by Maria Kuznetsov


--------------------------------------------- What is a DAO? ------------------------------------

Imagine this: a driverless car cruises around in search of passengers.

After dropping someone off, the car uses its profits for a trip to a charging station. Except for it's initial programming, the car doesn't need outside help to determine how to carry out its mission.

That's one "thought experiment" brought to you by former bitcoin contributor Mike Hearn in which he describes how bitcoin could help power leaderless organizations 30-or-so years into the future.

What Hearn described is one dream use case for a decentralized autonomous organization, or a DAO, an idea that swirled through the community not long after bitcoin was released in 2009. The thought is that if bitcoin can do away with financial middlemen, then maybe companies and other organizations can one day operate without hierarchical management.

In short, DAOs aim to hard-code certain rules that a company would from the get-go. This could be setting aside a certain percentage of earnings for a cause or determining a process by which such a rule could be changed.

In the abstract, this is similar to how a normal company works. The big difference is that the rules of normal companies are not enforced digitally.

The DAO

The best-known attempt at creating such an organization was called "The DAO."

Launched in 2016, the project failed in a matter of months, but it's a good example of what people have in mind when they talk about the technology.

The plan was for participants to receive DAO tokens, then vote for which projects to fund. For selecting projects to invest in, it relied on the "wisdom of crowds."

There are a few ways that The DAO intended to improve on the governance of today's organizations:

  • Anyone with internet access could hold DAO tokens or buy them
  • DAO creators could set whatever rules they voted on.

In abstract, DAOs function similarly. They rely on smart contracts, or pre-programmed rules that describe what can happen in the system.

 

These smart contracts can be programmed to carry out a variety of tasks, such as doling out funds after a certain date or when a certain percentage of voters agree to fund a project.

Some proponents say it can work for an organization where any sort of decision needs to be made, not just those related to money.

Essentially, they see it as a way to cryptographically guarantee democracy, where stakeholders can vote on adding new rules, changing the rules, or ousting a member, to name a few examples.

Security

It's easy to see why "unstoppable code" could pose a security problem.

Today, it's difficult to change a DAO, or the smart contracts underpinning it once it's deployed to the ethereum blockchain. This is "good," because one person or entity can't change the rules.

But it's also potentially a huge disadvantage. If someone spots a bug in a running DAO, developers can't necessarily change the code.

That was the problem with The DAO. Observers watched the attacker slowly drain of funds, but they couldn't do anything to stop it. (Technically, the hacker was following the rules as they were deployed).

Ethereum's lead coders reversed the transaction history to return funds to their owners, which was a controversial decision leading to a rift in the community.

The best way to handle a similar future situation is still up to debate.

=================== How Do Ethereum Smart Contracts Work? ==========

Like many ideas in the blockchain industry, a general confusion shrouds so called 'smart contracts'.

A new technology made possible by public blockchains, smart contracts are difficult to understand because the term partly confuses the core interaction described.

While a standard contract outlines the terms of a relationship (usually one enforceable by law), a smart contract enforces a relationship with cryptographic code.

Put differently, smart contracts are programs that execute exactly as they are set up to by their creators.

First conceived in 1993, the idea was originally described by computer scientist and cryptographer Nick Szabo as a kind of digital vending machine. In his famous example, he described how users could input data or value, and receive a finite item from a machine, in this case a real-world snack or a soft drink.

In a simple example, ethereum users can send 10 ether to a friend on a certain date using a smart contract (See our guide "What is Ether?").

In this case, the user would create a contract, and push the data to that contract so that it could execute the desired command.

Ethereum is a platform that's built specifically for creating smart contracts.

But these new tools aren't intended to be used in isolation. It is believed that they can also form the building blocks for 'decentralized applications' (See: "What is a Dapp?") and even whole decentralized autonomous companies (See: "What is a DAO?')

How smart contracts work

It's worth noting that bitcoin was the first to support basic smart contracts in the sense that the network can transfer value from one person to another. The network of nodes will only validate transactions if certain conditions are met.

But, bitcoin is limited to the currency use case.

By contrast, ethereum replaces bitcoin's more restrictive language (a scripting language of a hundred or so scripts) and replaces it with a language that allows developers to write their own programs.

Ethereum allows developers to program their own smart contracts, or 'autonomous agents', as the ethereum white paper calls them. The language is 'Turing-complete', meaning it supports a broader set of computational instructions.

Smart contracts can:

  • Function as 'multi-signature' accounts, so that funds are spent only when a required percentage of people agree
  • Manage agreements between users, say, if one buys insurance from the other
  • Provide utility to other contracts (similar to how a software library works)
  • Store information about an application, such as domain registration information or membership records.

Strength in numbers

Extrapolating that last point, smart contracts are likely to need assistance from other smart contracts.

When someone places a simple bet on the temperature on a hot summer day, it might trigger a sequence of contracts under the hood.

One contract would use outside data to determine the weather, and another contract could settle the bet based on the information it received from the first contract when the conditions are met.

Running each contract requires ether transaction fees, which depend on the amount of computational power required.

As explained in our guide "How Ethereum Works", ethereum runs smart contract code when a user or another contract sends it a message with enough transaction fees.

The Ethereum Virtual Machine then executes smart contracts in 'bytecode', or a series of ones and zeroes that can be read and interpreted by the network.

===================== How Will Ethereum Scale? ====================

Like other public blockchains, ethereum intends to support as many users as it can.

The problem is that, today, we don't really know the limits of the platform.

Because of a hard-coded limit on computation per block, the ethereum blockchain currently supports roughly 15 transactions per second compared to, say, the 45,000 processed by Visa.

This limitation of ethereum and other blockchain systems has long been the subject of discussion by developers and academics.

While ethereum developers might like to highlight how the flexible smart contract platform differs from bitcoin, for example, it isn't unique in regards to scalability.

As disappointing as that might sound, there's hope in proposed solutions that haven't made it into the official software yet.

Why is scaling so difficult?

Ethereum and bitcoin use a combination of technical tricks and incentives to ensure that they accurately record who owns what without a central authority.

The problem is, it's tricky to preserve this balance while also growing the number of users (especially to the point where average people can use the system to purchase coffee or run applications).

That's because ethereum depends on a network of 'nodes', each of which stores the entire ethereum transaction history and the current 'state' of account balances, contracts and storage. This is obviously a cumbersome task, especially since the total number of transactions is increasing approximately every 10-12 seconds with each new block.

The worry is that, if developers raise the size of each block to fit more transactions, the data that a node will need to store will grow larger - effectively kicking people off the network. If each node grows large enough, only a few large companies will have the resources to run them.

Despite the inconvenience, running a full node is the best way for users to take advantage of privacy and security. Making full nodes more difficult to run would further limit the number of people that can verify transactions themselves.

In other words, decentralization and scalability are currently at odds, but developers are looking for ways around this.

Sharding

There are a few ethereum scaling projects in the works, each of which tackles a different scalability problem.

As mentioned, one problem is that each node needs to store the updated state of each account on the network. 'Sharding' draws from a traditional scaling technique called 'database sharding', which effectively breaks a database into pieces and puts each part on a different server.

The goal of sharding is to move away from requiring 'full' nodes - those which store the full state of the network and every transaction that occurs.

Instead, each node stores a subset of this data and only verifies those transactions. If a node needs to know about transactions or blocks that it doesn't store, then it finds another node with the information it needs.

The problem here is that the process isn't exactly trustless, since, in this model, nodes need to rely on other nodes.

Ethereum wants to solve this problem using 'cryptoeconomic incentives' that drive actors in a system to act a certain way - in this case, ensuring that nodes are passing on valid information to other nodes.

Off-chain transactions

A possibly more ambitious capacity-expanding technology borrows from bitcoin's Lightning Network, a proposed top-layer to the blockchain that mirrors how the multi-layered internet works.

Lightning-style 'off-chain' transactions could bring the technology's capabilities closer to how users were told it was 'supposed to be' - fast and nearly limitless in supply, while still not requiring users to trust any intermediary.

According to this vision, most transactions will be made on off-chain micropayment channels, lifting the burden from the underlying blockchain.

The reason that this works, in theory, is that either party can kick the transaction back to the blockchain anytime they want, giving both parties the ability to end the interaction.

With this add-on, ethereum's computational limit doesn't need to increase too much, and the hope is that it will still be reasonable for regular ethereum enthusiasts to run a full node.

How long will it take to scale?

This is a tricky question, as there's still a lot of experimentation happening on the scaling front.

In creator Vitalik Buterin's words, the long-term goal is for the platform to be able to process transactions at "Visa-scale transaction levels" or beyond.

However, as skeptical observers are keen to point out, this is based on Buterin's analysis, and on techniques that have yet to be deployed on a public blockchain.

In sum, although ethereum currently can only handle a handful of transactions per second, its architects have high hopes for the future.

=========================== What is an ICO? =======================

ICO stands for "initial coin offering," and refers to the creation and sale of digital tokens.

In an ICO, a project creates a certain amount of a digital token and sells it to the public, usually in exchange for other cryptocurrencies such as bitcoin or ether.

The public could be interested in the tokens on offer for either or both of the following reasons:

1) The token has an inherent benefit - it grants the holder access to a service, a say in an outcome or a share in the project's earnings.

2) The benefit will be in increasing demand, which will push up the market price of the token.

Tokens, especially those of successful sales, are usually listed on exchanges, where initial buyers can sell their holdings and new buyers can come in at any time.

As a type of digital crowdfunding, token sales enable startups not only to raise funds without giving up equity, but also to bootstrap the project's adoption by incentivizing its use by token holders.

Buyers can benefit from both the access to the service that the token confers, and from its success through appreciation of the token's price. These gains can be realized at any time (usually) by selling the tokens on an exchange. Or, buyers can show their increasing enthusiasm for the idea by purchasing more tokens in the market.

History

The first token sales appeared in 2014, when seven projects raised a total of $30 million. The largest that year was ethereum - over 50 million ethers were created and sold to the public, raising over $18 million.

2015 was a quieter year: Seven sales raised a total of $9 million, with the largest - Augur - collecting just over $5 million.

Activity started to pick up in 2016, when 43 sales - including Waves, Iconomi, Golem and Lisk - raised $256 million. Included in that total is the infamous sale of tokens in The DAO, an autonomous investment fund that aimed to encourage ethereum ecosystem development by allowing investors to vote on which projects to fund. Not long after the sale raised over $150 million, a hacker siphoned off approximately $60 million worth of ether, leading to the project's collapse (and a hard fork of the ethereum protocol).

The DAO's failure did not deter the increasingly ebullient enthusiasm for the new asset type, and in December the first fund dedicated to token investment got significant backing from old-school venture capitalists.

2017 saw an explosion of activity - 342 token issuances raised almost $5.4 billion - and thrust the concept to the forefront of blockchain innovation. Sales selling out in increasingly shorter periods of time fuelled the frenzy, and in the haste to get "in on the action," project fundamentals became less important to would-be investors.

Along with increased attention came increased scrutiny, and concern about the legality of token sales came to a head when the U.S. Securities and Exchange Commission (SEC) put out a statement saying that, if a digital asset sold to U.S. investors had the characteristics of a security (ownership rights, an income stream or even expectation of a profit from the efforts of others), it had to abide by U.S. securities laws.

By the middle of the year, ICOs had overtaken venture capital as the main source of funds for blockchain startups as they flocked to what appeared to be an easier and faster way to raise a huge amount of money without sacrificing equity in the company.

Benefits

To the issuer:

  • Access to seed funding, much faster and with fewer restrictions than via the venture capital route
  • The opportunity to create new, decentralized business models
  • A base of participants incentivized to use and test the service, and a boot-strapped ecosystem
  • No loss of equity in the project (unless the tokens stipulated ownership sharing)
  • A faster funding process
  • More arbitrary limits to the amounts collected

To the token holder:

  • Access to an innovative service
  • Possible gain through an increase in the token's price
  • Participation in a new concept, a role in developing a new technology

Risks

For the issuer:

  • Uncertain regulation (possible post-issue clamp-down, fine or even sentencing)
  • Unstable investment (a sell-off by disgruntled users could affect the token price and the viability of the project)
  • Little idea of who the token holders are (unlike shareholders)

For the holder:

  • No guarantee the project will get developed
  • No regulatory protection (investment at risk)
  • Often scant information about underlying fundamentals
  • Little transparency on token holding structure

Outlook

At time of writing, the growth in initial coin offerings looks set to continue. As the technology matures and the market gains more experience with the concept, and as investors become more sophisticated, the quality of the tokens and the viability of the business models are likely to improve.

Regulators will most likely pay more attention to token sales as the next few years unfold, perhaps even passing blanket laws - or amending existing ones - to protect investors from flimsy or fraudulent sales.

Meanwhile, new types of business models will continue to emerge, fuelled by a new funding system and operating structure. The infrastructure that supports token sales will also continue to grow, with reputable advisors morphing into the "investment banks" of the sector, and new dedicated platforms increasingly enhancing the user experience.

CoinDesk will keep you up-to-date on the latest developments in digital tokens and blockchain project funding. We also offer quarterly summaries in our regular State of Blockchain reports, which you can download for free. And you can keep tabs on completed ICOs with our colourful, interactive ICO tracker.

Comments