In this article, you’ll learn:


A young Russian programmer, Vitalik Buterin, who was an active participant in the Bitcoin community and co-founded Bitcoin Magazine, began to question the limitations of Bitcoin.

He felt that Satoshi Nakamoto's concept of self-executing code (smart contracts) was basic. This prompted Vitalik to create a new blockchain called Ethereum, designed to support the development of applications on its blockchain, making it move from merely being a cryptocurrency to becoming a hub for further technological advancement.

Bitcoin's core functionality, even without additional features or upgrades, supports a basic form of smart contracts that allow you to send and receive Bitcoin.

Beyond that, Bitcoin’s smart contract can allow more advanced transactions, such as those requiring multiple signatures (proofs of ownership) for approval or enabling the exchange of Bitcoin for other cryptocurrencies. However, Vitalik still believed this breakthrough was limited.

Limitations of Bitcoin's scripting language


Enter: Ethereum

Based on the limitations listed above, Vitalik Buterin decided to create the Ethereum blockchain—a platform that reimagines cryptocurrency by enabling the development of decentralized applications on the blockchain through smart contracts.

Sending Ethereum

To send Ethereum to a wallet, you need:

Once you have the wallet address, ETH, and your private key, you create and sign a transaction. The transaction is then sent to the Ethereum network, where it gets confirmed and added to the blockchain.

Understanding “Messages” in Ethereum

In Ethereum, contracts can communicate with each other by sending what is called "messages”. These messages are similar to transactions, but instead of coming from a person (like you or me), they come from a program that is already running on the Ethereum blockchain.

Messages are created when a contract uses a specific command to "call" another contract. When this happens, the recipient contract will run its code based on the instructions in the message.

A simple breakdown of how contracts interact in Ethereum:

- Contract A sends a message to Contract B to perform its task, along with 400 units of gas.

- Contract B begins executing its code using the 400 units of gas.

What's the difference between a message and a transaction?

A transaction is created by a person— the sender.

A message is like a transaction but it is created by a contract.

State Transition Function in Ethereum

Before a transaction on Ethereum is approved, here's a glimpse of what goes on behind the scenes:

  1. Ethereum makes sure that the transaction is correctly formatted, that the signature (digital fingerprint) is valid, and that it matches the sender's account. If anything is wrong, the transaction is rejected.

  2. The transaction fee is calculated based on how much work the transaction will require. This fee is subtracted from the sender’s account. If the sender doesn’t have enough money to cover the fee, the transaction is rejected.

  1. The specified amount of Ethereum (ETH) is moved from the sender’s account to the recipient’s account. If the recipient is a smart contract (an automated program), the Ethereum blockchain will run the contract's code until it’s finished or runs out of gas.

  1. If something goes wrong, like the sender not having enough funds or the contract running out of gas, Ethereum cancels the transaction and returns the accounts to how they were before, except that the sender still has to pay the fees.

  1. If everything goes well, any remaining gas is refunded to the sender, and the miner (the one processing the transaction) gets paid the fees for the gas that was used.

How Blocks Are Validated in Ethereum

Unlike Bitcoin, Ethereum uses proof of stake as its consensus mechanism to validate blocks. Before 2022, Ethereum used proof of work to validate blocks which requires more energy than proof of stake.

Proof of work requires participants on a blockchain to solve complex puzzles before a block is approved while proof of stake gives validating power to participants with large stakes in the blockchain’s token.

To easily remember, just think of proof of work as having to do some work and proof of stake as showing that you have staked tokens before being allowed to make important decisions.

Here's how proof of stake works in Ethereum:

Ethereum Virtual Machine (EVM)

Smart contracts are usually written in lines of code as programs or languages that the Ethereum network fully understands. This language is called the Ethereum Virtual Machine code. It contains instructions on what the contract should do when an action is taken.

The Ethereum network runs through these instructions one by one, starting from the beginning and moving through each step until it either finishes or hits a problem.

The code has three main places where it can store and use data:

The EVM code can also use information from the incoming transaction, such as who sent it, how much Ethereum (ETH) is included, and any additional data sent along with it. After the contract runs, it can send back some data as a result, like answering a question or confirming that a task is done.

Ethereum v. Bitcoin