Ethereum for Dummies

Devcon 1 · November 2015 · 23:52

Gavin Wood presents Ethereum as a shared world computer rather than simply Bitcoin with a richer scripting language. His 2015 explanation connects auditable execution, message provenance and persistent code to applications that can interact without permission. He also examines privacy limits on a public chain and proposes a future in which public and private applications share a hybrid environment.

Speakers

Topics

From Devcon 1, hosted by Ethereum Foundation.

Transcript

actually a theorem for dummies wasn't my original title the original titles there so while I've been working on the project my appreciation for precisely what it is has changed somewhat evolved let's say at the beginning etherium was always kind of sold as this notion as Bitcoin thing but Bitcoin with maybe some features removed or some sort of added extra thing of having a a virtual machine or extended scripting language let's say and that didn't really it was a cool idea but it wasn't really really get to the heart of what

it was that we were making and you know that the idea of what a theorem was going to do was was quite limited in scope it was essentially going to be an abstraction platform for mass of the coin style financial contracts on a blockchain as time went on especially I remember in January 2014 when we all gathered in Miami and I was kind of I'd had very little sleep that week and I was thinking what is there some better way of thinking about this other than you know Bitcoin but with some sort of additional richness in the scripting language my mind got to crypto finance and I was thinking well if Bitcoin scripted finance was aetherium and this is where the notion of crypto law came

from it's actually well actually it's like finance but it's it's fully general and so finance is kind of a subset of law in a way and so maybe a theory and could be thought of as a cryptographic version of them this evolved further and basically this talk is about a later sort of realization as it were of of what aetherium is so we can answer the how that was the first thing we answered that was quite quite reasonably presented in the italics white paper back in November and we've got a pretty good idea of why that kind of stems from the Bitcoin space

decentralization why you know why it's a good thing but the what like what actually is it that's the harder question and we get you know history repeating itself people sort of they know they want it but they don't don't really know what it is so for this talk I'm going to try and avoid using much of the language that we see in this English conference so far so I'm going to try and avoid using these technical terms because these technical terms help us describe and how it works but they don't really help us describe what it is so what is it well for a long period we just didn't know this has probably lost on most you votes from a very good comedy called look around you if you get

the opportunity to see it please do well actually aetherium is a computer it's computer a bit like this one this is this is a computer this is I think it was around the early 50s and this is what they thought a home computer would look like by 2004 this one runs Fortran so it's easy to use a theorem is a computer it's it's not a very good computer it's really slow it's also really really expensive as most of you probably know by now that at least no one has been developing on it and it's got this odd property of not always

being exactly decisive about what has happened in terms of its i/o although you know after a minute it generally gets a bit more a bit more certain about things but it does take that extra time so so far it's it's not seeming like such a good invention it seems like we're going backwards a little bit but actually it's got some really interesting properties and what I'm going to try and show you is what these properties are when we think about etherium as just a computer so the first thing to notice is that it's a global singleton and it's one of possibly the first global singleton computer that's fundamentally not

localized right it's it's all other computers are generally either physical machines like my laptop here or virtual machines that actually reside within a physical physical machine whereas the etherium computer doesn't reside in any single machine it's not located physically in any particular part of the world yet there's only one of them and that's a bit of an odd notion it's a computer that in general you know there's no reset button there's no power button you can't turn it off and that again is a bit of an odd sort of an odd sort of thing to to think about is my mic still working yeah and secondly it yeah thirdly it's ubiquitous which is

all you know wherever's the internet everyone everyone who can use the Internet actually has free access you know fair access to this resource to this single to the single computer and there's more there aren't that many computers which in terms of the sort of hardware are actually multi-user they're fundamentally multi-user yeah so every time someone uses the etherium computer they're logged in and there are as many user account as we need very kind of odd notion as a computer is natively object oriented object orientation is built into the computer itself encapsulation is built in code

has data and the to own deck strictly linked and yet there's encapsulation away from all the other code and data pairings it's very accessible there aren't many computers so accessible this one we can we can interact with it just using fairly simple web primitives JavaScript and it's inherently auditable verifiable and auditable and there are not that many computers which we can replay everything of the past and always be absolutely certain of getting the same result so there's my rather dodgy artist's impression of the ethereal computer there's the world because

actually it's a it's a global singleton as the globe and all these boxes are accounts they're they're they're objects right on the side there they're the external accounts they're the ones that the objects from which messages get injected in from the outside and in the middle there these are all the objects that are executing in this object-oriented execution environment or the etherium world computer once you're in there you can't get out so the only way of getting stuff in is by these external accounts and it's from this of course that we get our our cryptographic safety so we get guarantees on code executing within this computer I mean we

get some really nice guarantees got atomicity right so atomicity for those who do database programming or those who don't do theydo based programming I guess our that basically we don't have to think about whether a transaction fails halfway through either the whole thing executes as expected or it doesn't right we don't have to bother sort of setting a particular sort of safeguards in order to rollback things we get synchronous operation so objects are guaranteed not to interfere with each other we don't need to think about the threading or processes or shared memory any of that nonsense but most importantly we get provenance so this is a very odd notion right all of the messages in our computer have some

origin we can check to see who sent the message to us and we can't normally do that right there are not many object oriented execution environments where we can do that and so if you know of another object oriented execution environment where you can check always which object sent you the message anyone nope it's the first I guess and that that allows us to build certain security constraints into the operation of our code furthermore there's permanence an object's data is permanent is they did it lasts it it cannot it doesn't change

when when the computer sort of goes off alright there is no off for this and the objects oddly enough are immortal so there's no notion if the object doesn't delete itself there's no notion that the object is ever going to die there's no system admin who can come along and actually sort of delete the object they can't log in as as root and just RM doesn't work and if the object doesn't have code that actually commits suicide then no other object can force it ever to die it's very very strange notion and finally the code that executes is immutable cannot be changed this wasn't the case in some of the earlier versions

of etherium but in the version that we have now the code is immutable so you can be absolutely certain that if this object's code is is X it isn't going to be Y down the line so why what's the point of having these particular attributes what does it give us I'm going to list a few things a few thoughts on this and the first is while aetherium is a commons for innovation right it's a place where we can all upload code upload ideas in terms of human interaction and have it just work with other things transparently we don't

need to think about you know the worst signing partnership contracts with other businesses in the same way that uber would have to do if it wanted to integrate its services with let's say air B&B we don't need to consider that because if we have a decentralized uber operating on aetherium and the same for a sort of version of air B&B then they can operate with each other if if they want to and they don't have to ask for permission of the other compared to servers this is this unleashes massive amounts of potential innovation for business servers provide barriers servers are cumbersome and yeah they make interoperability difficult and

these barriers basically make monopolies and monopolies are generally bad for innovation and of course we have interesting repercussions for privacy now of course the open chain doesn't really get you much in terms of privacy quite the opposite but what it does is it makes you think it makes you think about what data you actually want to place in the wild and what data you want to keep safely locked away on the user's machine yeah what it doesn't do is it doesn't give you this false security of placing on a third party server where only the the elite hackers and those who want to pay them can get access to it and that's kind of nice we also get this NAT this nice

authenticity yeah so with server interactions basically it's the server that authenticates you or some third-party service that you essentially have to trust with etherium you authenticate in and of being yourself had enough having access to your private key or if you've got to factor stuff then your private keys if they're M is the world's first decentralized computer that's kind of an interesting thing in and of itself because it's decentralized there's no single point of control or failure or any single bottleneck in principle in terms of where things have been going

if you look into history you find that at the beginning that tends to be very little floating around it's all very dispersed and not much is actually happening eventually you find there's a strong player a strong player sort of picks up all the dispersed they they add rules and they rule they rule they they they they place they place their own laws of interaction with this structure in place you generally find that there's enough development such that these event these initial structures are not necessary anymore if we look in software development we find that originally there were sort of individual coders eventually there was

this notion of coders getting together into a strict hierarchy right this is the sort of thing that originally the good new project was like but also obviously corporate software firms when there was a sufficient amount of development we ended up with having this in this case the internet was mostly mostly but obviously version control systems really helped we ended up with things like this bizarre model as Eric Raymond mentioned in his in his in his paper finally we're sort of evolving further even more decentralized from the bazaar model into this kind of github style you know everyone clones everyone Forks and there is sort of horizontal gene transfer of all of the various ideas going on in coding we see the same thing happening with other aspects of

the world so in computing we began with like the mainframe and then there was kind of this server client architecture and we are indeed getting into the peer-to-peer thing now with you know sort of Napster BitTorrent and Bitcoin and obviously aetherium same with kind of governments as well it kind of began with Anka Aniki right and then eventually there was some sort of like king or Emperor that sort of gathered enough strength to enforce the rule of law over a particular you know a sufficiently large amount of area and of course eventually they had to cede power because other structures were able to be built once that rule of law was in place we ended up with like an aristocracy or a merchant class and eventually we sort of we end up with with something that approximates

ma cracy say with distant sails you know the the examples continue and we end up with you know originally there's sort of back of the magazine and then we had the internet with Amazon right but still only one matchmaker one merchant and then we got this marketplace idea why they're still a single matchmaker but there are lots of merchants all sort of operating within the within the framework and probably eventually we're going to see a plurality of matchmakers where matchmaking itself is a service that can be provided by by a market same with communication and that there is a theme here we begin with nothing we centralize in order to enforce these initial rules and then we can decentralize once that structures in

place we decentralized because it's more efficient it's more scalable and it's more resilient to attack a theorem commoditize is trust this is something that I think the Economist discovered last week it's a it's a it's a bridge you know to cross the sort of boundaries of these these sways of land where there's internal trust but they don't really trust each other and that's why we're going to find that the initial use cases spawning from because that's where it can really deliver value initially we could call it indeed a platform for zero trust computing and in a way a theorem could be the court of the internet sort

of interesting notion where the Internet can have its own its own sort of place to determine what is what is right or wrong or when two people over the Internet have an issue with each other there is a lack of consensus then etherion could step in in principle if there iam is a crypto law platform in this sense right it's a decentralized legal system native to the Internet we can implement these arbitrary social contracts and have people operate within them with nothing more than access to the Internet it's also a pivotal part of the notion

of this serverless internet right the notion of like whatever you want to call it the post Snowden web right web 3 it provides the zero trust computing part it provides the part that actually underpins all of the all the stuff that we'd normally go to an authority to the database sitting on a server somewhere and with a bunch of other technologies it can it can actually provide that that that infrastructure for doing massively multi-user applications in a in a you know in a truly different manner so yeah that's my thoughts on what aetherium is over and above being a scriptable blockchain environment any questions so

I wanted to ask if you are thinking about because like basically a theorem is a tool yeah so that's like one part of the story but it's also important that the people that using the tool are also important so have you know did you think about these things or is there anything that could like go in parallel with the development of the tools that could help you know with that the consciousness part of the problem so you know to educate the people how to live within a system that is facilitated by a

tool like this because that the people could could either you know make it or break it yep yeah I mean I think it's not especially clear what that what that system is going to be yeah I think we'll sort of discover that in the coming in the coming years when we see the infrastructure that gets built I mean this is this is very much the sort of the core technology layer and just as you know when the first computers came out in their 40s and you know it's like ah you know what what's this going to do it might make a few people who are sitting a hall doing abacus calculations out of a job but basically is it going

to change the world well we can't really see what the final applications are so maybe not and of course yeah it turned out rather differently so and it's difficult to comment on precisely how we might try to shape what the eventual outcome is from this technology but yeah I guess attempting to be useful and inclusive is probably a reasonably good way to to set about it one more question do you have any thoughts on what some of the like the things that are going to

take the longest or be the hardest to to transition from the old model onto this new model oh um I guess inevitably there's with any new way of doing things there are people who stand to benefit a lot and there are people who stand to benefit much much less and yeah persuading them that actually there's no option they should really you know I don't know what what do they say you should you know shoot yourself in the foot I'll be shot in the head tomorrow you know it's like well persuading them to shoot themselves in the foot now is

going to be difficult so I would say that it's the hardest things to me seem to be the people who at the moment relat have a relatively easy existence or people I say people in organizations because that's what that's what it is isn't it and persuading these guys that actually what you know they need to start thinking about things in a in a different manner a radically different manner is is going to be the hardest task and the only way we're going to be able to do that is basically it's how you convince and better to invest right it's an MVP so you show them look there you can see it working it's this is how you know once

people realize this you're not going to be competing with this that you can't possibly compete with this technology so just get real and start start thinking in different ways but yeah I don't know I guess that's probably why ting and we just have one more quick question a lot of us heard in this conference relative to previously a lot about private chains right and my question to you is as we progress forward into the future how do we ensure that sort of like the public chain doesn't get starved while the sort like the concept of a private chain sort of flourishes naturally because of the investment in in it yeah good question I would say that the the first thing to do is to make sure that all of the

technology that goes into private chains is free and open the second thing to do is as much as possible make sure that resources are shared so any of the sort of resources that go into private chains necessarily go into public chains so one way of doing this is by making avoiding like forking code bases and trying to integrate as much as possible into as the same code base yeah so that IP cannot be sort of torn out and kept hidden in the dark and the the final things that I think is is more strategic and that's to try and make sure that we're always looking forward to the point where whatever it is that private chains deliver the public chain can also

deliver so we should be looking forward to a point where we're not there aren't private chains and the open chain you know where is a we should be looking to a point where that's a false choice and where there's actually the real choice is a single sort of hybrid chain where what what needs to be private for particular applications is private what does it need to be private isn't private and actually all operates in essentially the same environment so that's something that I'd like to see and that's something that I hope you know as a community we can eventually develop an and and implement great thank you and good for Gavin