Join GitHub today
GitHub is home to over 28 million developers working together to host and review code, manage projects, and build software together.Sign up
What is Ethereum
What is Ethereum?
Ethereum, like any advanced system, will mean different things to different people. As you read this section, some bits may not resonate with you or even make sense. That is fine, just skip to the next paragraph and hopefully that one will be more enlightening. If you reach the end of this section and still feel confused, then jump on a forum and start asking questions. You can also read this introduction.
- A World Computer
- An Internet Service Platform
- Opt-in Social Contracts
- Part of the Decentralization Revolution
A World Computer
"It is very possible that ... one machine would suffice to solve all the problems ... of the whole [world]" - Sir Charles Darwin, 1946*
In a technical sense, Ethereum is a "world computer". Harking back to the days of the mainframe, and probably about as fast, Ethereum can be viewed as a single computer that the whole world can use. It notionally has only a single processor (no multi-threading or parallel execution), but as much memory as required. Anybody can upload programs to the Ethereum World Computer and anybody can request that a program that has been uploaded be executed. This does not mean that anyone can ask any program to do anything; on the contrary: the author of the program can specify that requests from anyone but themselves be ignored, for example. Also, in a very strong sense, every program has its own permanent storage that persists between executions. Furthermore, as long as it is in demand, the Ethereum World Computer will always be there: it can't be shut down or turned off.
You may ask, "why would anyone use such a system?" and again there are many reasons. The main reason is because it makes what you want to do cheaper and easier. This statement needs to be broken down somewhat, which is what the following paragraphs explore.
An Internet Service Platform
"Technology gives us the facilities that lessen the barriers of time and distance - the telegraph and cable, the telephone, radio, and the rest." - Emily Greene Balch
In a more practical sense, Ethereum is an internet service platform for guaranteed computation. More than that, as a platform, it provides a set of integral features which are very useful to the developer:
- user authentication, via seamless integration of cryptographic signatures
- fully customizable payment logic; easily create your own payment system without any reliance on third parties
- 100% ddos resistant up-time, guaranteed by being a fully decentralized blockchain-based platform
- no-fuss storage: forget about having to set up secure databases; Ethereum gives you as much storage as you want
- ultimate interoperability: everything in the Ethereum ecosystem can trivially interact with everything else, from reputation to custom currencies
- server free zone: your whole application can be deployed on the blockchain meaning no need for setting up or maintaining servers; let your users pay for the cost of their using your service.
Over the last twenty years in particular, we have seen an acceleration in the development of services and infrastructure to make the overhead of working as a team or running businesses simpler and less expensive, mainly thanks to the internet. The likes of eBay, Drivy and Airbnb have made setting up a shop, car rental company or hotel much easier. These are platforms that allow people to realize their idea quickly, as long as the service they want to provide fits the template offered by the platform. Outside Ethereum, it is very costly to create a new platform if those that already exist do not fit your needs. Ethereum can be seen as a platform for platforms: it allows people to easily create the infrastructure to make it easy to set up new services on the internet. Furthermore, any infrastructure created on Ethereum sits alongside everyone else's creations, and so can interact with those other platforms in a guaranteed and seamless manner. Importantly, because there is not a company or indeed any entity in charge of or controlling Ethereum, the cost of running the infrastructure doesn't have to include any profit margin, so we are likely to see lower costs.
With the coming of the Mix IDE and the Mist browser, the functionality of Ethereum as a deployment platform for internet services will become more clear. The take-home message from this section, however, is that Ethereum is poised to disrupt industries as diverse as finance and supply chains.
Opt-in Social Contracts
"This is an era of organization" - Theodore Roosevelt, 1912**
At a more abstract level, it is a facility for enabling smart organization, in the sense of groups of entities working together for a particular cause. In the simplest scenario, we have two people working together to achieve a trade. Ultimately, Ethereum could be used to run countries. Somewhere in between there are groups of people wanting to organize baby-sitting circles, film-making collectives, discussion groups, communal houses, etc, and they all have to decide the rules with which they will operate together. Arguably, the harder task is how to implement and enforce the rules, especially given the variety of characters, abilities and motivations that the human race provides. In other words, how do you stop Jo hogging the camera equipment, or Dave never doing his turn of the childcare? Ethereum provides a platform on which rules can be defined and, to an ever-increasing degree as technology improves, enforced. For example, the camera could be listening to the blockchain and only record if the film-making collective's DApp approves Jo's access code.
Crowdfunding is a key example in the advancement of organizational tools. It provides a couple of really important functions: a way for individuals to work together for a particular cause (in this case giving a wedge of cash to a person or group) and a mechanism for individuals to interact meaningfully with potentially large companies (such as a games studio). The first follows from the previous paragraph, but the second point is impressive also, because in general individuals can only communicate with large organizations on the organization's terms, which often default to "ignore"; in the same way you ignore the bacteria on your skin. As it stands, you might be disgruntled by the crowdfunding recipient taking your money and spending it in a wholly-inappropriate and therefore inefficient manner. However, it's hard to get the operating company to act on your behalf against the recipient. After all, the crowdfunding service provider is likely to be a large company and there isn't a universal mechanism with which you can meaningfully communicate with it if it does not want you to. Ethereum can help by allowing you to define post-funding milestones or conditions to stage the payment of the total amount raised, and then enforce those conditions for you. As times goes on, we will get more creative in the ways in which Ethereum can interact with the real world and the ability of Ethereum to check that milestones have been completed will extend beyond the obvious such as "30% of the crowd that funded the project (by value) have voted that the milestone has been passed".
Part of the Decentralization Revolution
"No matter who you vote for, the government always gets in" - The Bonzo Dog Doo-Dah Band, 1992
Philosophically, it is the next step in re-decentralizing the internet. A decentralized system is one that anyone can unilaterally join and participate in, one in which all participants contribute to the running and maintenance, and one in which any participant can unilaterally leave. When they do leave, the system continues regardless. In a decentralized system, there is no entity that can prevent participation or arbitrarily censor the content or usage. The internet was designed to be decentralized, but the way we use it has become increasingly centralized, to the point where censorship and exclusion are accepted and expected. Blockchain technology, introduced by Satoshi Nakamoto with the proof-of-concept implementation of a simple value transfer system known as bitcoin, represents the best digital system we have (after the internet itself) for administering multi-user interactions without any need for centralized coordination or oversight. Effectively, a decentralized system is its own authority for enforcing the rules (e.g. 'you can only spend your money once' in bitcoin, or 'whatever rule you programmed in to your smart contract' in Ethereum), so participants can be confident that the rules they expect to be enforced will be, without any danger of corruption, bribery, nepotism, political bias, exclusion, arbitrary exceptions, human oversight or absence of staff.
Ethereum allows people to safely interact trustlessly by entering into neutrally-enforceable agreements in a completely peer-to-peer fashion. Now, it must be remembered that Ethereum can only enforce within its own digital limits; Ethereum does not remove the need for an external authority for adjudication over disputes outside its realm---"the other party punched me in the face after putting in the Ethereum contract that he wouldn't" is non-sense, but rules exist elsewhere to cover this---but what Ethereum does do is allow us to push the boundary on what the digital realm can cover.
Gavin Wood has distilled the description of Ethereum to being a collection of non-localized singleton programmable data structures. What this means will depend on where you are coming from, but wherever you are, it's probably going to be better with Ethereum.
*Copeland, Jack (2006). Colossus: The Secrets of Bletchley Park's Codebreaking Computers. Oxford University Press. p.109
Note that T.J.Watson, the former head of IBM, almost certainly never said, "I think there is a world market for maybe five computers", although for a time (late 1940s, early 1950s) it was indeed the case that there was, in the United States, a market for about five computers.
**Presidential speech, Milwaukee, Wisconsin.