Ethereum: The World Computer

919 words
4 minute read

dragon

World Computer

Ethereum is a computer which all other computers can use, and share, and ”see into”. It’s the “World Computer” because it’s the one central computer that every other computer can plug into and coordinate under. It’s the Internet’s computer. It’s the unifying brain that was, until now, missing from the civilizational nervous system that is the Internet.

The World Computer is a computer just like any other in some sense. It is a machine which can execute arbitrary computational tasks. Ethereum is more of a virtual machine than a physical computing machine, but that’s not actually very important — everything is executed on physical hardware at bottom.

Ethereum is Turing-Complete, which is very important. Turing-Completeness means that the machine is fully general. Anything that could be computed by any computing machine imaginable, could in principle be computed by any Turing-Complete computer.

What is special and new with Ethereum, however, is its property of being the world’s first shared computer — it is the first “World Computer”. The World Computer is readable by anyone, anywhere — it is fully public. It is also fully accessible by anyone, anywhere, in that any person or entity can write code for it, and anyone can call functions on its code. So it is truly a globally shared computer.

The implications of having a World Computer will likely not be appreciated for decades. But I strongly believe it will prove to be more impactful than the Internet itself has thus far proven to be — which is to say it will be more impactful than virtually any technological achievement in modern history.

Turing Completeness

Maybe the most important thing to understand about the World Computer is the aforementioned Turing-Completeness. To be accurate, no physically realizable computer is actually Turing-Complete, because Turing-Completeness requires an infinite memory. But languages and instruction sets can be Turing-Complete in their expressiveness, and the Ethereum virtual machine does have a Turing-Complete instruction set and language(s).

Turing-Completeness is a category of computational expressivity, or power. Any computing machine which supports Turing-Complete instructions is just as powerful as any other computer which supports Turing-Complete instructions. That is not to say that these two computers are as fast as each other, or that they have as much memory, or similar network speed — rather it means that there is nothing in principle that one machine could compute which the other could not compute given enough time (we actually have to assume infinitely expandable memory, but that’s fine, it’s the concept that’s important).

There are “lower” computing machines which are not Turing-Complete. These machines are limited in their ability. There are certain computations that they just cannot do, no matter how much time and memory you give them — these machines are just too narrow, too simple.

Turing-Completeness is the highest level of computational expressivity — it is computational universality, computational generality. This is important to understand because the Ethereum World Computer being Turing-Complete means it is already maximally powerful in this sense. It is “perfect” in this sense. You cannot, even in theory, create a more powerful computing machine (Turing proved this). You can certainly make it faster. You can add more memory and storage, you can even add-on quantum computing capabilities. But all of these simply make the system perform faster, they do not add anything fundamentally new. In a sense, these are all trivial upgrades.

The Ethereum Virtual Machine

The EVM is like the CPU of the Ethereum World Computer, it is where all the execution of instructions happen. The job of the EVM is to execute and compute state changes for the system.

So at any given instant in time the Ethereum system has a state. The state consists of all of the account balances, all of the deployed contract code, all of the states of the contract storages, etc. Basically the state is a complete snapshot of the entire Ethereum World Computer. The state does not include stuff like the network hash power, or number of nodes online, or ETH price, or anything like that — those are all extraneous, they are supporting infrastructure in a sense, to this abstract World Computer.

When a new transaction is being processed by the Ethereum computer that transaction is run through the EVM. The EVM reads the instructions in the transaction and computes the resulting state change. So if the transaction is to send 1 ETH to another address, the EVM will interpret those instructions and update the state to reflect this — it will update the account balances.

Some transactions will be smart contract interactions. Smart contracts consist of compiled code which the EVM can interpret. The code lives on an account similar to a regular account that any user can create. When a transaction comes in which interacts with a smart contract, the EVM will pull up the contract account (whose address was specified in the transaction), and load the compiled bytecode into memory. Now the EVM is ready to actually step through and see what your transaction is trying to do with this smart contract. So it then reads from your transaction what function(s) you wanted to call on this contract program, and what your input is. It will take that input you specified, and run this smart contract code with your input to see what happens. Maybe you were doing a swap on Sushiswap. so it will compute the results of your function call, which is maybe that your account has X more of token ABC, and Y fewer of token DEF.