
- Blockchain - Home
- Blockchain - Introduction
- History of Blockchain
- Blockchain - Technology
- Blockchain and Cryptography
- Blockchain Beyond Crypto
- Blockchain - Advanced Concepts
- Blockchain - Decentralization
- Blockchain - D-Apps
- Blockchain - DeFi
- Blockchain - Future Scope
- Smart Contracts in Blockchain
- Blockchain - Ricardian Contracts
- Blockchain - Oracles
- Blockchain - DAO
- Bitcoin
- Bitcoin - Invisible Gold
- How Bitcoin Works?
- Bitcoin - Network
- Bitcoin - Wallets
- Bitcoin - Innovations
- Ethereum
- Ethereum Alternate Cryptocurrency
- Ethereum Ecosystem
- Ethereum Virtual Machine
- Advanced Ethereum
- Ethereum Wallets
- Ethereum Miner Nodes
- Miscellaneous
- Blockchain - Double Spending
- Public Key Cryptography
- Blockchain - Hashing
- Bitcoin - Mining
- Blockchain - Chaining Blocks
- Blockchain - Proof of Work
- Blockchain - Network & Mining
- Blockchain - Incentives to Miners
- Blockchain - Merkle Tree
- Blockchain - Payment Verification
- Blockchain - Resolving Conflicts
- Blockchain - Privacy
- Bitcoin - Mitigating Attacks
- Blockchain - Conclusion
Blockchain - Ethereum Ecosystem
The Ecosystem of the Ethereum blockchain comprises several integral components. At its foundation lies the Ethereum blockchain, which operates on a decentralized peer-to-peer network.
Additionally, there exists an Ethereum client, typically Geth, that functions on the nodes and establishes a connection to the peer-to-peer Ethereum network, facilitating the download and local storage of the blockchain.

This client offers a range of functionalities, including mining and account management. The local blockchain copy is consistently synchronized with the network. Another essential element is the web3.js library, which enables interaction with the Geth client through the Remote Procedure Call (RPC) interface.
Components of Ethereum Ecosystem
The components of Ethereum Ecosystem are given as follows −
- Keys and Addresses
- Accounts
- Transactions
- Messages
- Ether Cryptocurrency/Tokens
- The EVM
This chapter will cover the former topics, whereas the next chapter focuses on the EVM (Ethereum Virtual Machine) in detail.
Keys and Addresses
In the Ethereum blockchain, keys and addresses serve the purpose of denoting ownership and facilitating the transfer of ether. These keys consist of pairs, comprising a private key and a public key.
The private key is generated randomly and remains confidential, while the public key is derived from the private key. Addresses, which are 20-byte codes, are generated from public keys and are utilized to identify accounts.
How to Generate Keys and Addresses?
The procedure for generating keys and deriving addresses is outlined as follows −
- Initially, a private key is randomly selected (a 256-bit positive integer) in accordance with the specifications of the elliptic curve secp256k1.
- Then, the public key is derived from the private key through the use of the Elliptic Curve Digital Signature Algorithm (ECDSA) recovery function.
- Finally, an address is generated from the public key, specifically from the last 160 bits of the Keccak hash of the public key.
Accounts of Ethereum Ecosystem
Accounts serve as fundamental components of the Ethereum blockchain. They consist of pairs of private and public keys. Users utilize accounts to engage with the blockchain through transactions.
Prior to submitting a transaction to the network via a node, it is digitally signed by the respective account. As a transaction-driven state machine, Ethereum's state is established or modified through the interactions between accounts and the execution of transactions.
State Transition of Ethereum Ecosystem
Each account within the Ethereum network possesses a state that, when aggregated, reflects the overall condition of the network. The state of the Ethereum network is refreshed with each new block added.
The actions executed between and on these accounts signify state transitions. This transition is facilitated by the Ethereum state transition function, which operates as follows −
- The validity of the transaction is confirmed through checks on syntax, signature authenticity, and nonce.
- The transaction fee is determined, and the sender's address is identified via the signature.
- Additionally, the sender's account balance is verified and adjusted accordingly, with the nonce being incremented.
- Sufficient ETH must be provided to cover the transaction costs, which are calculated per byte and increase proportionally with the transaction size. This step involves the actual transfer of value, moving from the sender's account to the recipient's account.
- If the specified destination account does not yet exist, it is created automatically.
- In instances where a transaction fails due to insufficient balance or gas, all state modifications are reverted, except for the fee payment, which is allocated to the miners.
- Ultimately, any remaining fee is returned to the sender as change, and the fee is distributed to the miners accordingly.
- At this stage, the function yields the resulting state, which is also recorded on the blockchain.
Types of Accounts
There are two categories of accounts within the Ethereum Ecosystem −
- Externally Owned Accounts (EOAs)
- Contract Accounts (CAs)
Externally Owned Accounts function similarly to Bitcoin accounts, being governed by a private key. In contrast, Contract Accounts are distinguished by their association with executable code in addition to a private key.
The key features and properties of both types of accounts are given in the following section −
EOAs
The key features of Externally Owned Accounts are given as follows −
- They possess a state.
- They are linked to a human user, which is why they are referred to as user accounts.
- EOAs maintain an ether balance.
- They have the ability to send transactions.
- They do not contain any associated code.
- Control is exercised through private keys.
- EOAs are unable to initiate a call message.
- Accounts feature a key-value store.
- EOAs are capable of initiating transaction messages.
CAs
The key features of Contract Accounts are given as follows −
- They possess a state.
- They are not inherently linked to any user or entity on the blockchain.
- CAs maintain an ether balance.
- They include associated code that is stored in memory or on the blockchain. They have access to storage.
- They can be triggered to execute code in response to transactions or messages from other contracts.
- CAs can preserve their permanent states and can invoke other contracts.
- CAs are unable to initiate transaction messages.
- CAs can initiate a call message.
- CAs feature a key-value store.
- The addresses of CAs are generated upon deployment, and this address is utilized to identify their location on the blockchain.
Transactions of Ethereum Ecosystem
In the Ethereum Ecosystem, a transaction is defined as a data packet that is digitally signed with a private key, containing specific instructions that, upon execution, lead to either a message call or the establishment of a contract.

Transactions can be categorized into two distinct types based on their outcomes −
Message call transactions
These transactions facilitate the transmission of messages between different contract accounts (CAs) without creating new accounts.
Contract Creation Transactions
These transactions result in the formation of a new contract account. Successful execution of such a transaction leads to the creation of an account that is associated with particular code.
Key Terms in Transactions
Both transactions consist of several standard fields, which are detailed as follows −
Nonce
The nonce is a sequential number that increases by one with each transaction initiated by the sender. It must correspond to the total number of transactions sent and serves as a unique identifier for the transaction.
Gas Price
The gas price field indicates the amount of Wei necessary to carry out the transaction. This fee is applied per unit of gas for all computational expenses incurred during the transaction's execution.
Gas limit
The gas limit field specifies the maximum amount of gas that may be utilized to execute the transaction.
To
The To field denotes the address of the transaction's recipient, represented as a 20-byte value.
Value
The Value field indicates the total amount of Wei to be transferred to the recipient. In the context of a contract account (CA), this reflects the balance that the contract will maintain.
Signature
The signature comprises three components: V, R, and S. These values represent the digital signature (R, S) and additional information that aids in recovering the public key (V).
Init
The Init field is exclusively utilized in transactions aimed at creating contracts, specifically contract creation transactions. It represents a byte array of unlimited length that defines the EVM code to be employed in the account initialization process.
Data
In the case of a message call transaction, the Data field replaces Init and contains the input data for the message call. This field is also of unlimited size and is structured as a byte array.

Messages of Ethereum Ecosystem
According to the yellow paper, Messages refer to the data and values exchanged between two accounts. A message is essentially a data packet that carries both information and a value, specifically the amount of ether involved. These messages can be transmitted through a smart contract, which acts as an autonomous entity, or initiated by an external actor, known as an Externally Owned Account (EOA), through a digitally signed transaction.
Contracts have the capability to send messages to other contracts. It is important to note that messages exist solely within the execution environment and are not stored. While messages share similarities with transactions, the key distinction lies in their origin: messages are generated by contracts, whereas transactions originate from external entities within the Ethereum ecosystem (EOAs).
Components of a Message
A message is composed of several key elements −
- The individual or entity sending the message
- The individual or entity receiving the message
- The quantity of Wei to be transferred along with the message directed to the contract address
- An optional data field, which serves as input for the contract
- The maximum gas limit (startgas) that may be utilized
Messages are created when the CALL or DELEGATECALL opcodes are executed by the contract operating within the EVM.
Ethereum Tokens (ETH/ETC)
Ethereum has its own native cryptocurrency known as ether (ETH). Following the Decentralized Autonomous Organization (DAO) hack discussed earlier in this tutorial, a hard fork was initiated to address the situation.
As a result, there are now two distinct Ethereum blockchains: one is referred to as Ethereum Classic, represented by the currency ETC, while the hard-forked version is ETH, which continues to evolve with ongoing development efforts.
Ethereum Classic (ETC) has cultivated its own community of supporters who are actively working on its development, maintaining it as the original, unforked version of Ethereum.
Ether is generated by miners as a reward for their computational work in securing the network through transaction and block verification. Within the Ethereum blockchain, ether serves as the medium for executing contracts on the Ethereum Virtual Machine (EVM).
Additionally, ether is utilized to purchase gas, which acts as the necessary fuel for conducting computations on the Ethereum blockchain. The following table gives the denomination of different units and their values −
