Previously dominated by Bitcoin, the crypto-currency world has a new player in the market – Ethereum, an open software platform based on blockchain technology and supported by the Ethereum Foundation. It was first proposed by a Toronto-based 19-year old bitcoin programmer Vitalik Buterin in 2013.
How Ethereum is more useful than Bitcoin
Promoted by the Ethereum Foundation, Ethereum has often been compared to bitcoin, but according to advocates, it has several advantages over the latter which makes it more useful. While bitcoin was launched as an alternative to regular money and also as a medium of payment transaction, Ethereum serves as a platform which allows peer-to-peer contracts with its own currency vehicle, ether. This currency is utilized to pay for transaction fees and services on the Ethereum network. Bitcoin can track the ownership of the digital currency whereas Ethereum focuses on running the programming code of a decentralized application.
Comparing two client software- Geth vs Parity
Geth and Parity are the two most popular client software which are used to connect to the Ethereum blockchain. They can be easily installed from https://www.Ethereum.org/cli. With applications like Parity, interacting with the Ethereum platform is simpler. Once Parity is integrated into the web browser it allows the user an easy access to Ether and the token wallet functions.It is a full node wallet which indicates that the blockchain can be stored in the computer. It is developed with the programming language Rust and is maintained by Parity Inc. On the other hand, Geth is written in the Go language and is the official client software from Ethereum foundation. On start, it connects to other nodes on the blockchain network and starts downloading the copy of blockchain data. It is often used to mine and add transactions. Moreover, Geth exposes the APIs which are used to interact through the remote procedure call (RPC).
Types of accounts in Ethereum
Let’s now shift focus to the accounts. An account is the basic unit or object in Ethereum. In the blockchain-based platform, all transactions take place between the accounts. Moreover, blockchain tracks the state of every account. The two types of accounts are the Externally Owned Account (EOA) and Contract Account. It is necessary to provide a passphrase while creating an account. After an account is created, the account address, a private key, and a public key is provided. It is important to note that each account address is unique. There is a general belief that account address is the public key, however, this is not the case with Ethereum. The public key is separate. The Externally Owned Accounts are controlled by a private key which the account owners can use to easily transfer the ethers. The Contract account has its own code and is controlled by it. All the state transitions on the platform involve transfer of value and information between the accounts. Both the types of accounts can either be used as a bare store for ether or to perform operations using Smart Contracts.
The diagram below depicts the various components of Ethereum:
Let’s delve into the details of some of the components:
We referred to Smart Contracts in the previous section. A Smart Contract is a piece of code which runs exactly as programmed without running the risks of downtime, fraud, censorship or third party interference. It facilitates the exchange of money, content, property, shares, and other things which hold value. Bitcoin was the first to support basic smart contracts. In blockchain, it almost functions like a self-operating computer program which can automatically execute the commands when conditions are met. It also holds semblance to ‘multi-signature’ accounts, such that funds are spent when a required percentage of people agree. Moreover, the Smart Contracts enforce a relationship with cryptographic code.
In addition to providing storage capability on the Ethereum blockchain, it allows users access to the contracts from the nodes connected in the blockchain network. This is possible once they deploy the contract on the platform via any node. To invoke the smart contract, the user has to use the address of the contract which is provided once it is deployed on the blockchain.
To store, accept and send ether, the users need an e-wallet. The Mist Wallet, a UI based software can be used to connect to the Ethereum blockchain. Internally, it is dependent on the Geth client to seamlessly perform all the operations. It helps create accounts, design and deploy contracts, transfer ether across accounts, and view transaction details.
Ethereum Virtual Machine
Simple but powerful, the Ethereum Virtual Machine is a part of the Ethereum protocol and plays a critical role in the consensus engine in the system. Unlike most virtual machines, EVM operates on 256- bit integers. EVM has been designed to serve as a runtime environment (RTE) for the smart contracts which are based on Ethereum. It focuses on secured execution of the untrusted code. It also helps in preventing Denial-of-Service Attacks (DoS Attacks) which have become commonplace in the crypto-currency world. Each Ethereum node in the network runs its own EVM implementation and has the capability to execute similar instructions. To run the EVM, there is no centralized control.
Web3.js refers to a collection of libraries which allows the user to interact with a remote or local Ethereum node, using either an IPC or HTTP connection.While Parity and Geth provide terminal level access to Ethereum blockchain, the terminal level commands are available through the Webj3. It acts as a channel to run Ethereum commands from the front or back end code, allowing interaction with the blockchain.
The diagram below highlights the Ethereum Blockchain Network. All the nodes run either with Geth or Praity, the two client software. With the multiple user interfaces, the nodes get connected, allowing access to the Ethereum blockchain network.
In this blog we have delved into the functioning of Ethereum and some of its components. The next section of this blog will cover the remaining components and concepts.