This introduction to Ethereum was originally published at Bruno’s Bitfalls website, and is reproduced here with permission.
Ethereum, launched in 2015 by Vitalik Buterin, is a special blockchain with a special token called Ether (the ETH symbol in exchanges).
Ether is used as fuel (literally, gas) to power the Ethereum network and execute smart contracts (see below). Ether is paid to miners (the people running the network) in gas cost to make the features below possible, and thus isn’t a cryptocurrency as much as cryptooil.
Here’s how it’s different from bitcoin, and what makes it stand out in the world of cryptocurrency.
Bitcoin has a theoretical limit of 21 million bitcoins ever produced, which makes it a deflationary currency: its total amount in circulation shrinks over time as people lose access to their wallet, stockpile it, etc.
Ether has no limit, but does have a fixed ratio of production. Currently, a little over 15.5 million Ether is mined every year, which comes down to 5 ETH every second — far more than bitcoin’s current rate of 25 BTC every 10 minutes or so. After Ethereum switches its mining type — more accurately known as consensus type — to PoS (see below), the production rate will decrease dramatically, approaching zero.
All this will make Ethereum’s value stop growing disproportionately, thus reaching market price stability which lends itself perfectly to the practical uses described below.
Bitcoin supports simple scripting. For example, you can write a small program with bitcoin which will support transactions that have multiple addresses as input, or that need multi-sig (a signature from several people before funds are released). The language used for this is not Turing complete, however, because it doesn’t have loops. (If you don’t know what this means, it doesn’t matter.)
Ethereum programs, on the other hand, are programmed in Solidity — a language that is Turing complete, thus allowing for any kind of program to be written in it, given enough resources (within reason). When a program is written in Solidity, it needs to get sent to the blockchain, which costs gas, paid in Ether. The bigger and more complex the program, the more expensive it is to deploy it to the blockchain. Thus, inefficiency costs money; it’s in the interest of everyone involved to keep those programs as small as possible.
Vitalik himself best describes the smart contracts with a vending machine analogy:
A vending machine […] basically implements the conditions of some kind of an agreement. And the conditions of the agreement here are simple. You put $2 in, water comes out. You do not put $2 in, water does not come out. If you do not put $2 in but water does come out then that’s bad. And a vending machine is basically an encoding of this set of rules, that also comes with a mechanism that keeps it at least kind of secure. Secure enough for $2 water bottles.
When we pay an amount of Ether into a smart contract, that smart contract can then decide what to do with this Ether: send it to address A based on one condition, address B based on another, lock it in place for a period of time, refund it, move it around based on external input, trigger external output based on this Ether, etc.
A practical example would be replicating Kickstarter. Kickstarter is a site which lets creators gather funds for their projects before they’re launched. The basic rule is, if a given amount of money is exceeded in a given number of days, the project was a success and the money can be released to the makers. Otherwise, the money is refunded. This simple condition is very easy to replicate with smart contracts, eliminating human error, greed, and the middleman from the equation, offering up a truly decentralized way of fundraising.
Applications built with smart contracts are called decentralized apps or dapps.
Continue reading %Introduction to Ethereum: A Cryptocurrency with a Difference%