 I'm an open source person and going to talk about an open source project tonight. The project is in some ways virtual hardware, so I want to talk about the concept of a world computer. As I go through I'm going to move quite fast, I don't really know what range of interests you all have. As I go through, I'm going to move quite fast. I don't really know what range of interests you all have, so I'm going to talk about the idea in general and then sort of dive into detail for a bit and show things like opcodes briefly. And then go back to talk about what the motivations for this are, what the use cases are and why this is of interest to anybody. So I'm going to start with this lovely graphic. So here is a classic computer, back from the days when the world only needed tens of computers or whatever. And the system I'm talking about is in some ways harking back to that idea of there being a mainframe that terminals can access and tap into the compute power of. And obviously the world computer that I'm about to talk about has many more advantages than an old IBM mainframe, but I like this image because it does remind me to remind everyone that I'm talking to that the purpose of this world computer isn't computation power. So it's a computer that everyone can access and use, but it's not there to solve incredibly hard problems or find prime numbers or solve computation dynamics problems. It's there to do computation, but it probably runs about as fast as one of these in its current implementation. OK, so I want to talk about the concept of a virtual machine, so a computer that doesn't have any physical thing underlying it that you can point to and say this is the computer you're accessing. This is cloud computing in the pure sense, so at the moment if you buy cloud computing you tend to actually just buy a computer somewhere and you're actually just connected to a particular chip. But here we're talking about real virtual computation, so there isn't any computer that's running this. And the idea of this world computer is as a trusted computation and storage platform. So it's a computer, so it can do computation, it has memory, it has state that you can go back to, but it's there and it's always there and it can be accessed by anyone. So part of the talk that I want to give now is to try and convince you of why this is a useful idea. So this computer, it's a virtual computer, it can access it from anywhere that you have an internet connection and it has a processor, it can do computation and anyone can write a program for this computer and upload it to this computer and anyone can ask for that computation, that's executable if you will, to be run. So it's there, now the program might say in its first conditional do you have access to the full functionality of this program and if you're the wrong user then the answer might be no in which case it will stop. But anyone can ask for any program on this world computer to be executed. And one of the most important parts of this world computer idea is that the computation is guaranteed to run correctly. So there's no issue regarding coercion or subversion or errors, the computation is guaranteed. So the output state is something that everyone can trust is correct. And again I'll come back to why this is important and the other element is that it's ubiquitous. So as I said as long as you have an internet connection you can connect to this world computer. Okay, just rewinding slightly, the internet, the internet is fantastic. The internet is decentralized communication infrastructure so you can't turn the internet off. You can destroy nodes, you can put firewalls over particular areas but in principle the internet is decentralized so anyone can join their infrastructure and be part of running the internet and anyone at any time can remove themselves from the infrastructure of the internet. As various motivations around the world kick in more connections are made, more undersea cables are added to the internet and this makes the internet a more powerful communication tool for us all. So the decentralized nature of the internet is now something that we take for granted. We tend to think right, we're going to connect to the internet and we're going to be able to access all the other servers on the internet without hindrance and taking this for granted is a fantastic state to be in. So this is different to services where you want to try and get some information to someone by calling them up or using a different communication channel and you can't because something has happened. There's been a malfunction in this proprietary infrastructure, it's undergoing maintenance, it's been damaged or whatever but the internet by being connected together in a peer-to-peer fashion means that if something happens to particular channels through the internet then they can just be corrected in a different routing. So the internet I'm suggesting is fantastic for its decentralized characteristic and this is now just an implicit part of the internet but we've seen that the way we use the internet is far from decentralized. So when we go on and log in to LinkedIn or our email or whatever services that you're using the internet for they tend to go via centralized services and those centralized services are bottlenecks and points of weakness in the service that you're trying to use. So because of that there's been an increased interest in decentralized peer-to-peer services running on the decentralized internet. So we've had BitTorrents is probably one of the most famous ones so there being able to share data, share files with other people on the internet in a way that can't be stopped as long as people want those files. So BitTorrenting information to each other is a peer-to-peer decentralized process whereas storing your data on Google servers is very much a centralized way of sharing data across the internet because if at any time Google decide to deny access to someone they can no longer access that data whereas that's not possible, that sort of censorship isn't possible with BitTorrent. So how far can we take peer-to-peer services on the internet and my answer is we can take it as far as a computation platform and that's the world computer that I started out the talk with. Now the world computer that is currently in existence is called Ethereum and Ethereum is the project that I've been working on for the last two years. Now I've moved to a company called Ethcore that will be continuing the development of this world computer technology but Ethereum and the Ethereum project is an open source not-for-profit project and it's been deployed and it's running now so we now have a peer-to-peer computation capability on the internet so this world computer that you can access and you can access it in this peer-to-peer fashion so that there's no way of anyone saying no the world computer has to be shut down now because it just carries on running in a fully decentralised fashion. Okay so just to go into a few details about using the Ethereum world computer so you have a computer and you want to connect to the Ethereum computation platform so you send cryptographically signed instructions to the world computer and then it sends back state data. This is sort of notionally the way it works and you can either upload a new programme, a new executable that will then reside forever on the Ethereum platform or you can ask for an existing programme that we call contracts for reasons that will become apparent in a few minutes you can ask for one of those existing programmes to be run and if it runs in a way that you're allowed to access then it will change the state of the world computer and it will change a state in a way that everyone will see that's part of the guaranteed nature of the world computer and you can also transfer a cryptocurrency on it called EtherWitch as far as this talk is concerned is entirely relevant so I just put that there for completeness and I'll skip over it. Now just quickly for people who are interested in this level of detail an Ethereum contract, a world computer programme is EVN code plus persistent storage and that persistent storage exists on the platform and as I said will remain there in a decentralised and fully guaranteed fashion so EVM is the Ethereum virtual machine so that's the actual computation power that you're accessing with the world computer and every time that a programme has an execution request so every time you send that request to the Ethereum platform and the world computer to have an existing programme executed then a new virtual machine Singleton is instantiated the programme is loaded into its ROM the contract storage is loaded from the decentralised platform into this virtual machine and then everything is initialised, the programme counter and the stack and such and the programme is executed and the Ethereum virtual machine has a nice array of opcodes and all the standard things that you'd expect less than, greater than, copy, programme quality increments etc etc these ones over here, difficulty, gas limits, gas there they're particular to the way that the virtual machine has to run and for this to be the ubiquitously accessible world computer that it aims to be if you want to write some code you can actually write very standard looking object-oriented code actually this isn't object-oriented this example but it could be and what this particular contract does even though it's only, I'm not sure if it's 15 lines of code or so this creates a new currency and if it's deployed onto the Ethereum platform then in a guaranteed way this executable here will allow people to be, particular people to be given value tokens that they can then exchange with other people and it's all guaranteed to be uncheatable so this should be a currency with say 10,000 tokens in it and those 10,000 tokens are part of this currency and they can never be increased or decreased Marks and Spencer's could use this for their voucher system and they wouldn't have to create their own infrastructure with user databases and such that could be hacked because the Ethereum platform can handle it all for them in a secure and guaranteed way and it works using a demon and you can talk to the demon using JSON RPC so if anyone's interested in that level of things then you can come back to this so if anyone's heard of bitcoins then that's a related technology this is a diagram representing how simple the bitcoin platform is compared to the processing capabilities of the Ethereum platform so why would you want this world computer that everyone can access at all so it's good for anything where conditional agreements need to be enforced now the enforcement of agreements happens all the time we get a taxi to go to the station we buy something in a shop we go to eBay and purchase a new bicycle whatever, we enter contracts we enter agreements and they have to be executed and the conditions satisfied for everything to be worthwhile so the problem that the Ethereum world computer is trying to address is to what extent can we automate contractual obligations because at the moment a lot of the way we go about actually enacting agreements going through with the contractual agreement that we enter into is actually just done on trust we say alright, yep I'm going to buy these groceries and I'll give you this money and I promise that the groceries I've got in my basket don't exceed the ones that I'm paying for and most of the time it works fine but often we need to go to third parties to act as a sort of trust for hire so when you go to eBay and you purchase something on eBay you are very unlikely to trust directly the person that you're buying goods from particularly if they are shipping from China or such so what happens is you give your money to PayPal and they hold it in an escrow and you trust PayPal and then the person sending the goods they see that PayPal has flagged up that the money is in the escrow and then they send you the goods because they trust PayPal as well and then when you say yes I've received the goods then the money is released to the seller and everyone's happy so there PayPal is acting as a trusted third party and of course they take their cut for providing that service of trust and they build up a reputation and that's what they're selling now as I suggested with that currency example earlier the Ethereum world computer can act as an automated trusted third party and not just on escrows but on any sort of agreement that has conditions that can be laid out programmatically as a executable program so in general the requirements for enforcing conditional agreements are the logic so actually what the conditions are state on keeping track of what's been achieved so far what the data that's needed in order to verify whether or not the conditions have been met and identity so are the people involved the correct people so back at the beginning we saw that all of the instructions that go to the world computer are cryptographically signed so the workshop that we're doing in a few minutes about getting your PGP keys sorted is exactly the sort of identification input that can be used to verify to the world computer that you are the person you say you are and you have the access rights that you claim so just quickly here is an example of what you might use the Ethereum world computer for so conventional action is that you get in a taxi and then the taxi takes you somewhere and you exchange cash for your new location so that's the service that a taxi provides and sometimes you don't get the location and sometimes the taxi driver doesn't get the cash most of the time it's fine but this is a simple example so now there could be a program on the Ethereum platform on the world computer that acts as a taxi escrow and you have access to it via an app on your phone and you give it money and say I want the taxi to take me to this location now the taxi driver can see the location but it can also see that the money is in escrow now the world computer because it does guaranteed computation the taxi driver can be assured that if the program that's behind the escrow says that the money can only be leased under certain conditions then the taxi driver knows that the money can only be leased under those conditions and so the conditions would be that you've arrived at your destination so as the taxi is driving along the data of location is sent to the escrow and it can be redundant so maybe the GPS of the car and the GPS of your phone are both sent to the escrow and then when you arrive at your destination then the escrow contract can see that you've got there and release the money automatically to the taxi driver and here we have an entirely automated system using the resources of the world computer to do the job of the trusted third party entirely autonomously and it can be made more complicated so for example I've put up this logo here of a service called Orga which is a service that will provide auxiliary data in a trusted fashion to the world computer so it could for example provide information about the routes in order to get somewhere so you might say right you've delivered me at King's Cross but that took you 15 minutes and really it should have only taken you 10 and you took this route whereas really it's known to everybody that the most efficient way to King's Cross is along here so then the amount of money that's paid to the taxi driver could be related to performance in an indisputable fashion so the potential here is really quite large so what we're moving towards using this world computer trusted platform concept is a crypto society where we can use our identity to access digital representations of assets and data such as the best routes from A to B to have a society that's based more on open efficiency so all of the contracts on the theme world contributor are open because you have to know that it's going to do what you think it's going to do and so we have a more open society but with this strong cryptographic security so that you can't forgingly misrepresent yourself or other people ok that's the concept world computer I hope that some of what I said has piqued your interest and please do come and talk to me afterwards because it's a huge potential that's hard to fit into one talk so it's something that we'll see cropping up more and more the economist has written about it and the government has just said that this is the sort of thing that the civil service wants to be looking at in order to implement certain aspects of the working government so there's a lot going on here but thank you very much