Many people have at least heard of Bitcoin, by far the #1 cryptocurrency by market cap. But few outside of crypto-enthusiast circles are acquainted with Ethereum, the crypto world's #2 rising star. This post aims to give a simple overview of what Ethereum is and why you should care.
Simply put, Ethereum takes the core blockchain technology that lies at the heart of Bitcoin, and evolves it. You know how floppy disks were replaced by CDs, which were replaced by DVDs, which were replaced by Blu-ray? Well, picture Bitcoin as a floppy disk. It's slow and has limits in regards to how many transactions can be processed at a time. Then Ethereum is a CD (maybe an improved future version of it will become the DVD and Blu-ray in this evolutionary analogy). It's much faster, and allows for higher transactional volume.
Everything Bitcoin can do (digital store of money, sending / receiving payments), Ethereum can also do. But Ethereum does it better, more efficiently. Just as a CD does everything a floppy disk does (storing / retrieving data), but once you've been introduced to the wonders of CDs, you'll never go back to using those archaic floppy disks. Seriously, I bet a lot of you young uns have never even seen a floppy disk - which makes me wonder if this is the best analogy to be using, but oh well.
Got it, Ethereum's a better Bitcoin. So what? What makes Ethereum so special?
Glad you asked! Many so-called "altcoins" have attempted to improve on Bitcoin's technology, so that by itself doesn't make Ethereum stand out from the pack.
Let's trot out a second analogy. Imagine Bitcoin is a calculator. It's good at what it does, but that's it. You can't really extend it to new & interesting use cases. It will always be a calculator. Tried & true, through & through.
Ethereum, on the other hand, is an Excel spreadsheet with macros. You can use it as a simple calculator, but it's so much more. Budget planners, calendars, expense reports, shipping lists, project timelines... these are but a small sampling of what can be done with spreadsheets. Add in macros (bits of programming script that allow spreadsheet behavior to be customized to a large degree) and the sky's the limit.
Umm... not sure I follow. What's the equivalent of a macro for Ethereum?
Okay, time to stop beating around the bush. The key ingredient that Ethereum adds to the mix is the concept of a smart contract. Time for our first key term definition:
Smart contract: a computer program that executes on a blockchain, in a decentralized fashion.
Ethereum has its own programming language, called Solidity, which can be used by developers to write smart contracts and insert them into the Ethereum network, where they are executed in an environment called the Ethereum Virtual Machine (EVM). The Ethereum blockchain is the "memory" of the EVM, the thing that stores its persistent state and smart contract code.
A very simple example smart contract, written in Solidity.
So in a very real sense, Ethereum is a decentralized worldwide computer. One that runs 24 hours a day, 7 days a week, and cannot be turned off.
Whoa! Mind blown. Skynet lives!
Not quite. Ethereum has no AI, and in terms of computational power it's equivalent to something like the Intel 386 PC my family owned when I was a kid (though I expect that will improve with successive iterations of the technology; it's early days still). The reason for this is simple: in order to maintain consensus throughout the whole network, when a smart contract executes, its code is ran on every node of the network at once. This makes computation quite expensive.
In order to prevent abuse of limited network resources, a cost is imposed on each unit of computation performed by the EVM. This cost is paid using Ether:
Ether (ETH): a cryptocurrency used as the fuel for performing transactions and running smart contracts on the Ethereum network. If Bitcoin is digital gold, then Ether is digital oil.
We are now in a position to give a better definition of Ethereum itself:
Ethereum: an economic platform that combines a cryptocurrency called Ether with a blockchain-based programming language for creating computer programs, called smart contracts, that run on said blockchain.
People often use the terms Ethereum and Ether interchangeably, especially in the context of investing or trading, so it's important not to let that confuse you. If someone says "I bet Ethereum will be very valuable in a year!" they are really talking about the price of Ether going up. ETH is the cryptocurrency akin to Bitcoin, while Ethereum is the full smart contracts platform (of which ETH is a part).
Now we can see that it's really incorrect to talk about Ethereum being "just another alternative to Bitcoin". As a world spanning computer that literally anyone anywhere can write programs for, it is so much more than that.
Tell me more about these smart contracts and what they can do.
First let's back up a moment and talk about addresses. Like Bitcoin, Ethereum has a concept of a public address. For example 0xb794F5eA0ba39494cE839613fffBA74279579268 (a well known and closely watched address belonging to the Poloniex cryptocurrency exchange). An account on the Ethereum network is simply some address that has an ETH balance associated with it. It's possible to create as many accounts as you like and manage them all with the same wallet software. I have 5 which I use for different purposes. As with Bitcoin, if I want to send a payment to someone I simply use my wallet software to send Ether from one of my accounts to my intended recipient's account.
Sending ETH from one account to another with the official Ethereum Wallet software.
Still with me? Good, because this is where it gets interesting. Smart contracts also have a public address, which points to the location of their code on the blockchain. But in addition to storing code, a smart contract can have an ETH balance just like a normal account. So you can think of a smart contract as a kind of account, but with a computer program in charge of its balance instead of a human being.
Do you begin to see the possibilities yet? Since a smart contract has an address and a balance, you can send ETH to it as if it was a normal account. When the smart contract receives the ETH, it activates and runs its program, which can manipulate that ETH in various ways or even trigger other smart contracts. Alternatively, smart contracts can expose a list of functions to the outside world, basically a menu of different options, which can be triggered without sending any ETH at all (besides the previously mentioned computation fee - typically quite small - required to run the contract).
The menu of functions for a gambling game contract called Rouleth.
Some simple use cases for smart contracts include the following:
- Trustless escrow - exchange goods & services without having to find a reliable middleman.
- Gambling games - send some ETH and have a chance of winning the pot.
- Trust fund contract - release ETH to a beneficiary at a certain date in the future or when certain conditions are met.
- Limited withdrawals account - only allow you to withdraw a certain amount of ETH per day; good for those who find it hard to resist spending money.
- Employee payment system - deposit ETH and have it automatically distributed to employees based on pre-set rules.
- Online voting - publish a poll or proposal and have people vote on it.
Mind blown again. Smart contracts sound very flexible.
They are. But the above ideas are only the beginning, the tip of the iceberg! There's a very special type of smart contract that really opens the floodgates to creativity:
Ethereum token: a smart contract that simulates all the properties expected of a digital currency (i.e. you can have a balance of it, it can be sent / received / traded, it has built-in inflation / minting rules, etc).
In essence, tokens allow you to easily create your very own digital currency, for whatever purpose you might imagine, that runs on top of the Ethereum blockchain. There is a whole thriving ecosystem of such tokens, many trading as full blown cryptocurrencies in their own right on various exchanges.
The best tokens are the ones that offer some benefit to holding them besides just being used as a currency, and thus have some built-in intrinsic worth. Just like Ether itself functions as the fuel for running smart contracts.
This leads to our final important term:
Dapp (Decentralized Application): A collection of one or more smart contracts that together make up a cohesive application. Often paired with a web page that provides a friendly user interface, and an Ethereum token that powers the dapp in some way.
Now I've gotta learn about dapps and tokens? Any other surprises you haven't mentioned yet?
Nope, that's pretty much it (for this post anyway). Dapps are ultimately what make Ethereum such a powerful and promising technology in the long-term. Smart contracts are all well and good, but dapps provide the means for ordinary non-technical people to take advantage of them.
The average Facebook user does not know or care what fancy database system stores all their posts & account information behind the scenes. Similarly, a dapp user need not be concerned with the smart contracts that make the dapp work. Indeed, such a user might not even be aware that Ethereum is being used under the hood. And that is how Ethereum will go mainstream, in a way that Bitcoin has so far failed to do. People won't be talking about Ethereum; they'll be talking about the dapps that run on it.
Today's dapps are a long way from that ideal. Most of the really promising ones only exist as crude prototypes right now. But 2017 promises to be an exciting year as these early dapps mature and begin to officially launch. Here's a sampling of major dapps coming down the pipeline this year (each of these deserves a full blog post in its own right but I'll limit myself to a short summary for now):
Augur - A prediction market platform that uses "wisdom of the crowds" to guess the outcome of future events. You can make money by betting on the correct outcome. Uses a token called Reputation (REP) as an oracle system to resolve outcomes in a decentralized manner. Now in beta stage and scheduled for launch this summer.
Digix Gold - A platform for trading digitized gold, and maybe other precious metals in the future. Each DGX token is backed by 1 gram of physical gold secured in a vault in Singapore. Beta has been live since last year, currently being revamped into an improved version for official launch sometime this year.
Rouleth - A provably fair roulette game that allows real betting on the blockchain. Looks & feels like a virtual casino. Game is already launched as a proof-of-concept, with its inventor looking to expand the initial offering by adding more games later this year.
Golem - A decentralized market for sharing idle computing power for large distributed computing tasks. The first version, called Brass Golem, will act as a computer graphics rendering farm. Powered by a token called Golem Network Token (GNT) and currently in early alpha stage.
Akasha - A next generation social network, currently in early alpha stage. Possible future competitor to Steemit. Not clear at this point if Akasha will have its own token or just use Ether.
FirstBlood - An eSports gaming platform. Allows you to play matches against other FirstBlood users and win prizes in the form of 1ST tokens. Currently in early alpha with a beta release scheduled for this summer.
ICONOMI - A cryptocurrency investment fund management platform that allows financial specialists to roll their own funds and market them to investors. Will initially have 2 funds managed by the ICONOMI team (an index fund + performance fund for those with high risk appetites). Each fund is a separate Ethereum token. Possible launch by end of Q1 this year.
SingularDTV - An ambitious project whose main components are a digital rights management platform and video on-demand portal (think decentralized Netflix). Initial content for these platforms will include documentaries about Ethereum and a TV show called Singular. Expected to roll out slowly over the next 2 years, with first deliverable scheduled for April. Powered by Singular tokens (SNGLS).
My horizons are expanding too fast, aaaagh! It's going to take me a while to absorb all this...
Don't take too long. We are on the cusp of a new technological revolution akin to the dot-com boom of the late 90s. Smart contracts are the future, and Ethereum is currently the standard-bearer leading the way.
But right now the technology of smart contracts is in its infancy, comparable to the early days of the Internet. Just as people in the early 90s had no idea the Internet would evolve to become the pervasive, massive influence on our everyday lives that it is today, it's hard to say what the future of smart contracts will be. Quite possibly the most imaginative use cases, the so-called "killer dapps" of the smart contract age, have yet to be thought up. They will be invented by hobbyist tinkerers, maybe some kid in his home basement or dorm room, in a glorious return to the entrepreneurial spirit of yesteryear.
I for one can hardly wait to see how it all turns out. It's an exciting time to be alive!
Links to send you further down the rabbit hole
For a more detailed discussion of the technical underpinnings of Ethereum, including how the EVM works, see: https://github.com/ethereum/wiki/wiki/Ethereum-Development-Tutorial
Introductory tutorials on how to get started programming dapps:
- The Hitchhiker’s Guide to Smart Contracts in Ethereum
- Official Ethereum Blog - How to build server less applications for Mist
The Ethereum sub-reddit; a great place for general news & information: https://www.reddit.com/r/ethereum/
Ethereum official web site: https://www.ethereum.org/
Dapp Web Sites:
- Digix Gold
- Rouleth - Note: may not be available to US residents due to regulatory concerns about online gambling.
- ICONOMI - Note: US citizens may not be able to participate in funds due to regulatory concerns.
For more posts about cryptocurrency, finance, travels in Japan, and my journey to escape corporate slavery, please follow me: @cryptomancer
Smart contract example is taken from this blog post by Alex Van de Sande, one of the lead developers at the Ethereum Foundation. Ethereum Wallet pics are screen shots of the software running on my desktop PC.
The dapp system diagram is my creation, put together with Microsoft PowerPoint, and incorporates some images from Pixabay used under Creative Commons CC0. Down the rabbit hole pic is also from Pixabay.
Achievement badges courtesy of @elyaque . Want your own? Check out his blog.