Search icon CANCEL
Arrow left icon
Explore Products
Best Sellers
New Releases
Books
Videos
Audiobooks
Learning Hub
Conferences
Free Learning
Arrow right icon

Everything you need to know about Ethereum

Save for later
  • 8 min read
  • 10 Apr 2018

article-image

Ethereum was first conceived of by Vitalik Buterin in November 2013. The critical idea proposed was the development of a Turing-complete language that allows the development of arbitrary programs (smart contracts) for Blockchain and decentralized applications. This concept is in contrast to Bitcoin, where the scripting language is limited in nature and allows necessary operations only.

This is an excerpt from the second edition of Mastering Blockchain by Imram Bashir.


The following table shows all the releases of Ethereum starting from the first release to the planned final release:










Version Release date
Olympic May, 2015
Frontier July 30, 2015
Homestead March 14, 2016
Byzantium (first phase of Metropolis) October 16, 2017
Metropolis To be released
Serenity (final version of Ethereum) To be released


 

The first version of Ethereum, called Olympic, was released in May, 2015. Two months later, a second version was released, called Frontier. After about a year, another version named Homestead with various improvements was released in March, 2016.

The latest Ethereum release is called Byzantium. This is the first part of the development phase called Metropolis. This release implemented a planned hard fork at block number 4,370,000 on October 16, 2017. The second part of this release called Constantinople is expected in 2018 but there is no exact time frame available yet. The final planned release of Ethereum is called Serenity. It's planned for Serenity to introduce the final version of PoS based blockchain instead of PoW.

The yellow paper


The Yellow Paper, written by Dr. Gavin Wood, serves as a formal definition of the Ethereum protocol. Anyone can implement an Ethereum client by following the protocol specifications defined in the paper.

While this paper is a challenging read, especially for those who do not have a background in algebra or mathematics, it contains a complete formal specification of Ethereum. This specification can be used to implement a fully compliant Ethereum client.

The list of all symbols with their meanings used in the paper is provided here with the anticipation that it will make reading the yellow paper more accessible. Once symbol meanings are known, it will be much easier to understand how Ethereum works in practice.














Unlock access to the largest independent learning library in Tech for FREE!
Get unlimited access to 7500+ expert-authored eBooks and video courses covering every tech area you can think of.
Renews at AU $24.99/month. Cancel anytime










Symbol Meaning Symbol Meaning
Is defined as Less than or equal to
= Is equal to
everything-know-ethereum-img-0
Sigma, World state
Is not equal to
everything-know-ethereum-img-1
Mu, Machine state
║...║ Length of
everything-know-ethereum-img-2
Upsilon, Ethereum state transition function
everything-know-ethereum-img-3
Is an element of
everything-know-ethereum-img-4
Block level state transition function
everything-know-ethereum-img-5
Is not an element of . Sequence concatenation
everything-know-ethereum-img-6
For all
everything-know-ethereum-img-7
There exists
everything-know-ethereum-img-8
Union Contract creation function
everything-know-ethereum-img-9
Logical AND
everything-know-ethereum-img-10
Increment
: Such that
everything-know-ethereum-img-11
Floor, lowest element
{} Set
everything-know-ethereum-img-12
Ceiling, highest element
() Function of tuple
everything-know-ethereum-img-13
No of bytes
[] Array indexing
everything-know-ethereum-img-14
Exclusive OR
everything-know-ethereum-img-15
Logical OR (a ,b) Real numbers >= a and < b
> Is greater than
everything-know-ethereum-img-16
Empty set, null
+ Addition
- Subtraction
Summation
{ Describing various cases of if, otherwise


 

Ethereum blockchain


Ethereum, like any other blockchain, can be visualized as a transaction-based state machine. This definition is referred to in the Yellow Paper.

The core idea is that in Ethereum blockchain, a genesis state is transformed into a final state by executing transactions incrementally. The final transformation is then accepted as the absolute undisputed version of the state. In the following diagram, the Ethereum state transition function is shown, where a transaction execution has resulted in a state transition:

everything-know-ethereum-img-17

In the example above, a transfer of two Ether from address 4718bf7a to address 741f7a2 is initiated. The initial state represents the state before the transaction execution, and the final state is what the morphed state looks like. Mining plays a central role in state transition, and we will elaborate the mining process in detail in the later sections. The state is stored on the Ethereum network as the world state. This is the global state of the Ethereum blockchain.

How Ethereum works from a user's perspective


For all the conversation around cryptocurrencies, it's very rare for anyone to actually explain how it works from the perspective of a user. Let's take a look at how it works in practice. In this example, I'll use the example of one man (Bashir) transferring money to another (Irshad). You may also want to read our post on if Ethereum will eclipse bitcoin.

For the purposes of this example, we're using Jaxx wallet. However, you can use any cryptocurrency wallet for this.

  1. First, either a user requests money by sending the request to the sender, or the sender decides to send money to the receiver. The request can be sent by sending the receivers Ethereum address to the sender. For example, there are two users, Bashir and Irshad. If Irshad requests money from Bashir, then she can send a request to Bashir by using QR code. Once Bashir receives this request he will either scan the QR code or manually type in Irshad's Ethereum address and send Ether to Irshad's address. This request is encoded as a QR code shown in the following screenshot which can be shared via email, text or any other communication methods.everything-know-ethereum-img-182. Once Bashir receives this request he will either scan this QR code or copy the Ethereum address in the Ethereum wallet software and initiate a transaction. This process is shown in the following screenshot where the Jaxx Ethereum wallet software on iOS is used to send money to Irshad. The following screenshot shows that the sender has entered both the amount and destination address for sending Ether. Just before sending the Ether the final step is to confirm the transaction which is also shown here:


everything-know-ethereum-img-19

  1. Once the request (transaction) of sending money is constructed in the wallet software, it is then broadcasted to the Ethereum network. The transaction is digitally signed by the sender as proof that he is the owner of the Ether.
  2. This transaction is then picked up by nodes called miners on the Ethereum network for verification and inclusion in the block. At this stage, the transaction is still unconfirmed.
  3. Once it is verified and included in the block, the PoW process begins.
  4. Once a miner finds the answer to the PoW problem, by repeatedly hashing the block with a new nonce, this block is immediately broadcasted to the rest of the nodes which then verifies the block and PoW.
  5. If all the checks pass then this block is added to the blockchain, and miners are paid rewards accordingly.
  6. Finally, Irshad gets the Ether, and it is shown in her wallet software. This is shown here:


everything-know-ethereum-img-20


On the blockchain, this transaction is identified by the following transaction hash:

0xc63dce6747e1640abd63ee63027c3352aed8cdb92b6a02ae25225666e171009e

Details regarding this transaction can be visualized from the block explorer, as shown in the following screenshot:

everything-know-ethereum-img-21

Thiswalkthroughh should give you some idea of how it works.

Different Ethereum networks


The Ethereum network is a peer-to-peer network where nodes participate in order to maintain the blockchain and contribute to the consensus mechanism. Networks can be divided into three types, based on requirements and usage. These types are described in the following subsections.

Mainnet



Mainnet is the current live network of Ethereum. The current version of mainnet is Byzantium (Metropolis) and its chain ID is 1. Chain ID is used to identify the network. A block explorer which shows detailed information about blocks and other relevant metrics is available here. This can be used to explore the Ethereum blockchain.

Testnet


Testnet is the widely used test network for the Ethereum blockchain. This test blockchain is used to test smart contracts and DApps before being deployed to the production live blockchain. Because it is a test network, it allows experimentation and research.

The main testnet is called Ropsten which contains all features of other smaller and special purpose testnets that were created for specific releases. For example, other testnets include Kovan and Rinkeby which were developed for testing Byzantium releases. The changes that were implemented on these smaller testnets has also been implemented on Ropsten. Now the Ropsten test network contains all properties of Kovan and Rinkeby.

Private net


As the name suggests, this is the private network that can be created by generating a new genesis block. This is usually the case in private blockchain distributed ledger networks, where a private group of entities start their blockchain and use it as a permissioned blockchain.

The following table shows the list of Ethereum network with their network IDs. These network IDs are used to identify the network by Ethereum clients.










Network name Network ID / Chain ID
Ethereum mainnet 1
Morden 2
Ropsten 3
Rinkeby 4
Kovan 42
Ethereum Classic mainnet 61


 

You should now have a good foundation of knowledge to get started with Ethereum. To learn more about Ethereum and other cryptocurrencies, check out the new edition of Mastering Blockchain.


Other posts from this book