This is Part 1 of a six part series called A Beginner’s Guide to Staking
Ethereum is a place where people can upload smart contracts and others can use those smart contracts. A smart contract is like a regular, in-real-life contract: I tell you I’m going to give you $10k if you give me the deed to a car I chose. We sign a contract that’s legally binding. I have to check to make sure I received the deed and you have to check to make sure that you received the $10k and if one of those things didn’t happen, we have to take it to court. A smart contract makes these processes automatic and removes the intermediate parties required to check if conditions have been satisfied.
Smart contracts
A smart contract is a way to make a contract that automatically executes when certain conditions are met.
An example: You and I use a smart contract on Ethereum. We tell it that the conditions are “$10k” and “a deed to this car” and that we’re going to trade these things. I send $10k to the contract, you send the car’s deed to the contract (imagine the deed is a signed digital copy), the contract checks that it received both, and trades them when the conditions are met. The smart contract somewhat functioned as an escrow*. This all happens in seconds, with a piece of a code, and you can see everything happen on a publicly-viewable blockchain.
That cuts out the bank, the lawyer, the notary if you needed one, extra fees, etc. It’s just you, the seller, and a way to guarantee the success of the trade with code.
*note that an escrow actually holds your assets whereas a contract can be granted permission to an asset that you’re holding under specified circumstances
How a smart contract gets on Ethereum
When we say someone can ‘upload their smart contract to Ethereum’, where are they uploading it? ‘Uploading’ a contract to Ethereum is called ‘deploying’. A person broadcasts their contract and that broadcast gets picked up by all the computers that have a copy of the Ethereum blockchain. The computers all talk to each other, verify that they got the same thing, propose to each other that new things get added to the chain, and then do a series of actions that results in the contract being part of the chain that every computer on the network has a copy of.
This means that the person who deploys it no longer controls it… unless they added a piece of code to the contract that says “if I do X, change Y in the contract”. This is called a mutable smart contract, and anyone can see if a contract is mutable (changeable) or immutable (unchangeable). The person who deployed the contract doesn’t have the ability to delete the contract from the chain. They don’t have the ability to edit it beyond what the code allows. The contract, at that point, belongs to Ethereum and every computer that runs a node for Ethereum.
I don’t need to be a mechanic to drive a car
I basically just described to you the engine of Ethereum. I don’t have to know how Ethereum works to use it, just as I don’t have to know how a car engine works to be able to ride in it or even drive it. Smart contracts are deployed by developers and they’re audited by cybersecurity experts. Using those smart contracts is the part that normal users will do.
If someone in 1995 had told me that there was a really cool new technology where a mail user agent could use the world wide web to create message content that is sent to another using the Simple Mail Transfer Protocol, using port 25 to send and receive, I would never have assumed that it was something I’d be using every day. I probably would have blinked and told them “just tell me what I can do with it” - and here I am, sending emails every day. It’s hard to envision how a new technology will be used and described when it’s ubiquitous, but it seems really obvious in retrospect.
What does ‘using a blockchain’ look like?
As a user, this will look like using the internet. Building on a blockchain is like replacing the engine of the car with a more efficient, smarter engine. Right now, it can be tricky to use because it’s all still in beta and processes like creating and using a wallet are still awkward processes that have no web2 equivalent, but the end result shouldn’t look too different from using the internet today.
The most major difference is that you should feel more confident about where your data, your assets, and your activity are stored and what they’re used for. Why? Because this info isn’t all locked in a company’s database in its basement - it’s stored on a publicly available, distributed computer. The way that they use your data or store your assets is verifiable in a way it’s never been with a traditional, web2, centralized database (but that doesn’t necessarily mean that your data is all public - we can address that later).
TL;DR:
Ethereum is software running on thousands of computers. It’s still new, so it’s sort of hard to use, but the user experience of Ethereum will eventually be like the difference between driving a gas-powered car and an electric car: you won’t have to relearn how to drive, but there will be some differences and you’ll have a lot more automated features.
The next post
The next post’s topic is “What is a validator?”. It will cover nodes, validators, miners, stakers, and staking pools.
Resources
ethereum.org: “What is Ethereum?” (article)
ethereum.org: “Intro to smart contracts” (article)
Finematics: “Code is law? Smart contracts explained” (video)
Coinbase: “What is Ethereum?” (article)
Finematics: “Ethereum 2.0” (video)
Vitalik Buterin explains Ethereum (video)