foreword
If you are a novice in the encryption world and can’t start with many concepts, then you are welcome, you are in the right place. Some of my brightest friends have started to spend more time digging into Ethereum . And along the way, some of them asked me similar questions.
Often it’s about defining specific concepts (eg, “What is gas ?”) or broad conceptual questions (eg, ” How does Uniswap work”). These questions led me to write this “Easy Guide to Ethereum”.
How to use this guide?
It is divided into five main parts:
“Ethereum 101” Basics
“Ethereum 201” dives into more complex concepts
(Ethereum 301) The part about identification in the context of encryption
(Ethereum 401) Decentralized Finance Section
(Ethereum 501) The part about the future of Ethereum, this last part especially discusses the transition to PoS (Proof of Stake) (don’t worry too much if that doesn’t concern you now).
In each section, I explain a lot of complex terminology and compile many useful diagrams to explain the most important conceptual topics in Ethereum in layman’s terms. And, I’ve attached additional information at the end of the guide for you to keep digging.
As you learn about Ethereum, you can use the different parts of the guide for quick reading and review, or use the guide as a point of inspiration for exploring the future, or as a link to share with friends who are recently interested in the crypto space.
For example, press Ctrl+F to find ” Uniswap ” to learn more about decentralized exchanges. Alternatively, you can also search for ” wallet ” to learn more about the security of non-custodial wallets.
In a popular blog post by Vitalik Buterin (Ethereum co-founder), he wrote,
“Sometimes an oversimplification of the smallest difference is just what we need to understand the world.”
By condensing these complex topics into something minimal, I hope this guide will help everyone understand the Ethereum world.
Ethereum 101 – The Basics
Before getting to know Ethereum, we need to understand its basic concepts.
In this section, I will explain what a blockchain is , how blocks are added to the chain, how Ethereum works like a world computer, and how smart contracts work.
Blockchain – A blockchain refers to a public record of all transactions processed and maintained by a series of independent computers in a particular network. Rather than managing these transaction databases in a centralized way (like how Amazon or Facebook control their own data), there is no single data owner on the blockchain, making it decentralized. Computers in this network follow specific norms and mechanisms to keep records of all transactions.
These specifications allow computers to agree or agree on all (transactions) that take place in the network: does computer A send funds to computer B, does computer B send those funds to computer C, and when? What happened last week? What happened six months ago?
The computers in the network are independent, so computers D and E (and F and G…) may not know computers A, B, or C. The set of rules of the blockchain means that a single computer does not have to independently verify the accuracy of data provided by other computers in order to agree on transactions that have occurred in the history of the blockchain.
In other words, computers can reach consensus without trusting each other. This trustless consensus mechanism is of paramount importance among computers in a network.
The number of blockchains is very large, and each chain follows its own specifications to reach a consensus. The Ethereum blockchain is committed to providing infrastructure services and design space for cool and novel applications in different fields, such as games, art, finance and social media applications.
Consensus Mechanism – When all computers on the blockchain agree on the fact that is happening in the network, this is ” consensus “. A consensus is reached between individual computers according to the rules of the blockchain, and every time a new transaction is packaged on the chain, all computers need to go through the whole process of reaching a consensus.
Once these computers reach a consensus, blocks of transactions are packaged onto the blockchain and become part of the network’s history.
Basically, assuming the computers have no problem with each new transaction being added to the chain, they agree to the entire history of the blockchain, since they have to be involved in every link.
Consensus is an important concept underpinning the entire blockchain world. How to verify the transactions that occur above without trusting any participant in the network is a very difficult human problem to solve, and blockchain is the optimal solution to this problem. Different specifications (or ” consensus mechanisms “) can enable personal computers to reach consensus in a blockchain. The two main consensus mechanisms are described below:
Proof of Work (PoW) – In a proof-of-work mechanism, computers compete to solve complex mathematical problems. The network gives an economic reward to the first computer to solve a problem, which incentivizes the people behind the computer to keep updating and running nodes (in other words, ensuring the network is always processing transactions).
You may have heard that this race to solve computationally intensive mathematical problems is called ” mining “. Basically, transactions that are verified to be legitimate can be safely added to the blockchain. This is also the rule that the Bitcoin blockchain and the current Ethereum blockchain are implementing.
The proof-of-work mechanism also has its shortcomings , mainly
1) Ultimately, the most powerful (and most expensive) computers are able to solve problems faster, so the rich get richer;
2) Solving difficult mathematical problems on a computer requires a lot of energy, which has become the most criticized point of the entire blockchain.
Proof of Stake (PoS) – Instead of spending a lot of computing power to reach consensus (like PoW), Proof of Stake uses the risk of punishment (and some economic incentives) to constrain/incentivize participants.
In a proof-of-stake mechanism, participants raise funds (technically, they “stake ” their funds) in exchange for entry into a random selection process. The randomly chosen computer needs to verify the next batch of upcoming transactions. When randomly selected computers process transactions correctly (within the constraints of the proof-of-stake mechanism), rewards are awarded.
If a participant randomly selected by the network violates the rules of the proof-of-stake mechanism, the staked asset by that participant is reduced (or ” slashed “).
Instead of asking all computers in the network to solve those math puzzles at the same time, PoS blockchains verify transactions by randomly selecting computers. Skipping the computationally heavy process can alleviate two major problems with PoW mechanisms. This is part of the reason why Ethereum intends to use this consensus mechanism when it plans to deploy the next-generation blockchain in 2022.
Nodes – For the Ethereum blockchain to function, participants in the network need to run specific software that assists them in interacting with the blockchain. I tend to think that each node runs the Ethereum software as an independent computer.
Likewise, the more nodes (participants in the network) the more decentralized it is, but sometimes, maintaining all nodes is a bit of a hassle, so different nodes serve different purposes:
Full Nodes – Full nodes are used to store complete blockchain data, help blocks to be verified and packaged on the chain. Such nodes also provide validity proofs for past transactions.
Light Nodes – Light nodes are relatively less functional by design than full nodes. Light nodes store only a smaller number of proofs of past transactions than the full blockchain data. Such nodes allow more people to participate in the network because they store less data and are more economical to run.
Archive Node – Archive Node is a library/Wikipedia dictionary for the Ethereum world. They store all the data of a full node and more. Analysis tools and wallet providers may use archive nodes to pull information from a long time ago.
Client – This is Ethereum’s software that enables computers (nodes) to interact with the Ethereum network. Individual nodes can choose the client software they want to use, but using a few different types of clients is essential for decentralization so that one of them does not have bugs or problems.
There are now two types of execution client and consensus client, but this is beyond the scope of the guide.
There are many clients available on the chain these days, and recently the Ethereum community has fought for some of the largest node operators to diversify the clients they run nodes.
Importantly, any user who wants to participate in running the Ethereum network can create their own client, which means that users do not have to rely on third-party entities to validate the blockchain for them.
State – The state of the Ethereum blockchain refers to the status of account balances on the blockchain at any given point in time. Once something new happens (such as processing a new block of transactions), the state is updated to accurately reflect the state of the blockchain after the new transaction was packaged.
The state of Ethereum holds information about different accounts and their balances. In other words, once the blockchain verifies a new transaction, the state is updated to reflect the new account balance with the new transaction information just added.
Sidebar – How are blocks packaged on the blockchain?
One user might want to send some funds to another user using the Ethereum blockchain. Once the initiator user initiates a transaction, the transaction will be packaged on the transaction chain before the recipient user receives the money.
When such a transaction is packaged on the Ethereum blockchain, each node needs to complete the entire consensus process before the transaction is packaged on the chain and becomes part of its history.
In the diagram below, it is talking about the simple transaction described above, where one user sends funds to another user. This transaction is packaged into a block, and it is added to the chain after waiting for the nodes to reach a consensus.