Ethereum
Ethereum
introduction to Ethereum
DA app
Smarts contracts
Definition of Ethereum smart contracts and da app
History of Ethereum
Cases of da app development
CHALANGES D APP
Ethereum
conclusion
Ethereum, Smart Contracts, DApps
On February 28, 2012, an 18-year-old high school student wrote “If Bitcoin is to
achieve mainstream success, it cannot stop at the limited crowds of Internet geeks,
libertarians, and privacy advocates that it is hitting now, and it must find some way
to attract the mainstream public (Buterin 2012).” At the time, 1 Bitcoin was worth
4.87 USD or 400 JPY. The Initial Coin Offering (ICO) did not exist. Ethereum was
Whether you consider Bitcoin to be mainstream might depend on where you fall on
the adoption curve, but the fact that you are reading this now means Bitcoin has most
certainly reached beyond the “limited crowds of Internet geeks.” The author of that
quote was Vitalik Buterin in one of his early articles for Bitcoin Magazine. We will
look at his role and contributions shortly. First, however, we consider how we arrived
at the world of blockchain and DApps, starting with the concept of decentralization.
Decentralization is a fundamental part of the clever solution that gave us Bitcoin, the
first widely successful digital currency. For currencies we know well, like Japanese
points or air miles, we rely on a single authority like a central bank, an issuing
This article has been prepared for the study group “Blockchain and Society 5.0—The Creation of
a New Marketplace based on Distributed Consensus” at the Research Institute of Economy, Trade,
and Industry (RIETI) . I would like to thank RIETI and the study group for including me in this
project as well as Makoto Yano, Chris Dai, and Jeff Wentworth for their gracious support and input
company, or another trusted custodian to guarantee the value of our money. Bitcoin
does away with the need for a central authority by dividing the responsibility of
currency itself.
Gold used to be used as a decentralized currency because it too can be used without
referring to a central authority. Someone can trade gold for goods and services with
both parties recognizing its value. It has utility as a compact and fungible store of
that value. Because of the similarity in concept, many describe Bitcoin as “digital
gold” and Satoshi Nakamoto’s famous paper uses the metaphor of mining, just like
democracy, created in ancient Athens and developed through the French and American revolutions,
is practiced by the world’s most advanced economies. It is our most
NASA, for example, designed its space flight computers to be redundant by allowing multiple
systems to vote on the output of a computation (National Aeronautics
and Space Administration 1971). If one makes a mistake, the other computers will
override it by majority.
It took, however, quite some time for decentralization and currency to rejoin
forces since the retirement of gold as a day-to-day medium of exchange. The Knights
Templar, a medieval Catholic military order, are often credited with inventing modern
banking (Harford 2017). Twelfth century pilgrims would deposit their valuables with
the Templars and receive a paper letter indicating the entitled value. Carrying the
promise of gold was much more efficient and secure than carrying actual gold. Those
promises are not too different from the currencies and instruments we use today.
need for the Templars (or any other third party) by purely using technology. The first
to use that technology successfully was Bitcoin. It allows a simple peer-to-peer value
Ethereum
Vitalik Buterin became interested in Bitcoin at the encouragement of his father. After
researching Bitcoin, he began writing articles in exchange for the cryptocurrency and
started Bitcoin Magazine with another colleague. Eventually he had the revelation
that the platform could become very powerful by being generalized beyond simple
currency exchange into something that could perform any type of processing.
But it is a little trickier to imagine how adding complex processing to Bitcoin could
be useful. So let us approach it from the opposite angle and imagine your bank as a
Now imagine if you could give your bank special instructions to accomplish your
savings goals: “for the next year, only allow me to withdraw up to 100 dollars per
week.” Or suppose you wanted to create a shared account for your startup business
where the CEO has full control but wants an extra level of accountability for the
other officers. “Make an account with three owners. Alice can withdraw as much as
she wants anytime but Bob and Charles can only withdraw funds if one of the others
also approves.”
You could even automate the distribution of proceeds from your business “every
time 20 dollars or more is deposited to the account, give 5 each to Alice, Bob, and
Charles, and divide the remainder evenly amongst all other accounts on a special
list.” Each of those accounts might have its own special instructions! Maybe Bob
These are simple examples but something that would be really difficult to achieve
with an actual bank because of the number of humans and processes involved; they
are not equipped to provide that level of customization. It would involve power of
attorney with someone you really trust, a series of elaborate legal contracts and
independent bookkeeping, or all of the above. With a few lines of software, those
examples can be created and the pattern replicated to anyone else who wishes to
It was possible that Bitcoin could evolve into this limitless computer. The developers with whom
Buterin was working, however, were not receptive to this grand idea
so he decided to embark upon the project himself. Thus, Ethereum was conceived
around 2014 and launched in 2015 to extend the concept of Bitcoin. Ethereum has
its own currency Ether (ETH) , just like Bitcoin (BTC), but the platform can run any
set of instructions, not just “send and receive Bitcoin (Hacket 2016).”
Back in 1994, Nick Szabo, a computer scientist and legal scholar, created the term
protocol that executes the terms of a contract (Szabo 1994).” He envisioned a way of
Think of a vending machine. Without a shop clerk, it enforces the contract of selling
by Ethereum is the first computerized transaction protocol that does many of the
things Szabo was envisioning in his earlier writings. Computer programs that are
80 W. Metcalfe
run on the Ethereum platform are called smart contracts. They can enforce certain
types of agreements between parties, just like a vending machine, but they have no
intrinsically direct relationship with legal contracts. The Ethereum smart contract
became so popular that the Ethereum version of a smart contract has eclipsed the
original use of the term and added a lot of confusion as to what blockchain can do.
Why is it a “contract”? The original idea was that it constituted some kind of
agreement between parties. Why is it “smart”? The original idea was that it could
execute itself without the need for lawyers or people to be involved. So what is a
smart contract really? Since Ethereum declared itself “a decentralized platform that
runs smart contracts,” it really just refers to a special type of software program. It
may or may not have legal implications and still needs a traditional legal framework
up into virtual tokens, you still need traditional legal contracts (in the appropriate
3 What Is a DApp?
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
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).
contract and the flexibility of the platform. But to understand what really makes a
(UI); this could be a mobile app downloaded from an app store, a website (accessed
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
1. A user can see what is going to happen before executing a function or submitting
any data.
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
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.
Crypto Kitties 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
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
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
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
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
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.
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.
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
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
of tokens, such as broad access to capital with low management overhead, with the
There are a number of applications being pursued in the DApp space. So far, they
• Fundraising (ICOs)
(AML)
• Financial services
• Securitization of assets
• Gaming.
To provide financial or securities services like a bank or stock exchange in a preDApp world, the
barrier to entry is significant. The burdens of regulatory compliance,
84 W. Metcalfe
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
The exchange smart contract held over a billion dollars of ETH and tokens at its
peak.
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
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
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
operating at any given time. Each node stores an identical copy of all of the transaction
records. The node that validates the next batch of transactions, referred to as a block,
is called a mining node. The blocks are in turn validated by each mining node.
Every node in the Ethereum network stores a copy of all the software (smart
contracts) , data, account balances, and transaction state (Buterin 2014a). If you
think that sounds like a lot of data, it is. A copy of the production Ethereum node
at the time of writing is about 179 GB of data. A full archive of all transactions that
have occurred, including all intermediary states is 1.8 TB.2 For comparison, a typical
fashion. That is, nodes have connectivity with some but not all of the nodes in the
network. It takes about 40 s for a given transaction to be seen by 95% of the nodes
fee is submitted alongside the transaction and the mining node receives the fees for
the group of transactions) that cannot be calculated directly. That guessing is done
on hardware that can make millions of guesses per second. There is an expected
average number of guesses it will take to get to the solution and so the mining node
has effectively proven that it has executed a number of guesses. Hence mining is also
The mined block is distributed back to the network over the Internet and each
node will verify all the contained transactions before accepting it and passing it
along. Eventually all the nodes will store a copy of the system state that they all
agree upon. In this way, it is not so much a distributed computer like one would think
of in a traditional sense. It is more like one computer with many clones running in
parallel and storing the same information to make sure no one cheats. This is similar
to the redundancy of the aforementioned NASA space flight computers but on a much
larger scale.
Internet. NCSA Mosaic, launched in 1993, was the first graphical browser to popularize the World
Wide Web. This was followed by the PHP language, MySQL database,
and Apache web server in 1995. These types of tools allowed early technology
1999, 2001, and 2003, respectively. These made it possible for more enthusiasts
to participate in the Internet. But it was not until services like Facebook became
Many of the tools used to produce and consume DApps are still in their infancy. On
the user side of interacting with a DApp, you need a way to create and manage an
stored on your computer’s drive or in your smart phone’s memory. There are tools
to help you manage those keys. The most popular tool to manage DApp (Ethereum)
86 W. Metcalfe
accounts and interact with DApps is MetaMask,3 an extension for the Chrome,
Unlike vanilla web browsers, which automatically upgrade and are relatively
stable pieces of software, the new DApp browsers and plugins are often buggy.
Furthermore, the new interaction model with DApps including icons, jargon, and
There are also popular web-based wallets, such as MyEtherWallet,4 which allow
Interacting with a DApp requires you to copy and paste arcane computer code into
a web form.
Hardware wallets, such as Trezor5 and Ledger,6 are a third type of wallet. They
store the encryption keys in a tamper-proof module from which the digital keys
cannot be physically removed. That way a user needs to physically connect a device
and approve an action. The challenge here is that extra work can be required to set
up, understand, and use the device. For DApp and software developers, integrating
The aforementioned software and hardware are primarily for end users but are
environments (IDEs) such as Remix, testing frameworks such as Truffle,7 and the
complementary tools Ganache and Drizzle are the main tools used for testing. They
let you connect and deploy to a simulated Ethereum network on your own computer
the final stages of development, your smart contract can be deployed to one of these
networks for a fully decentralized run-through. Truffle and its components are young
like the rest of the toolset and the execution of tests can take more time and effort to
run compared with more mature web development frameworks. However, for reasons
explained below, thorough testing is an even more critical part of the development
In the early days of personal computers, most version upgrades took place by purchasing the latest
copy of a title and manually installing it. Today, much of the
software we use exists as an online web application and is upgraded instantly and
desktop and mobile phone software to enable automatic upgrades. Chrome browser,
The smart contract upgrade model is unlike either of these models. Ethereum
smart contracts are, by design, immutable once deployed. This implies a number of
considerations that are very different, even contradictory, to the prevailing philosophies of web
development. Consider Facebook’s (now retired) motto “Move Fast
and Break Things.” For the world of smart contracts, one might propose the motto
Much of the community and audience for DApps comes from a web centric background where
certain types of rigor have lost favor and been replaced with rapid
iteration and disposability. Testing has a prominent role in smart contract development. Besides
testing, the rather academic discipline of formal verification has made
its way into the blockchain discourse. Techniques used in industrial, mass transit, aerospace, and
other fields where mistakes have huge consequences can also be
applied. But systems will still need to grow, and, despite the best intentions, mistakes
will still be made.
Given that we expect and plan for platforms to evolve, there are a few ways, at
2. The smart contract uses replaceable underlying libraries to implement its functionality. This is
conceptually similar to the first technique and differs mainly in
technical nuances.
Both of these methods allow for a seamless transition to the new system (provided
there are no problems or compatibility issues), but it explicitly removes one of the
properties that makes smart contracts valuable. You do not know what will happen
in the future. In a basic token implementation, will someone rewrite the underlying
smart contract so that my assets can now be garnished by a party I may not trust? If
it is immutable and non-upgradeable, you can verify with some confidence that your
However, there is one more upgrade method that can work even if the deployed
3. You make a new smart contract and tell everyone to use it instead of the old one.
Take an example of a token backed by copper. The fictional company “Acme Copper
Coins” buys a bunch of copper and puts it in a warehouse somewhere. They create
88 W. Metcalfe
a smart contract to issue tokens against their copper supply. But perhaps they underestimated the
demand for their tokens and the smart contract was designed to only
Acme could make a new smart contract that supports up to 60,000 buyers and
declare they are copying your token balances from the old smart contract to the new
smart contract. From now on they are no longer going to honor redemptions of the
old tokens. This is ostensibly OK because my new token is worth the same as my
old token. However, there is a limit to what a blockchain system can directly control.
Beyond that limit, we still rely on the instruments and conventions that exist in our
present society such as traditional contract law, public reputation, and trust. We still
have to trust Acme that they actually have copper in their warehouse and that I can
trade in my tokens with them for copper if I want to. Moreover, we might expect the
DApps are still a developing technology. To be put into wide use, it is necessary to
overcome various issues, including consistency with regulations, data reliability, and
many applications that hope to migrate to the blockchain. Take real estate tokenization
for example. If Alice sends a token to Bob that represents a share in a particular
piece of property in Tokyo, then that transaction can take place in a way that is
guaranteed and verifiable by the technology. Alice could set a price and Bob can see
that if he pays that price, the token will reach his custody. Nothing can prevent Alice
from withholding the token or Bob from withholding payment. In this example, the
blockchain replaces the escrow function of a trusted third party. It does not, however,
replace the fact that there needs to be laws that tie the share of property to that digital
token.
Getting trustable data into the blockchain is also an issue. Let us say you wanted to
create an insurance scheme that would pay out if the temperature gets too cold. Perhaps farmers
would pay into this and receive compensation if the temperature drops
below a specified threshold. You could create a system where anyone could participate as an
underwriter and anybody could participate as a policy holder. Effectively
A system that feeds real-world data into the blockchain for use by smart contracts
oracle, you are implicitly trusting that oracle as a reliable source of data. If you
for telling the truth and disincentives for cheating, then you can create a more robust
system.
fairness. Because the internals of a smart contract and the participants’ attempts
to interact with it are visible to the blockchain network, a miner could gain an
smart contract-based lottery for highly coveted tickets to a sporting event relied on
seemingly unpredictable data such as the block creation time, the block miner could
Scalability
Like Bitcoin, Ethereum grew organically as an experiment. As more people join the
network, the demands on the technology become higher. Scalability is the potential
of the system to meet those growing demands. To frame the topics of scalability it
helps to understand the fee structure surrounding transactions and block creation.
Currently the target block creation time, a compromise between security, efficiency, and practical
network limitations, is 12 s between blocks (Buterin 2014). To
maintain this rate, the mining difficulty is automatically adjusted by the Ethereum
to the network. This fee is measured in units called gas and relates to the size and
complexity of the transaction. The miners claim a per-transaction fee as part of their
incentive to secure the integrity of the blockchain and the fee structure helps balance
There is a block gas limit agreed to by mining nodes, which caps the maximum
amount of fees that can be accepted into a block. This is used to manage the bandwidth, cost of
storage, and cost of computation per block. That gas limit is about
8,000,000 at the time of writing, and with an average transaction size of about 80,000
gas, about 100 transactions will fit in a block. Hence, the network can currently
• Transaction throughput
8https://etherscan.io/.
90 W. Metcalfe
and receiving tokens, that the blockchain network can process per unit of time.
This number is often compared with Visa’s 24,000 transactions per second (Visa,
were made for different purposes and even then, an Ethereum payment transaction
• Computational cost
Block validation and mining are costly in terms of computer hardware, electricity,
and ultimately fees paid by the users of the network as explained above. All the
mining nodes in the network perform all the transaction computations and this is
inefficient.
• Data storage
In Ethereum, currently all full participants keep a complete record of all blockchain
The areas where blockchain seems slower or less efficient than its nonblockchain
decentralized manner. There is, of course, active work and research being done to
mathematical answer to verify a block (as in mining) , users will be able to pledge
Ethereum for a period of time to gain voting rights on block confirmation and receive
a reward in exchange for helping to secure the integrity of the blockchain network.
They cannot use this pledged Ethereum and they could forfeit their stake if they
cheat.
The computation work and data storage can be split amongst different groups of
nodes. That way both computation and storage can be divided with a sufficient level
different players. Mobile devices, for example, lack the storage capacity to participate
in most public blockchains. A light node can contain the data required to perform
We have been looking mostly at Ethereum; however, there are a number of competing technologies
being developed of which Ethereum is just one. Not all of these
technologies will proliferate. If we look at the late 1980s and early 1990s, Mintel
was a popular network in France with similar models attempted around Europe and
other parts of the world, while CompuServe existed in the United States. Eventually,
However, older technologies do not always disappear just because newer or better technologies
emerge. Legacy technologies can continue to exist alongside newer
ones. For example, even though voice and video applications such as Skype or Google
Hangouts allow you to communicate over the Internet, the enduring telephone network shows no
signs of disappearing. Not only do the networks coexist they even
seamlessly integrate. You can make a phone call from Skype or dial into a Google
Hangouts conference. Established PoW systems may continue to exist and even
In the coming months and years of blockchain evolution, we expect some of these
Bitcoin and Ether might trade with each other under a system of shared security
(Parker 2019).
The UIs in contemporary DApps are still accessed in a centralized fashion. In one
way this is OK in the philosophy of decentralization. The critical parts are decentralized on the
blockchain. Ideally the whole application, including the images and
visual UI components, are decentralized as well. The blockchain can be used to help
secure and distribute those files, not just the programs and tokens. The InterPlanetary
File System (IPFS)10 is one example of a distributed data storage protocol that uses
the blockchain to do that. In the future we may see DApps become fully decentralized
In the meantime, the platforms we know will continue to evolve. Proposals for
changes to Ethereum can be submitted by anyone and each new proposal is numbered based on its
order of submission. EIP-20, the 20th proposal (Vogelstellar and
Buterin 2015), became the ERC-20 standard that helped facilitate the ICO boom.
With ERC-20, token creators, token exchanges, and Ethereum wallet software could
implement a common interface and all these different parties could work together
making interoperable products. It is similar to how Sony and Philips released the
CD Audio standard so that manufacturers of CDs and CD players, along with music
producers, music stores, and consumers, could all use the same type of disc.11 As of
May 2019, the most recent proposal number for Ethereum was 2015.
Vitalik’s early article in Bitcoin Magazine was exploring “If Bitcoin is to achieve
mainstream success…”. For centuries we have used money in nearly the same way it
was invented—trading pieces of metal for goods and services. The public blockchain
is only a few years old and mainstream awareness of blockchain continues to grow.
conclusion
The purpose of ether, the cryptocurrency, is to allow for a market for computation. Such a market
provides an economic incentive for participants to verify and execute transaction requests and
provide computational resources to the network.
Thus, with smart contracts, developers can build and deploy arbitrarily complex user-facing apps and
services such as: marketplaces, financial instruments, games, etc.
A dapp has its backend code running on a decentralized peer-to-peer network. Contrast this with an
app where the backend code is running on centralized servers.