Back when the wild west of cryptocurrencies was first in full swing and the mainstream media was swamped with stories of drug cartels and launderers smuggling millions through bitcoin, it was pretty hard for an average person to see the value in the concept of a virtual currency. Among the initial questions that echoed across the world were

“What are the practical applications of this aside from buying drugs on silk road?”

“How secure is it, really?”

Fast forward a few years and although we have come a long way and blockchain education is easier to access, there is still a strain of naysayers with arguments that focus solely on the currency and not as much on the powerful, but subtle implications of decentralized systems.

These questions are a result of a lack of education on the technology underlying cryptocurrencies themselves, namely, the blockchain. There was too much of a focus on trying to frame Bitcoin purely in transactional terms, automatically assuming the same of other blockchain protocols and completely missing the point.

A Turing Complete System

With distributed ledgers came the advent of those desiring more expressive capabilities and applications on these systems. It was only a matter of time before developers were asking why not create fully decentralized applications that do more than just handle payments? Companies started to use blockchain systems as a way to store certain types of data, with various projects aiming to use a blockchain as an immutable store of knowledge, even though large portion of the Bitcoin community have been opposed to on-chain data storage. Many started to ask, could we go even further or use the blockchain for computational purposes?

The Ethereum project gave us exactly that: a Turing complete environment where anyone can code up smart contracts and spin up entire token ecosystems and applications on a public blockchain. This “global computer” brought us promises that we could only dream of when simplified versions of this idea were conceived by other projects such as MasterCoin. Bitcoin has rejected this level of abstraction and logic within its core system, deliberately using Script, a language with limited expressive capabilities to prevent malicious users from hijacking the blockchain programatically. However, Ethereum has embraced its Turing completeness as its most noteworthy & notorious feature. Although we are able to build any sort of application by leveraging the Ethereum Virtual Machine (EVM), this expressiveness undoubtedly comes at an enormous cost…

Safety-Critical Systems & Big Hacks

Unfortunately, smart contracts have to be written by humans and are prone to extremely critical bugs such as the parity hack where an internal method had public access and was able to be called by anyone, allowing hackers to steal over $30M USD worth of Ether. Teams are even employing formal mathematicians to prove the security of their smart contracts, but is this even enough to prevent small issues that can cost millions to the entire community?

So then, is Turing completeness a good idea for blockchains? Maybe not at a large scale for now, but in my opinion, it is the best proving ground we could ask for to accelerate this ecosystem even faster.

Ethereum Gives Back Power to Developers

Despite the obvious flaws of Solidity as a smart contract language, and oh boy are there so many, the Ethereum community did one small thing very, very well: giving agency and tools to developers that had been aching to get their feet wet in crypto.

Coming from a background in Javascript web development and data science, it was already hard enough to keep up with the newest JS framework and best practice that seemed to pop up every week. As annoying as Javascript fatigue was, the ecosystem managed to flourish because of the vibrant experimentation all types of devs did. Junior & senior developers worked tirelessly on testing front-end tools such as React, Redux, and the babel transpiler to the max to figure out what the best way to build web apps was. As flawed as javascript is as a language, the community was always able to find a way and the tooling got better and better.

We went from not having best practices for managing state in a web application to having extremely robust libraries such as Redux as solutions major problem within a short span of time. Sure, many JS developers accepted parts of their community as broken, but that only gave them an excuse to work even harder and innovate for the good of everyone.

It Is Extremely Early, But The Ecosystem Is Made for Devs

The ease of access to documentation, source code, and fantastic speakers at major conferences made front-end tooling evolve in amazing ways over the past year. Ethereum, along the same vein, has come a long way from its early days. We have awesome listings like state of dApps, fully-transparent, communicative core developers and although so many ICOs are questionable at best, we have fantastic white papers, testing tools, a solid test-net, and a plethora of well-made libraries for beginners to hit the ground running.

In this community, most major projects are open source and have thriving Slack channels where people discuss not only small bugs in projects but also long-term, groundbreaking implications of decentralized applications in our daily life. The unparalleled quality of conferences such as DEVCON and the strength and transparency of Ethereum’s core dev team make it a joy for new developers to deep their feet into this world and add constant improvements to important repos.

Same Standards: The Foundation of Network Effects

Not only is Ethereum interesting from a developer’s standpoint, but also from an economic and game-theoretical perspective as well. The rise of the ICO token economy has shed light on new problems that companies never even had to consider when building their products in a centralized web. The idea of token velocity, where a utility token sees an extremely large number of users trading it but rarely any holding it as a store of value, has been a major hurdle for many dApps to consider when designing their systems and economies. Hard problems in game theory, scalability, and critical design questions come to mind for anyone leveraging the Ethereum protocol to create an ERC20 token economy, and this is just the tip of the iceberg for experts to identify both the pitfalls and best practices within this world.

Despite these hurdles, there is one fundamental cornerstone of building decentralized applications: all of them are built upon the same ecosystem of standards. All projects share the Ethereum Virtual Machine, all of them are built on smart contracts, all of them are incentivized to learn from each other and contribute by highlighting their own best practices to the greater community. This is why this space is moving at lightning-fast speed. When systems use the same set of shared standards, we all benefit when one finds a key improvement. This is what has driven me into becoming an Ethereum developer above all.

Game-Theoretical Incentives

Imagine a world where Uber doesn’t take a cut of the drivers’ pay and the customers’ money. Imagine a world where there is no Uber Inc., but rather a decentralized marketplace of drivers and riders. A world where IPFS is our Amazon S3, Blockstack is our DNS Server…the possibilities are endless. However, why should this matter to the average user? Sure, many users could be die-hard decentralization fanatics, but in reality consumers will simply flock to whatever the best economic choice is for them.

When we get to the point where the price point of these decentralized apps as well as the friction of their user experience are optimized, we will begin to see massive adoption of this technology as a whole.

It Takes One Killer App for the Public to Adopt a Technology

It was only when Apple launched the Apple II with the world’s first computer spreadsheet, VisiCalc, that owning a computer was a business need. Businesses came in flocks to adopt VisiCalc and the power of its software was so great that the network effects soon became apparent, selling over 700,000 units in the span of six years, enabling other software businesses to create programs for a user base that was increasing exponentially. Build good software and the adoption of your hardware will follow.

I believe the first killer app will come from a system such as Ethereum and its vibrant developer community. So sure, Turing complete blockchains have a lot left to be desired from a security standpoint, but are a breeding ground for ideas, innovations, and vibrant economies that I am thrilled to be a part of.