In this Ethereum tutorial, we will discuss the working of Ethereum and understand the Ethereum Ecosystem. Moreover, we will discuss the following topics.
- Ethereum Architecture
- Ethereum Ecosystem
- Keys in Ethereum
- Addresses in Ethereum
- Account in Ethereum
- Types of Accounts in Ethereum
- Transaction in Ethereum
- Smart contracts in Ethereum
- Ethereum Cryptocurrency & Gas
- Ethereum Virtual Machine
Ethereum Architecture
To understand how Ethereum works, we need to understand the Ethereum architecture. So, in this section, we will discuss the details of Ethereum architecture.
Ethereum’s creator and co-founder, Vitalik Buterin, planned Ethereum as a decentralized computing platform. This platform enables developers to build, run, and maintain Decentralized applications powered by smart contracts. Now, these decentralized applications run on the Ethereum network.

Consider the Ethereum network as a peer-to-peer (P2P) decentralized network consisting of Ethereum clients. An Ethereum client is a network node responsible for validating transactions, adding a block to the chain, and executing smart contracts.
Now, there is a variety of Ethereum Clients available based upon different programming languages. Here is a list of various Ethereum clients.
Client Name | Developers | Programming Language |
---|---|---|
Geth | Ethereum Foundation | Go |
Trinity | Ethereum Foundation | Python |
OpenEthereum | Parity Technologies | Rust |
Mantis | IOHK | Scala |
Besu | Hyperledger | Java |
Turbo-Geth (Erigon) | Ledgerwatch | Go |
The Ethereum client is responsible for implementing the EVM. It also helps DApps engage with the Ethereum blockchain through a set of web3 APIs.
The web3 object offered by the web3.js allows interacting with the Ethereum network. Moreover, the web3 makes RPC calls to connect to a local or remote Ethereum node.

An Ethereum client, in addition to smart contracts and the EVM, includes all blockchain components needed to keep the world state and state transitions in the blockchain network up to date. Moreover, it also includes the following functionalities.
- Maintain the transaction and state transitions
- Keeping track of peer-to-peer (P2P) communication
- Keeping world and account states in syn
- Mining to complete the block
- Taking care of the pool of transactions
- Ether, gas, and token management
Ethereum Ecosystem
In the Ethereum Architecture, we have seen that it consist of various components. Now, let’s deep dive into the Ethereum ecosystem and understand these components.
The heart of Ethereum is the Ethereum Blockchain running in a decentralized peer-to-peer Ethereum network. Now, this Ethereum network consists of hundreds and thousands of nodes. And each node has an Ethereum client (typically Geth) that links to the Ethereum network’s peer-to-peer network.
Moreover, the Ethereum Client helps to download and store the blockchain locally. It also has several functionalities, including mining and account management.
The following is a list of components found on Ethereum.
- Keys & Addresses in Ethereum
- Accounts in Ethereum
- Transaction & Messages in Ethereum
- Ethereum Cryptocurrency
- Ethereum Virtual Machine
Let’s discuss each of these components of the ecosystem in detail.
Accounts in Ethereum
Accounts are one of the most important components in Ethereum. Ethereum Accounts are specified by private and public pairs of keys. Moreover, accounts help users to engage with the blockchain through transactions.
The state of Ethereum is created or modified as an outcome of interactions between accounts and transaction executions.
Moreover, each account has a state that refers to a state of the Ethereum network when all of them are combined.
An Ethereum account is similar to a bank account that helps to store ethers and conduct transactions with other Ethereum users.
It includes a 20-byte cryptographic address, an account balance, and account state transitions. And the owner of the account can be identified by their address.

Other than an address, an Ethereum account comprises four more fields.
- Nonce: It refers to a counter that is used to distinguish between separate transactions.
- Balance: It represents the existing ether balance in your account.
- Contract code: It is a cryptographic hash code that may be used to point to smart code used to create the contract.
- Storage: It is also a cryptographic hash code that points to the account storage.
Types of Accounts in Ethereum
In Ethereum, accounts are incredibly important, and there are two types of accounts:
- Externally Owned Account (EOA)
- Contract Account (CA)
Let’s discuss both types of accounts in more detail.
Externally Owned Account (EOA) in Ethereum
- An Externally Owned Account (EOA) is similar to a personal or corporate account at a financial institution. The main aim of this account is to make ETH payments or transactions.

- Each EOA is associated with a pair of cryptographic keys. A private key is used to digitally sign all transactions, allowing the EVM to verify the senders’ identities safely.
- The second associated key is a public key that represents the public address in the world state. Now, this public key is generated using the owner’s public key. Moreover, EOA does not have a code connected with it.
Contract Account (CA) in Ethereum
- A contract account is an Ethereum account that has an Ether balance and an associated code. However, this associated code is linked to a smart contract code in an Ethereum Virtual Machine (EVM).

- Moreover, this account also has an optional storage code that points to EVM storage.
- Now, any modification in the state of a contract account may be due to an alteration to the ether balance, the associated data in storage, or even both.
- Also, a contract account has an corresponding address computed using the Keccak-256 hash function.
Keys in Ethereum
Both keys and addresses are essential in Ethereum as they depict ownership and exchange of ethers. As previously stated, a pair of public and private keys are associated with an externally owned account.
Let’s discuss the use of these keys in Ethereum.
- Private key:
- A private key is a randomly generated 256 bit, 64 hexadecimal character number. And it is accessible only to the user who generated it using a library or cryptographic hash routines.
- Now, the main task of a private key is to digitally sign a transaction on Ethereum. Moreover, it is utilized to generate a public key using the SHA256 hash function.
- However, a private key should be kept secret since whoever holds the private keys has control of the funds associated with that address.
- Public Key:
- An Ethereum public key consists of 128 hexadecimal characters.
- Now, a public key is generated by using a cryptographic method (Elliptic Curve Cryptography) on the private key. However, we cannot use public keys to generate private keys in Ethereum.
- Moreover, the main task of a public key is to generate the account address. The keccak256 algorithm is utilized on public keys to generate Ethereum Addresses.
Read: Introduction of Ethereum Testnets
Addresses in Ethereum
An account address in Ethereum is just a public address associated with an account. Now, this account address is connected to the account state in the world state.
- Address for EOA:
- For an Externally Owned Account, a public key is utilized to create the account address.
- For this implementation, Ethereum uses the Keccak-256 hash of the public key to construct an Ethereum address.

- Address for CA:
- In addition, the Contract account also has an 42 hex account address. And in this case, the sender’s public key and the transaction nonce are utilized to generate it.
- Moreover, it enables the developer to specify an address for the deployment of future smart contracts.

Transaction in Ethereum
Now that we have a clear idea about different types of Ethereum accounts let’s, discuss the details of a transaction.
Now, consider Ethereum transactions as instructions that are cryptographically signed by an account. And once a transaction is started by an account, the state of the Ethereum network will be updated. A basic Ethereum transaction includes transferring ethers from one account to another.
Transactions that affect the EVM’s state must be broadcast to the entire network. Once a node broadcasts a request for a transaction, a miner will process the transaction and communicate the resulting modified state.
However, processing a transaction requires some fee, and it should also be mined to become valid.
The following information can be found in a transaction that has been submitted:
Attribute | Description |
---|---|
from | This field is used to specify the sender’s address |
to | This field is used to specify the receiver’s address |
value | This field is used to specify the amount of ETH to be sent from the sender to the receiver |
data | This is an optional field. It is used for the compiled code of the contract. |
gas | It displays the gas value used to complete the transaction. The computation needed by a miner to perform a transaction is referred to as gas. |
GasPrice | It displays the price per unit of gas for each paid gas. |
nonce | This field is used to represent the nonce value. |
signature | It represents the sender’s unique identification. And it is formed when the transaction is signed with the sender’s private key |
Smart contracts in Ethereum
An Ethereum Ecosystem is incomplete without smart contracts. With the help of smart contracts, we can trade on the web without any middleman. Moreover, neither any central authorities nor any human involvement regulates them.
A smart contract is a piece of executable code that the developer digitally signs as part of the contract account creation process. Also, a smart contract is similar to a written agreement between transacting parties.
However, the contract’s code is kept on the Ethereum blockchain and cannot be changed or erased. This significantly boosts the legal document’s credibility.
Smart contracts are typically written in a high-level programming language and then compiled into bytecode. Ather this, the byte code is stored on the Ethereum and is run by the EVM.
Now, in Ethereum, there are only 3 options available to create smart contracts.
- Solidity: It is the most popular one among the three. It is Turing Complete language similar to Javascript used to develop smart contracts.
- Serpent: Serpent is a pythonic programming language for creating smart contracts.
- Vyper: Just like Solidity, Vyper is another programming language that can compile to EVM byte code.
Ethereum Cryptocurrency & Gas
Both Ether and Gas play an essential role in Ethereum. Let’s understand them in little more detail.
Use of Ether in Ethereum
The Ethereum network is powered by Ether, a cryptocurrency, and it is formally represented as ETH. To acquire ether on Ethereum, we can either trade it on the cryptocurrency market or register as a miner.
Miners on Ethereum earn Ether as a reward for their computational efforts for validating transactions and blocks. Moreover, Ethereum utilizes ETH to pay for the execution of smart contracts on the Ethereum Virtual Machine (EVM).
In Ethereum, the smallest unit of ether is called Wei. One quintillion (or 1018 weis) is equal to one ether. The table illustrates the names of the units and their wei equivalents.
Unit | Wei value | Number of Weis | Alternative name |
---|---|---|---|
Wei | 1 Wei | 1 | Wei |
KWei | 103 Wei | 1000 | Babbage |
MWei | 106 Wei | 1,000,000 | Lovelace |
GWei | 109 Wei | 1,000,000,000 | Shannon |
Microether | 1012 Wei | 1,000,000,000,000 | Szabo |
Milliether | 1015 Wei | 1,000,000,000,000,000 | Finney |
Ether | 1018 Wei | 1,000,000,000,000,000,000 | Ether |
Use of Gas in Ethereum
On the other hand, Gas is the energy that powers EVM’s smart contract execution. Consider Gas as a virtual machine token in Ethereum that is used to determine the relative cost of executing transactions and contracts. Moreover, we can use ETH to buy Gas in Ethereum.
In Ethereum, miners set the gas price per ether, which changes due to supply and demand on the Ethereum network. Now, whenever a sender initiates a transaction, he or she must provide a gas limit as well as a price per gas unit. And this will be combined to form the price in ETH that will be paid.
Ethereum Virtual Machine
Ethereum Virtual Machine (EVM) is the core foundation of the Ethereum blockchain. Consider Ethereum Virtual Machine as a decentralized computational engine that can run millions of applications. It simply specifies how the whole system operates and maintains itself while taking into account various changes.
The main job of EVM is to add a few new features to the Ethereum Blockchain so that consumers have fewer problems with the distributed ledger.
- It is a component of Ethereum that handles smart contract execution and deployment.
- Every Ethereum node utilizes EVM to maintain consensus in the network.
- In Ethereum, Solidity is used to create the majority of the source code for smart contracts.
- After this, the code is subsequently translated to opcodes, which the EVM can understand.
- And then, the EVM employs the operation codes to carry out specific operations.

Note that the code inside the EVM is entirely isolated, meaning it has no connection to the network, file system, or other processes.
So, in this tutorial, we have discussed the basic working of Ethereum and understood the Ethereum Ecosystem. Moreover, we have illustrated the following topics.
- Ethereum Architecture
- Ethereum Ecosystem
- Keys in Ethereum
- Addresses in Ethereum
- Account in Ethereum
- Types of Accounts in Ethereum
- Transaction in Ethereum
- Smart contracts in Ethereum
- Ethereum Cryptocurrency & Gas
- Ethereum Virtual Machine
I am Bijay, a Microsoft MVP and founder of TSInfo Technologies, a SharePoint development company. Currently focusing on getting expertise on Ethereum, Solidity, Bitcoin, Cryptocurrency, Blockchain, etc. Sharing my expertise and tutorials on Bitcoin and Ethereum related technologies. Read More…