*https://fehrsam.xyz/blog/ethereum-is-the-forefront-of-digital-currency*


Fred Ehrsam, May 2016

We have sat here for the last 3 years seeing only infrastructure apps like wallets and exchanges emerge on top of Bitcoin. Why is that?

My theory has been that the scripting language in Bitcoin — the piece of every Bitcoin transaction that lets you run a little software program along with it — is too restrictive.

Enter Ethereum. Ethereum has taken what was a four function calculator of a programming language in Bitcoin and turned it into a full fledged computer. We now stand only 9 months out from the beginning of the Ethereum network and the level of app development is already faster than Bitcoin’s. We are finally getting rapid iteration at the app layer. In one early example, people have designed a decentralized organization (The DAO) — a company whose heart is code and peripheral operations are run by humans, rather than the other way around — that has raised $150m so far in the largest crowdfunding ever.

To be clear, I don’t think this needs to be a contest between Bitcoin vs. Ethereum and Coinbase plans to strongly support both. I think this is about advancing digital currency as much as we can. There is a significant amount of overlap between the two, however, so the comparison is valuable and the potential for competition is real.

How did we get here?

First, some history. When the Bitcoin white paper emerged in 2008 it was completely revolutionary. The amount of concepts that had to come together in just the right way — computer science, cryptography, and economic incentives — was astonishing. When the actual Bitcoin network launched in 2009, no one knew about it, and many of those who did thought it would surely fail. Just to make sure the thing worked, the scripting language in Bitcoin was intentionally extremely restrictive. “Scripting language” is a fancy way of saying an easy to work with programming language (in fact, Bitcoin doesn’t exactly have a scripting language, it uses a stack with script operators — more on that later). The scripting language in Bitcoin is important because it is what makes Bitcoin “programmable money”. Within each Bitcoin transaction is the ability to write a little program. For example, you can write a little program in a Bitcoin transaction that says “this transaction isn’t valid unless it’s June 15th, 2016 or later”. This is very powerful because you can move money automatically with computer code and everyone can see the rules by which that money moves and know those rules will be followed.

It was, and still is, incredible that Bitcoin got off the ground and is alive after 7 years. It is the first network ever to allow anyone in the world to access a fundamentally open financial system through free software. It has ~$7bn in market cap and has never had a systemic issue which could not be fixed. To some this is already a great success.

However, we also stand here 7 years into Bitcoin with few apps and no “killer apps” beyond store of value and speculation. The scripting language in Bitcoin has barely expanded and remains very restrictive. While Bitcoin has become embroiled in debate over the block size — an important topic for the health of the network, but not something that should halt progress in a young and rapidly developing field — Ethereum is charting new territory, both intellectually and executionally.

Make no mistake — Ethereum would never have existed without Bitcoin as a forerunner. That said, I think Ethereum is ahead of Bitcoin in many ways and represents the bleeding edge of digital currency. I believe this for a few reasons:

Ethereum’s programming languages lets you do much more than Bitcoin’s

As mentioned above, Bitcoin’s scripting language is intentionally restrictive. You might liken it to programming with an advanced graphing calculator — functionality is limited. As a result, you can only do basic things. It is also hard to understand and use. Rather than most modern programming languages where the code is almost readable like a sentence, it looks like unintelligible machine code. As a result, it took Mike Hearn, a talented ex-Google developer, a whopping 8 months to write a first version of a fairly simple crowdfunding application.

In contrast, Ethereum’s programming languages (Solidity for those who like Javascript, Serpent for those who like Python) let you do pretty much anything an advanced programming language would let you do. This is why they are said to be “Turing complete”. Equally important, they are easy to use. It is simple for any developer to pick it up and quickly write their first app.

Here’s an example of a script in Bitcoin: