Special thanks to Vitalik Buterin, Gavin Wood and Jeffrey Wilcke for countless revisions feedback, picks at their brains, and helping me read their tea leaves.
Introduction
In the world of cryptography-based computer science, the Ethereum technology vision has captivated the imagination of a large number of software developers and technologists who saw its obvious promise. But those same promises and their business interpretations (and implications) have not widely reached, nor been well understood by non-technical audiences.
As Ethereum nears coming out of the “labs” and into the market, it is even more important that its message be widely understood by the business community.
The purpose of this article is to answer why Ethereum matters, why non-technical people should care, and why we need another global blockchain, even if Bitcoin already is one. These are a few key questions, and for each one of them, the more you dive into the answers, the more you start to understand them, and the more you will appreciate Ethereum’s unique position, while learning that its approach has merits and longevity.
Summary
Ethereum is an alternative decentralized ledger protocol, not an alternative cryptocurrency. Ethereum’s ideological lineage contains as much BitTorrent, Java and Freenet as it does Bitcoin. From a product perspective, it is a general-purpose, global blockchain that can govern both financial and non-financial types of application states.
In its essence, Ethereum powers decentralized business logic, also known as smart contracts, represented as cryptographic “boxes” that contain value and only unlock it if certain conditions are met. This business logic executes on the blockchain cloud (no server hosting is required), and automatically enforces the terms of a given agreement between a number of parties. They are a building block for “ÐApps”, the new form of Decentralized Applications that Ethereum excels at. And from a front-end (client) point of view, Ethereum has a powerful special-purpose browser enabling users to install and interact with any ÐApp in a user-friendly manner.
The outcome of this new patchwork of technologies is an emerging Web3 infrastructure which Ethereum is particularly good at enabling. It is based on a 3-tier architecture, comprising an advanced browser as the client, the blockchain ledger as a shared resource, and a virtual network of computers that run smart business logic programs in a decentralized way.
Compared to Bitcoin, Ethereum has built a new crypto-technology based framework that provides even larger gains in ease of development as well as even stronger light-client properties, while at the same time allowing applications to share a viable economic environment, and solid blockchain security.
The genius behind Ethereum is this magical network of computers that enables a new type of software applications: the truly decentralized ones, based on embedding the logic of trust inside small programs and distributing them to run on its blockchain.
This has several implications; for developers, incredible cost savings and efficiency in writing new applications; and for non-technical users, a chance to reimagine existing businesses, or create new opportunities, based on unbundling central functions and relegating them to decentralized constructs. Ethereum helps anyone wishing to develop decentralized applications, encode arbitrarily complex contractual business logic, launch autonomous agents, and manage relationships that will be mediated entirely by the blockchain.
Ethereum is a form of specialized cloud computing, albeit one that allows substantial gains in efficiency and cost-effectiveness, where very strong guarantees of security and reliability are required. And it comes with a complete suite of tools for building applications on it.
The Ethereum transaction ledger can be used to securely execute a wide variety of services including: voting systems, domain name registries, financial exchanges, crowdfunding platforms, company governance, self-enforcing contracts and agreements, intellectual property, smart property, and distributed autonomous organisations.
Ethereum is spurring business and societal innovation at the global level, while opening the door to a new class of applications, never seen before. In the long term, the resulting outcome will impact economic and control structures.
Thousands of entrepreneurs and developers are already creating and implementing new ideas, projects and startups based on Ethereum. And for existing organizations, business and IT leaders and entrepreneurs are encouraged to explore how Ethereum enables them to reengineer or innovate on top of their existing services, in order to remain competitive in the future.
Understanding Ethereum
So, why is it so difficult to understand Ethereum? For the same reason that it’s difficult to understand Bitcoin, and for the same reason the Internet was difficult to grasp by the general public until at least 3 years after the beginning of its commercialization. That reason is: they all have multiple functional identities. Granted, that answer is not particularly enlightening, but it is factual: Bitcoin, Ethereum and the Internet mean different things for different people. But their narrative is strong, because their impact is multi-faceted and far reaching. So let’s dissect Ethereum in order to make it more comprehensible.
Ethereum vs. Bitcoin
As a starting point, and only as a reference, we could begin by comparing Ethereum to Bitcoin, because Bitcoin seems to have been understood, at least by those who wished to understand it.
At first sight, one can easily be duped by apparent similarities because both Bitcoin and Ethereum are open source platforms that have four common staples: an underlying cryptocurrency, an inherent blockchain, a decentralized consensus-based proof mechanism, and miners that support the network; therefore they must be similar. But that is a wrong conclusion. As soon as you dig deeper, reality reveals that Bitcoin and Ethereum are more dissimilar than similar. Each one of these 4 staples has a fundamentally different purpose in terms of what it enables, and for that reason, Ethereum is headed into a different direction than Bitcoin.
For background, Bitcoin was originally designed as a decentralized cryptocurrency network for transacting monetary value, and the main purpose of the Bitcoin blockchain was that backbone of trust for these financial transactions. It was only more recently that Bitcoin’s blockchain started to find use cases in non-financial applications relating to decentralized trust and as a store of value. Therefore, the programmability aspects of the Bitcoin blockchain itself were almost an after-thought, although sidechain proposals are hoping to make this programmability a little easier. In contrast, Ethereum was conceived from Day 1 as a software development platform for decentralized applications, and its blockchain was specifically designed to support executing apps on it. So, the Ethereum design had the luxury of learning from Bitcoin’s experience and remedied some of its shortcomings. For example, the Ethereum blockchain is faster at performing verifications, down to a typical range between 5 and 30 seconds, as compared to Bitcoin’s 10 mins.
The Ethereum paradigm revolves around being a network for powering decentralized applications in need of a deterministic, auditable and predictable compute platform, and that is different from the essence of the Bitcoin paradigm whose trivial compute machinery is currency-centric. Therefore, you cannot blindly apply Bitcoin analogies pertaining to the role of mining, the cryptocurrency usage, and the programmability capabilities of the respective blockchains in order to fully understand Ethereum.
First, the Ethereum’s cryptocurrency (called “ether”) is not similar to the Bitcoin currency because its main purpose is not for payment of goods or services, nor to be a “digital gold” version, two features that Bitcoin excels at, and that Ethereum doesn’t even attempt to provide. Ether is more like an incentive plumbing in the form of required “crypto-fuel” to pay for the transaction fees necessary to run the various smart business logic programs that users submit to its blockchain.
A close analogy is to compare ether to cloud-based computational costs. When you run an application in the cloud, you are charged based on a combination of time, storage, data transfer and computing speed requirements. The novelty with ether-based costing is that you are paying to run the business logic on the blockchain. It’s a form of cloud-based micro-value pricing that un-bundles a layer from the traditional cloud computing stack.
In addition to being that network fuel, ether will also be tradeable as a cryptocurrency on a variety of open exchanges, but it is expected that its value appreciation will be more rationally influenced by the volume and richness of transaction demands than by currency speculators (which is the opposite to what has happened to Bitcoin).
Second, the Ethereum blockchain is fully programmable by design, and more economically efficient than Bitcoin. It is arguably more scalable, a key requirement pertaining to the long term affordability of a busy blockchain. Because it is not focused on fulfilling financial transactions, the Ethereum blockchain’s purpose is different than Bitcoin’s. Technically, Ethereum doesn’t have a limit on the block size, and it will adjust dynamically as a whole, as part of its core design. In addition, Ethereum is continuing to work on improving the scalability aspects, and that will have a direct benefit of lowering the overall transaction costs.
In general, when looking at desirable features for a blockchain, the following characteristics come to mind, and they are ones that Ethereum excels at:
- Programmability
- Scalability
- Upgradability
- Transactions Manageability
- Visibility
- Affordability
- Security
- Speed/Performance
- High Availability
- Extensibility
Third, whereas proof-of-work is Ethereum’s current consensus process choice, it is planned to evolve into a less wasteful method known as the “proof-of-stake”. Proof-of-stake has been proven to be an efficient and viable consensus method that is cheaper to operate while being more expensive to attack.
Finally, mining in the Ethereum context can be done by regular computers, and doesn’t require the specialized computational horsepower that Bitcoin requires, therefore Ethereum’s mining will be more affordable and accessible to the masses. Anyone running the Ethereum mining client software on their computer can become an Ethereum miner, almost like BitTorrent allows any user to openly share their media files. This is a good strategy, because it makes Ethereum more affordable, by not being overly dependent on expensive mining. This also means that, unlike Bitcoin; Ethereum does not depend on accumulating a lot of mining power to work. It is more biased towards self-maintenance via a healthy balance of affordable mining and pay-per-play computing requirements.
Ethereum as Freenet
There is another interesting (and perhaps unexpected) Ethereum analogy, and it is towards Freenet. For background, Freenet was an earlier way of making decentralized websites. It was free software that allowed users to anonymously share files, browse and publish “freesites” (web sites accessible only through Freenet) and chat on forums, without fear of censorship, and with less vulnerability to attack. Freenet’s philosophical underpinning was to enable and protect censorless freedom of speech, and to spread knowledge.
Freenet’s ideology had merits, but it also had two main flaws with known causes that Ethereum remedies. First, downloading a website would often take more than one minute. Second, it had no applications, and contained static content only. Ethereum addresses these issues squarely via its native incentivization, and via its blockchain which is a backbone for enabling applications.
More Ethereum Differentiation
So, what are additional features of Ethereum that differentiate it further and make it an attractive choice for developing decentralized applications?
The Development Languages
Arguably, Ethereum’s software development language capabilities are one of its biggest differentiating features, because programming the blockchain is a primordial objective. Ethereum doesn’t have one, but it has four such special-purpose languages: Serpent (Python inspired), Solidity (JavaScript inspired), Mutan (Go inspired) and LLL (Lisp inspired).
As one of the high-level programming languages used for Ethereum, Serpent (as suggested by its name) is designed to be very similar to Python. It is intended to be maximally clean and simple, combining many of the efficiency benefits of a low-level language with ease-of-use in programming style.
Solidity is the preferred language, being designed from the ground-up for contract-oriented programming and the one under the most development. It inherits all the Serpent qualities, but with a similar syntax to JavaScript which gives it a familiar adoption advantage that minimizes the barrier to entry, because JavaScript is commonly used by Web developers. Therefore, Solidity leverages an existing skillset that millions of programmers already possess.
Another key feature of the Ethereum blockchain is its “Turing-completeness”, an important characteristic needed to ensure a high degree of universal solvability while running the required computation puzzles. More precisely, it is “quasi” Turing-complete, because through setting up-front limits on the amount of computation allowed, it avoids the non-termination problem of a fully Turing-complete language.
Furthermore, because Ethereum’s languages are specifically designed for that blockchain, they provide incredible real-time granularity on transaction visibility and activity, a desirable feature that Bitcoin has some challenges with. With Bitcoin, you need to import the blockchain database, parse all transactions and query them in order to extract activity intelligence on it; whereas with Ethereum, you may issue specific address requests in real-time on the live blockchain.
Ethereum Enables ÐApps
The available multiplicity of Ethereum development languages is important because it enables developers to pick the ones they like in order to more easily and efficiently write Decentralized Applications (ÐApps).
A ÐApp is the combined set of smart contracts and client-side code that enables them. Smart contracts are like cryptographic “boxes” that contain a value and only unlock it if certain conditions are met. They typically encapsulate some logic, rules, a process, or an agreement between parties. When they are launched on Ethereum, the network enforces their ramifications.
A ÐApp can be viewed architecturally as being very similar to a traditional web application, with one difference: in a traditional web application, you have client side Javascript code that is run by users inside their browsers and server-side code that is run by a host or company; but in a ÐApp, you instead have smart logic running on the blockchain, and client side code running in Mist, the special browser.
Furthermore, a ÐApp can interact or connect with other web apps or other decentralised technologies. For e.g., a ÐApp may use a decentralized messaging service such as Whisper in this Ethereum’s context, or a decentralized file distribution like IPFS. On the web apps side, a company such as Google might want to get data from a decentralized reputation service, or a Bloomberg data feed may want to interface with a financial ÐApp.
The Ethereum Client
Ethereum includes a special purpose client browser that enables users to run the variety of available ÐApps and launch smart contracts. This browser (called Mist) is a user-friendly launching pad that promises to making smart contracts and ÐApps widely accessible to a broad community of users. Mist is ground-breaking in terms of lowering the user adoption barrier. Its impact isn’t unlike what the web browser did for accessing the Internet in a user-friendly manner, or what iTunes represented for downloadable digital content. Mist has special security layers, key management, decentralized account management (i.e. the user accounts are owned by the user and not a central third party authority), and includes blockchain-related components that will make it an indispensable tool for running or managing blockchain-specific decentralized applications for the average user who doesn’t need to understand technical aspects.
From a user experience point of view, you use ÐApps from inside of Mist just as you interact with websites via a regular browser. For e.g., a pure ÐApp such as Augur (a prediction market) lives inside the Ethereum Mist browser. However, there can also exist services delivered through a regular browser in a more traditional web 2.0 manner that are still powered by and auditable through Ethereum.
The Ethereum Virtual Machine
When you think of these self-contained logic scripts that run on the blockchain, store data on it, and return some value(s) to the originator, it’s like running a program virtually in the cloud. Simply said, these smart contracts are the code running on the Ethereum Virtual Machine (EVM). Therefore, this is similar to a decentralized virtual computation service, except that it’s without the burden of web servers, and it is designed to be run by all participants in a peer-to-peer network that can read and write data and code to the blockchain safely and securely (via cryptographically secured digital signatures).
The concept of the Ethereum Virtual Machine (EVM) is a very important one, because it is another primary innovation of the Ethereum project. If you don’t understand the EVM, you don’t understand Ethereum.
So, the EVM “sits on the blockchain”, but it’s actually made-up of several interconnected computers that anyone can upload programs to, leaving these programs to self-execute, and ensuring that current and all previous states of every program are always publicly visible. These programs run on the blockchain and continue to execute in exactly the way that the EVM specifies. This allows anyone to create their own business logic for ownership, transaction formats and state transition functions.
The Ethereum Core and its Ecosystem
At its inner core, Ethereum is a multi-layered, cryptography-based, technical protocol that is open source. Its various functional pieces are fully integrated by design, and the sum of its components turns it into a comprehensive platform for building and deploying modern decentralized applications.
It was designed as a general-purpose decentralized application platform, with a full suite of tools that extend its functionality and power.
Although Ethereum looks like a combination of several interconnected open source projects, its evolution has been clearly guided by a crystal vision to ensure that all the pieces fit together synergistically.
Like any major software platform, the Ethereum core is augmented by a rich ecosystem comprised of a community of partners, technology interchange extensions, applications and ancillary services around it. More precisely, from a functional perspective, one could break up the Ethereum ecosystem into three parts:
- Core Protocol Technologies: P2P consensus, Virtual Machine, Contracts, Keys, Blockchain, Software Languages and Development Environments, Currency (Fuel), Technology Integration and Middleware Services.
- Applications: Client software (Mist or AlethZero), Mining, Monitoring Services, ÐApps and other third party Applications.
- Ancillary Services: Mostly centered on Education, Research, Learning and Support via wikis, forums, the Eth Academy, web sites, bounty incentives, and a future developers conference.
Of particular interest is the Applications segment whose size has already snowballed to over 100 various third-party projects, products, technology extensions and fully fledged businesses that are based on Ethereum either entirely or partially. They include applications such as Prediction Markets, Decentralized Exchanges, Crowdfunding, Internet of Things, Voting and Governance, Gaming, Reputation Systems, Social Networking, Chat Messaging, Insurance, Healthcare, Arts, Ridesharing, Distributed Autonomous Organizations, Trading (financial instruments or commodities), Accounting, Communities, eCommerce, Physical Security, File Storage, Ownership Stamping, Content, Microtransactions, Community Management, Cloud Computing, Remittances, Smart Contracts Management, Smart Assets, Wallets, Food, Manufacturing, Data Storage, Messaging, Supply Chain and others.
(A future blog post will cover in more details the whole Ethereum ecosystem, including the partner pieces).
All these components point unequivocally to a healthy progression and growth of the Ethereum footprint into a variety of financial and non-financial industry segments. Ethereum’s programming capabilities offers vastly more power than that offered by Bitcoin scripting because of the added powers of Turing-completeness, value-awareness, blockchain-awareness and state transition logic capabilities.
Why Should Business People Care?
Ethereum’s technology was built for developers primarily. But just like Information Technology, Ethereum is an enabler of business opportunities, and as much as its initial support is vastly driven by a community of technologists, Ethereum’s impact will get multiplied once business professionals also understand the potential of decentralizing applications, along with processes they enable.
We need to learn how to apply what the blockchain technology gives us. Ethereum developers and technology enthusiasts acknowledge that what they see is not enough in order to reveal the entire spectrum of the applications potential. Developers need business people as partners who understand Ethereum’s capabilities, and are willing to apply their own experience towards that understanding.
During the 90’s, the corporate reengineering trend caught on. It was driven by a desire to abolish old processes that offered little value, and replace them by simplified ones. Suddenly, every large organization was reviewing their business processes, and identifying the ones that were slow, centralized, expensive, archaic, or did not meet users and customers needs. Within the vision of Ethereum, lies a reengineering promise parallel.
The outcome would be to embark on a similar “crash and burn” exercise to find old applications that are slow, expensive, archaic or not meeting the required needs, and figure out if they could be re-thought via ÐApps or truly decentralized applications.
Business people must learn about decentralization, and ask if old processes can be replaced by decentralized ones, enabled by Ethereum. Of specific interest are the types of applications that previously relied on central intermediaries or gatekeepers that held final authority on trust-related processes. Ethereum enables the unbundling of trust, and repurposes it to run on the network.
Once you understand how to unbundle central processes, and relegate them to the edges of the network, you are only bound by the limits of your imagination. Now is the time to shoot yourself in the foot, as it’s better than to have someone else shoot you in the head, tomorrow.
Progressive business and IT managers should identify technical resources on their teams that need to learn about Ethereum, and fund projects and implementations that promote innovation and reengineering efforts to discover and unlock the full potential of decentralized applications.
If you fall in one of these categories, you are in an excellent position to start diving into Ethereum:
- Existing IT departments
- Startups with new ideas
- Forward-thinking developers
- Current Bitcoin enthusiasts
- Business innovators, leaders, investors and visionaries
- NGOs, activists, researchers, and policy makers
The best starting point for learning about developing on Ethereum is the Ethereum Wiki.
What can you do with Ethereum?
Ethereum enables innovation via decentralized applications, equally touching industry, government and society segments.
It is important to understand where decentralization and blockchains make the most sense, because we shouldn’t push those concepts on everything.
From a technology point of view, decentralization is particularly valuable for “base layer” services, i.e. what everything else relies on, such as identity, reputation, communications, social networks, markets, and making them work without relying on specific trusted intermediaries in the middle. From a software applications perspective, blockchains are useful for enforcing decentralized consensus on databases that update themselves according to order-dependent state transition functions (where the speed of updates greater than one minute is acceptable), and this is where the network for powering Ethereum-based smart contracts can shine. These can be used to securely execute a wide variety of services including: voting systems, domain name registries, financial exchanges, crowdfunding platforms, company governance, self-enforcing agreements, intellectual property, smart property, and distributed autonomous organizations.
Part of the Ethereum vision is similar to Bitcoin’s in terms of enabling decentralization, but the devil is in the implementation details. The Ethereum platform has been designed from the ground-up to enable decentralized applications, whereas Bitcoin’s genesis was a financial network that has been overloaded and overlaid with additional services and capabilities that are stretching its capabilities. Protocols “built on top” of Bitcoin are not light-client friendly, and the Bitcoin blockchain is simply not designed to be scalable enough to support every transaction for every possible use case.
Developers are choosing Ethereum because it’s easier to program advanced decentralized applications on Ethereum than on Bitcoin. To think that Bitcoin’s blockchain can do all of what Ethereum is delivering is misinformed thinking.
Actually, a contrarian (but logical) view would be to think that Bitcoin needs Ethereum to succeed, because that increases the proof points and legitimacy for the viability of consensus-based applications development. Ethereum developers and partners are solving and implementing big issues in this space, and their success will inspire the global crypto-technology ecosystem in its entirety.
Developers decide with their code. Success will come based on the merits of each application or business initiative. Whether an application runs on Bitcoin or Ethereum is important during the development phase, but once in the marketplace, users decide by adopting and engaging with the best applications. So, if Ethereum development offers an advantage and you can exploit that, that’s great.
The critical masses we need are ones of users, developers, investors, and innovators, not just miners.
In the long term, both Bitcoin and Ethereum are going to be viable platforms, each attracting the types of applications that best fit the respective platform characteristics.
Conclusion
Another way to view the cryptography field is in terms of Bitcoin Apps and Blockchain Apps. Ethereum is squarely entrenched in the Blockchain Apps space which is a quite imaginative one. Its superiority shines via the implementation of advanced decentralized applications whereas Bitcoin’s blockchain has limitations, despite proposed overlay protocols, side chain projects and other Bitcoin improvement proposals.
To think that Bitcoin is the only needed cryptocurrency/blockchain implies a lack of understanding for the field of cryptography-based computer science which is the larger theme at play. That would be like saying that Fortran was the only language needed back in 1957 when it was deployed by IBM who developed it, just because it enjoyed some success then as the first industrial high-level programming language. Or, if homes were just invented, saying that building homes with wood from trees is the only way to build them. And let’s not forget what Ford said in 1922: “Any customer can have a car painted any color that he wants so long as it is black.”
Many of the arguments for Bitcoin dominance are biased by self-fulfilling prophecies or wishful scenarios. The cat is already out of the bag when it comes to innovation and adoption in alternative cryptocurrency protocols, and there is simply no real reason why Bitcoin is destined to succeed on its own, and that other alternative protocols would fail. Bitcoin and its blockchain don’t offer a silver bullet when it comes to decentralized applications development. There is hard work involved, but that work is a lot easier with Ethereum.
When you talk to developers, and see the level of activity around the Ethereum technology, you will quickly realize that Ethereum is spurring business and societal innovation at the global level, while opening the door to a new class of applications, never seen before. Ethereum is leading the pack in decentralized applications protocols because of the support and vibrancy of its community members who are being drawn by the superiority of its platform capabilities.
But Ethereum is under no illusion that this won’t be a step-wise process, as it aims to gradually solve increasingly bigger problems, while starting with the more basic, simple and straight-forward ones.
If Bitcoin has shown us the future of money, Ethereum is pointing to the future of decentralized software applications.
If you are still not sure, ask your developer.
William Mougayar is a special advisor to Eth Dev’s executive directors. His work in technology spans 33 years as a 4x entrepreneur, book author, speaker, consultant, mentor and angel investor who previously held senior positions at Hewlett-Packard and Cognizant. He blogs on startups and the cryptocurrency economy at Startup Management.