An internet citizen’s guide to Ethereum
Bitcoin 2.0 is a term used to denote a set of next generation cryptocurrency technologies that go beyond simple payments by using Satoshi’s core innovation — the blockchain as the main building block in a whole suite of decentralized applications where being able to know who owns something matters.
For example Namecoin is a decentralized DNS — it enables you know that @alice owns the address 1yXBGEGGGGGhh338383838zp without needing to look it up with a trusted central server. With Mastercoin you can trade bitcoins for other currency in a decentralized way and with Ethereum you can build any decentralized application — including a new currency (like bitcoin), a DNS (like Namecoin) or a distributed exchange (like that offered via Mastercoin) within one platform.
For the purpose of focus, I’d like to explore Ethereum as a poster child for this new direction and in a separate post I try to understand the role Bitcoin will play in a future where people aren’t only using the blockchain to send money back and forth. It’s also timely to talk about Ethereum in light of it’s highly successful crowdsale which has raised over $12M in the last month.[1]
Ethereum
High level summary of what it offers
If Bitcoin is like the internet, then Ethereum is like Netscape. On some level, the internet is just a network of computers optimized for sending data packets back and forth between sender and receiver — ideal for something like email. Similarly Bitcoin is a network of computers optimized for sending packets back and forth between sender and receiver where those packets represent ownership — ideal for something like payments.
Thus just like the early internet, the major application of the Bitcoin network — money transfer — is similar to email. It’s about sending data from one node in the network to another node in the network via the (ingenious) Bitcoin protocol.
However, with the advent of Netscape (javascript + web browser) [and things like the LAMP stack], developers could build applications on remote servers and deliver them instantly to the end user. These web applications required no additional software downloads, and received “software updates” instantaneously. Web applications had higher level “states” beyond “packet sent” and “packet received”. A user could be “logged in” or “logged out” or could have a “profile page” with “comments from friends” where all these things were programmed at a high enough level that allowed the programmer think directly about the features being built rather than the details of the underlying internet infrastructure.
It is in this sense that Ethereum aims to be the Netscape of the decentralized internet. It is a browser for navigating new kinds of P2P applications built upon block chain technology that comes bundled with a programming language for building applications that can be displayed in this browser.
The analogy is not quite perfect because, unlike Netscape, Ethereum is also building the underlying network on which these applications run. Also, unlike Netscape this underlying network is different from the prevailing network i.e. Bitcoin. We will explore this breakdown of the analogy in more detail later in this post.
What it is and how it delivers on its promises
Ethereum is the following things[2]:
i) A blockchain with a Turing complete programming language.
Coupling a blockchain with a Turing complete programming language allows one take the block chain technology and write any conceivable application in any conceivable domain. It is the programmer’s ideal of flexibility and generality.
This is important since we have since realized that the blockchain at its core is about enabling the decentralization of things previously thought to only work via centralization. This includes numerous things like servers, governments, organizations and cloud storage. Thus, a programmer who wanted to easily use “proof of work” and financial incentives to make a new version of Amazon or Facebook would find a blockchain + Turing complete programming language extremely useful.
ii) A browser for navigating the decentralized internet In addition to providing an underlying blockchain, Ethereum is also a browser (just like Google Chrome) that enables a user visit and use applications that have been built on top of the Ethereum block chain.
I’d argue that the underlying network is more fundamental as, just like with today’s web, anyone would be able to build a competing Ethereum browser and just as Netscape has been absorbed into Mozilla and most sane people now use Google Chrome instead of IE, one could imagine the same set of events happening with an official Ethereum browser.
How does the protocol work?
The underlying currency in Ethereum is the “Ether”. Ether is used in processing transaction fees, paying for services, and incentivizing users of the network to contribute resources to the decentralized applications running on the network. At a very high level, developers write programs known as “contracts” that live on the Ethereum Blockchain. These programs can do things like
i) deduct 5 ethers from Alice’s account and add those 5 ethers to Bob’s account
ii) add an entry: @alice -> 1XysdbdbdbbdywyeZgsgel789 to a data store on the blockchain.
Program (i) represents an implementation of a simple cryptocurrency while program (ii) represents the implementation of a decentralized username system (like DNS for the internet).
These programs pay an amount in ethers, to the network, proportional to the number of computational steps involved in running them.
Potential applications and the future of Ethereum
At the onset of Netscape, or at least a few years after its launch, there were a few highly touted application categories such as commerce and media. These turned out to be hugely dominant categories on the web. A few others like search, social media and collaborative tools were either not really valued as opportunities or not crisply conceived of. Similarly, there’s alot of talk about a “decentralized Dropbox” being the killer application of Ethereum. In a decentralized dropbox, people rent out extra hard disk space to those who want storage and get paid ethers for successfully storing the files. Theoretical cost savings here are huge and in practice there’s the example of AirBnB which is able to undercut hotels by making use of assets that people already own but are underutilizing.
Other touted applications are:
i) decentralized autonomous organizations: here one uses code to record and enforce the rules of an organization (e.g. Joe gets paid every month, owns 2% equity and is allowed to vote on leadership changes) in a decentralized and completely automatic way.
ii) Smart contracts and property: here one uses code to automatically enforce contracts which could be time dependent and transfer ownership of physical things. In principle one could pay a fine for speeding automatically or pay a fraction of rent per day instead of everything at once or hand over digital car keys to someone after a certain down-payment has been made.
I expect that just like with the applications that were most touted in the early web, some of these will become dominant categories. But if the whole Bitcoin 2.0 thing works out, there are probably new categories of applications that are either currently ill conceived or undervalued. History shows that these might be the applications that are more social and require the active interaction of multiple people and possibly “things”. This likely means we see a decentralized dropbox long before an organization (dropbox just needs one person to upload files and doesnt need someone to say post a comment) and that the next generation of decentralized applications that are currently undervalued likely involve social ideas that require multiple people to engage.
I plan to write more frequently. If you enjoyed this, you can follow me on Twitter @levandreessen and send in thoughts about this write up ☺
References
- Wall Street Journal: http://blogs.wsj.com/moneybeat/2014/08/05/bitbeat-ethereum-presale-hits-12-7-million-tally/ or simply use the BTC/USD and ETH/BTC exchange rates as well as the number of ethers sold quoted on http://ethereum.org
- See the Ethereum whitepaper: https://github.com/ethereum/wiki/wiki/%5BEnglish%5D-White-Paper