ETHEREUM FOR DUMMIES
Ethereum is a decentralized platform that runs smart contracts: applications that run exactly as programmed without any possibility of downtime, censorship, fraud or third party interference.
Even though Ethereum was founded in late 2014, and the volume of articles explaining the intricacies of the technology has grown in the past year, the concept remains complex to grasp. This yellow paper written by Ethereum CTO Gavin Wood or the original white paper written by founder Vitalik Buterin are indicative of the underpinning complexity of the concept.
This post is intended for the average user of the internet — someone who uses apps but does not necessarily develop them, makes online purchases but does not necessarily understand how they are transacted behind the scenes.
We recommend checking out these resources from the Ethereum founding team and decide if you even need a simplified explanation.
Ethereum for Dummies by Dr. Gavin Wood [CTO, Ethereum]
Ethereum explained in 100 seconds [Gavin & Vitalik]
What is Ethereum? [slides from Ethereum team]
If you’re still with us…
Let’s start with the computer.
If you watched at least part of the above video, Ethereum’s CTO Gavin Wood describes it as:
a “global computer”
We’d like to stick with Gavin’s theme and explore what he really means. A computer is, simply put, a computational machine: it takes inputs, processes these inputs using certain instructions, and creates outputs.
Now, let’s imagine that you want to record a song on your computer. You could fire up some recording software, start singing and save the song as a file on the computer. You have full control and ownership of this file.
Or you could use an app like Soundcloud and record your song directly onto the cloud. You still own this song, but Soundcloud technically can at a later time decide to change its ownership policy.
Cloud capabilities in essence have allowed end users to transfer ownership of resources such as computational power and storage to companies whose sole business is maintaining such resources. By design, this is centralized control of resources.
Instead of recording your song to Soundcloud, imagine if you were able to save the song on thousands of computers around the world. If you’ve used a torrent service, you’d instantly know what we’re talking about. This is, by design a decentralized system.
At it’s core, Ethereum uses blockchain technology. In lay terms, this means that Ethereum’s global computer is designed to process instructions in a decentralized way, relying on the processing power and storage resources of multiple computers or “nodes.” With this new understanding, we will extend Gavin’s description of Ethereum to call it:
a “decentralized global computer”.
What types of instructions does Ethereum process?
In the video, Gavin goes on to use another analogy to describe Ethereum.
If bitcoin is cryptofinance, Ethereum is cryptolaw.
Again, let’s take Gavin’s cue and make sense of his statement in a real way. In an effort to generalize the benefits and applications of a decentralized currency (Bitcoin) system, Ethereum founders looked at law, more specifically contracts, as the next logical evolutionary step. In a world of currencies and transactions, contracts seemed like the most effective mechanism to enforce trust.
By tapping into the computational and programmatic advantages of blockchains, Ethereum aimed to make contracts smarter. As a result, Ethereum evolved into a platform to run smart contracts. According to Ethereum, anything that can be mathematically represented can be programmed and put into a smart contract. Further extending our definition from earlier, Ethereum can be described as:
a “decentralized global computer that processes smart contracts”.
How do these smart contracts work?
Let’s go back to our computer analogy: we established that Ethereum’s “global computer” is capable of processing instructions. Additionally, Ethereum expects these instructions to be programmed as a contract, i.e., an agreement between two or more parties that enables a transaction.
To simulate an agreement, let’s imagine that you want to sell a recording of your song. Ignore for now how or where the song is hosted.
First, we define a contract stating that the song will be made available to download when a payment of $1 is made. Technically, real world currencies cannot be directly made available on the Ethereum network.
Next, in order to add this contract on the blockchain, it needs to be converted into a piece of code that executes the simple instruction:
‘pay $1 → download file’.
Programming this instruction is made possible by Ethereum’s own contract language ’Solidity’. [note: Ethereum allows developers to use such tools to build applications for end users. Users will not need programming knowledge to create contracts].
When this instruction is coded and deployed to the blockchain, the contract is assigned an address which looks something like:
This is an address that resides on the blockchain, and becomes the basis of all future transactions.
In our example, when some user Alice wants to download your song, she’d copy this address to her crypto wallet (or create a wallet first), and within a few seconds, the funds will be verified by the blockchain, $1 will get deposited into your crypto wallet, and the song will be available for Alice to download.
Since the blockchain ecosystem is still in its infancy, transaction processing is not as intuitive or straightforward as typical online transactions we’re accustomed to. This is changing rapidly, however, with a number of new apps focused on improving user experience. A future post will delve into the mechanics of blockchains to describe why they are effective, immutable and foolproof.
Why is it smart to execute contracts this way?
To appreciate the genius behind Ethereum’s smart contracts, we’d have to take a look at how contracts are being executed today. Let’s review what happens behind the scenes when purchasing our song from iTunes.
* When Alice purchases our song on iTunes using her credit card (assume Chase), the bank (assume BoFA) that processes credit card transactions for Apple sends a payment authorization request to Chase.
* Chase then returns an authorization code if Alice’s balance checks out. However, no money has exchanged hands yet.
* Alice’s transaction along with every other transaction at BoFA is saved and sent for processing to MasterCard (credit card processor) the next day.
* MasterCard sends Alice’s transaction to Chase, pulls $1 from her account, pockets a small transaction fee, and sends the remaining amount to Apple via BoFA.
* Finally Apple deducts its own share of the $1 before depositing money into our bank account.
As you can see, a typical agreement between two parties requires arbitration or audit from third parties to legitimize the agreement. In the above example third parties are required to process the payment (credit processor) and hold money (bank). Ethereum is designed to do away with both these entities.
First, blockchain technology replaces payment processing entities by using an immutable and foolproof verification process that executes instantly. Secure record keeping is one of the main reasons large financial institutions are evaluating the blockchain technology.
Second, banks on either ends of the transaction are replaced by digital wallets, linked directly to individuals and secured by complex mathematical cryptographic functions.
To answer our original question, the intelligence afforded by Ethereum to programmatically execute contracts and enforcing trust via the blockchain makes these contracts smart by design.
Article written by @vasa_develop
This article was originally published on Hackernoon.