Ethereum

June 19, 2016

Many people ask me what I do for a living, and I can’t really find a good article that summarizes what ethereum provides without dumbing it down to the point that it seems meaningless, so here goes.

Ethereum: The World Computer

Ethereum is a world computer, or “world server”, but what does that mean? Let’s take a look at how interacting with a server normally works today. When you use an app, or a website, say Google, your browser or app communicates to a server, that server stores code, data, UIs, etc, that it provides to you upon request. All actions you perform must go through that server, and the server is owned by and under the control of a single entity, in this case Google. Google must pay the server bills, write the code, maintain and upgrade the systems, keep them secure, and they have access to all the data you give them, and log all your interactions. This works fine, but it gives Google an awful lot of power and control, over both your data and your content. Furthermore, the more users Google has, the more expensive it is to maintain a service like Google, and so Google itself is over time incentivized (like all other companies) to maximize the profit they make from their users, and this causes situations where your data gets sold or used in ways that you wouldn’t be happy with… but how do we fix this? Surely someone must pay for these systems, and the people who pay need to have control, right?

Enter Ethereum. The main paradigm shift is that, instead of having 1 server (or a group of servers) controlled by a single entity (i.e., Google), anyone who participates in Ethereum can be part of the world server. The “resources” (data, code, etc) are stored by every single person on the Ethereum network. The Ethereum software takes the code that people submit and pay to have run, and the data is stored on the world’s Ethereum network. This makes it so that no one has control over the code that runs, and no one has control over the total infrastructure, it is in a sense autonomous, all the computers that run the Ethereum client compute all events on the network and store them into a database called the blockchain. The important difference between the blockchain and a normal database is that, you can never change the history of the blockchain, you can only add to it, and the history of events is verified through a combination of network consensus (all participants agreeing that something took place) and cryptography (a way to make it very difficult to fake certain types of events).

Why is this desirable? Well, firstly, you no longer have to trust Google or whatever company to do good by you, whenever you create a platform or a service on Ethereum, it becomes a part of the network, and the code is run exactly as its written. No corruption or change of heart is possible. Furthermore, you can verify that the code that people say is running is actually running, by simple running the Ethereum client and looking at what is called the “smart contract” - code which underlies the service you wish to use. The term “smart contract” is used because, in essence, when you use a service on ethereum you are entering into the computational analogue of a contract. The smart contract specifies, in no uncertain terms, what it will do if you interact with it, request a resource, input some data, etc. It will do just that, no more, and no less, and the entirety of the network will verify and log the fact that the event took place, and your interactions become a part of the blockchain.

The biggest benefit to the blockchain being distributed to everyone, but also unchangeable, is that you have irrefutable proof that something you did happened at a certain time. If we make an analogy to the standard model, where you talk only to Google’s server, you can’t prove anything happened, because only you and Google were part of the interaction. Instead, on Ethereum, when you do something, it’s like being in a room full of people thousands of people and yelling out a request, and everyone recognizes your voice so they know its you (and no one can pretend to be you, since only you have your voice), and everyone writes your request down in their notebooks, and they all give you an answer at the same time. Everyone in the network does this for all requests. So even if there are some cheaters and liars, they are dwarfed by the amount of people who act according to the network rules, so they have no effect. There is no “he said she said” situation in Ethereum. Either it happened and everyone knows it did, or it didn’t happen at all.

Ether - The World Currency

You might be thinking - who pays for all of this? Well, everyone who participates Ethereum. This is where Ether - the currency used to make Ethereum “run” comes into play. Just like if you want to use the internet, you must pay your Internet Service Provider (i.e., Verizon or Comcast for example), in the same way you pay for your interactions on Ethereum. This is part of what makes Ethereum scalable and allows individuals to create systems that would be far out of their reach economically. If I want to interact with a service on Ethereum, I pay just for the amount of computation required to satisfy the resource requirements of my interaction - no more, no less. Hence, if I create a very popular service on Ethereum - I have to pay nothing to keep it running, the users pay for it as they use it, and the entire network sustains the infrastructure that underlies the service. The people that run the Ethereum client in a mode that helps compute and verify events in the network are called “miners”. These miners are rewarded for their contribution to the network by receiving a part of the Ether that the users paid when they used their respective services. Around every 10 seconds a “block” of events is “mined” in Ethereum, and that block becomes part of the world network history. Hence why the database is called the blockchain - you can see it as a series of blocks, all which present a picture of what took place inside any 10 second snapshot of time.

Trustlessness

Another interesting aspect of this is that you no longer need third parties as intermediaries in case of disputes. For example, say that you think the price of Apple’s stock will go up. You sign up on some betting site, or stock trading site, deposit some money, and bet $1000 that the price of Apple’s stock will go up by the end of the day. Say that you’re right and you win your bet - you are trusting the company that owns the site to honor their bet with you. Even so, for longer, more significant bets, the company itself may go bankrupt or close down before your bet closes, or the company may just refuse to pay out or make it difficult for you to withdraw your money - what then?

On Ethereum, none of these problems are present. You already have Ether, as part of using the network, which is worth money. So you don’t need to open an account, or deposit any money, or trust anyone with your money. Someone can write a “smart contract” betting system based on stock prices, and you can “enter” into a bet by calling (interacting) with this smart contract, and “lock up” $1000 worth of Ether in the contract, laying out conditions such that if Apple’s stock price goes up, the contract will repay you the money + the winnings of your bet. This is verified by the entirety of the network, and you need to trust nothing and no one as there were no humans involved in any of this process, it was all done on the blockchain, as part of Ethereum’s world computations. The Ethereum “network” can’t come together to try and steal money from you, or lie to the contract, because the cryptography makes it impossible for anyone other than you to move money from your account - and to change the contract terms would require the entire network (many thousands of people) to come together and decide to ignore the contract, which is unlikely for any individual, seeing as the network is diverse and made up of thousands of people and servers across the world, it would be near impossible to get them all to collude to break the network that they themselves use to make money and run services.

Conclusion

The Decentralization, Trustlessness, World Computation, built-in Ether Currency that is outside of the control of any government, company or organization, and the ability to create services, systems and code that will forever run as long as people are interested in the services without requiring you (the creator) to pay for them creates some amazing possibilities, and the best is still yet to come!

comments powered by Disqus