A global supercomputer? That’s how Ethereum’s Virtual Machine has been described. It takes all the transactions your computer could do: send and receive things like cash, documents and contracts and transforms them on a global scale.
We show you how.
Blockchain in the beginning
Bitcoin is like a basic version of what a blockchain can do. You have a unit of value, a Bitcoin, and you can send and receive bits of that value between you and other people.
Ethereum came along and allowed people to build smart contracts and Dapps using blockchain technology.
Read more about smart contracts and Dapps over here.
Once Ethereum allowed smart contracts to be created, the next step was to create an environment where all those smart contracts live and interact with each other. That’s where Ethereum’s Virtual Machine (EVM) comes in.
The EVM is best thought of as a virtual computer on the blockchain that turns your ideas into code, and runs it on the global Ethereum network.
Let’s say you want to create a way for you and three roommates to buy things for the house you live in. You are essentially building your own smart contract.
There are a number of things you want your smart contract to cover.
- 🏦You and your three friends have to create individual accounts.
- 🤝You all agree to take a bit of that money from your individual accounts and deposit it into the holding account each month.
- 🙅♂️You all agree that no one person can take money out of that account unless everyone agrees.
- 🖊️That money can only be taken out of that account if all four of you provide a digital signature.
So that’s now all working. But let’s say you want to allocate certain amounts of money every week for house supplies. You create a separate smart contract that says:
- 🏠Only spend $10 a week on house supplies.
- 🛒Only buy house supplies from this one store.
- 🚚Make sure house supplies from this one store are delivered to this address.
Then let’s say you want to buy a TV, but some of you only want to contribute a certain amount of money towards it. Here comes another contract. That contract says:
- 👨⚕️ Person A only wants to spend $20
- 👩🎓Person B is happy to spend $40
- 👨🌾Person C can only spend $10
- 👨🍳Person D is allowed to make up the difference and purchase the TV if the above conditions are met.
Can you see how these contracts all rely on an awareness of the contracts that come before them? This is the Ethereum Virtual Machine. An environment where all these contracts live, interact and influence each other.
It’s like a messaging service for smart contracts. 💬
Why is this so cool? 😎
Beyond the fact that you can avoid the pitfalls of living with roommates? There are lots of things EVM can help do.
- 📝You can create contracts that require multiple conditions to be met: for example, insurance contracts that require bits of information to be present before a policy can be paid out.
- 📎You can allow different people to specify their own mini contracts inside larger contracts. Imagine a builder hiring contractors to build a house. He can arrange mini-contracts between his plumbers, plasterers and electricians that only pay each person when certain conditions are met.
- 🤖You can create contracts that can automatically buy or sell things: let’s say you’re in the air conditioning business. You only want to buy air conditioners when the temperature goes above a certain point. You can build a smart contract that can factor in the weather and automatically buy when it needs to.
The language of the Virtual Machine 🈸
Much like the website you are reading this article on, the EVM is built on a coding language.
Famous ones that already exist include Java, Python and Ruby.
The EVM has its own, called Solidity. It’s a language that lets people build smart contracts that can interact with other smart contracts easily.
The future 🔮
We are just at the beginning of the virtual machine. In future, the complexity, speed and ability of the virtual machine will increase, much like the computers from the beginning of the PC-era became faster and more able to do complex things.