Ethereum is an open-source protocol for building and deploying decentralized applications (dApps). As a Turing Complete platform, Ethereum allows developers to build a variety of dApps on its blockchain-based network.
In order to facilitate the process of creating dApps on its network, Ethereum provides some features through its development environment that are similar to those provided by standard operating systems. Additionally, software architects building dApps on Ethereum can write smart contracts which contain scripts that run automatically based on a certain set of conditions.
Developing dApps And Settling Transactions Without Intermediaries
Smart contract functionality on Ethereum allows developers to create dApps that can manage agreements and transactions between parties without requiring trusted intermediaries.
Proposed by Russian-Canadian programmer Vitalik Buterin in late 2013, the Ethereum protocol has been implemented on a distributed ledger technology (DLT)-based network – which is managed using the proof-of-work (PoW) consensus algorithm. Transactions on Ethereum can be conducted using its native token, Ether (ETH), which can be transferred between crypto wallets and used to reward the platform’s miners, who are responsible for validating blocks of transactions on the distributed network.
As one of the main components of the Ethereum platform, the decentralized Ethereum Virtual Machine (EVM) allows developers to program and execute scripts through a public and distributed network of nodes. The EVM’s instruction set is considered to be Turing Complete as it specifies a complete programming language.
Ethereum Uses “Gas,” An Internal Pricing Mechanism, To Mitigate Spam And Manage Network Resources
Moreover, an internal pricing mechanism, called “Gas,” is used on the Ethereum platform to prevent users from spamming the network (with DDoS attacks or other types of attack vectors). Gas is also used to allocate and manage resources on Ethereum.
Since its launch, Ethereum has established a powerful network effect as it’s the world’s second largest cryptocurrency-based platform. With a market capitalization that currently stands at over $18.3 billion and each ETH token trading at around $173, Ethereum is second only to Bitcoin (BTC) in terms of platform valuation.
Before the Ethereum mainnet went live, an online crowdsale, referred to as an initial coin offering (ICO), was held (from July to August 2014) in order to raise funds to help develop the world’s first blockchain-enabled platform for deploying enterprise-grade dApps.
Damaging Security Breach
In 2016, the Ethereum network suffered one of the most damaging security breaches that have occurred on DLT-powered platforms. Hackers were able to exploit a vulnerability in Ethereum’s newly released (at that time) smart contract which was associated with the first-ever Decentralized Autonomous Organization (DAO). Due to the hack, Ether tokens worth an estimated $50 million at that time were stolen.
“Reversing” Theft Or Preserving Immutability?
Because of this incident, the Ethereum network was split into two separate and independent blockchains. One of these chains is referred to as Ethereum (ETH), which is a network that was forked (modified and upgraded) from the original chain, in order to reverse the financial losses incurred from the theft.
The other chain, which is called Ethereum Classic (ETC), is supported by a community of crypto enthusiasts who firmly believe in the concept of immutability. Although millions of dollars were lost due to the DAO attack, ETC network supporters argue that it’s more important to preserve the integrity and immutable nature of a blockchain. That’s why the ETC chain has maintained the original state of the Ethereum network.
Why Call It Ethereum?
Vitalik Buterin, who recently received an honorary doctorate degree from the University of Basel for his contributions to the blockchain industry, revealed that he decided to refer to the world’s first dApp creation network as Ethereum after browsing various Wikipedia articles on science fiction and elements.
Commenting on why he chose the name Ethereum, Buterin has previously noted: “I immediately realized that I liked it better than all of the other alternatives that I had seen; I suppose it was the fact that it sounded nice and it had the word ‘ether,’ referring to the hypothetical invisible medium that permeates the universe and allows light to travel.”
Blockchains Can Do Much More Than Facilitate P2P Monetary Exchange
Initially proposed in a whitepaper authored by Buterin in late 2013, the writer (at that time) for Bitcoin Magazine argued that additional functionality should be implemented on a blockchain network. Buterin had studied how the Bitcoin protocol was used to launch the world’s first peer-to-peer (P2P) electronic currency system.
After analyzing how the Bitcoin blockchain was designed, Buterin suggested that a programming language should also be added to P2P networks. According to Buterin, there could be more potential use cases for blockchain technology, apart from being used to exchange monetary value in a decentralized manner.
Formally announced for the first time at the North American Bitcoin Conference held in Miami in January 2014, the Ethereum project’s founders agreed to proceed with the initiative as a non-profit entity. With Buterin leading the way, other notable contributors and co-founders of Ethereum included Joseph Lubin, Charles Hoskinson, and Gavin Wood.
Gavin Wood’s Contributions To Ethereum As Project’s CTO
The formal development of the Ethereum blockchain began in 2014 and it was initially managed by a Swiss firm known as EthSuisse, or Ethereum Switzerland GmbH. Before leaving his position as the Chief Technical Officer (CTO) for the Ethereum project, British programmer Gavin Wood helped establish the basic technological framework for the dApp development platform.
Wood has been partially credited with initially putting together Ethereum’s smart contracts and integrating them onto the cryptocurrency’s blockchain network. Moreover, Wood prepared the Ethereum Yellow Paper which outlined the specifications for the Ethereum Virtual Machine (EVM).
Prominent analysts including billionaire AngelList founder Naval Ravikant have praised Ethereum for its innovative technical approach. However, the Ethereum network has suffered from various security and scalability problems. At present, the Ethereum blockchain cannot handle more than 15 transactions per second (TPS), which makes it less than ideal for building and running enterprise-level applications.
Ethereum Enterprise Alliance, One Of Many Organizations Supporting Ethereum
To further the ongoing development of the largest dApp creation platform, the Ethereum Enterprise Alliance (EEA) was established in March 2017. The global EEA consists of several Fortune 500 companies including “Big Four” professional services firm Deloitte, Microsoft, Intel, and prominent researchers at Cornell University.
Other major organizations which are also part of the EEA include Brooklyn, New York-based Ethereum development studio ConsenSys, Accenture, Banco Santander, the National Bank of Canada, the Chicago Mercantile Exchange (CME) Group, and the Toyota Research Institute, among others.
Currently, there are hundreds, if not thousands, of new protocols that have been built on Ethereum. However, the latest version of Ethereum’s software has been launched after several proof-of-concepts (PoCs) were proposed, with the last of these called the “Olympic” prototype.
25,000 Ether Bug Bounty Offered To Find Security Vulnerabilities
Olympic, which was introduced in the form of a public beta pre-release, came right before the official launch of Ethereum’s Frontier network. To incentivize cybersecurity researchers to locate potential vulnerabilities in Olympic’s source code, a 25,000 ETH (in total) bug bounty was offered. As part of the bug bounty program, programmers and software quality assurance specialists were also asked to do stress testing, in order to check the limits of the Ethereum blockchain.
In July 2015, the “Frontier” version of Ethereum was introduced and it is now considered to be the first major release which contained many of the features that are part of the smart contract platform’s latest software packages. Because the development of Ethereum is decentralized, its community members have to first draft what’s referred to as an Ethereum Improvement Proposal (EIP)
What Are EIPs?
EIPs are suggested codebase modifications to Ethereum’s existing source code, which may or may not be activated. If an EIP passes the appropriate security checks and it is approved by the majority of Ethereum’s community members, then it may be included in an upcoming Ethereum network hard fork (backwards incompatible upgrade) or soft fork (backward compatible upgrade).
“Homestead” Version, First Major “Stable” Release
Notably, the “Homestead” version of Ethereum was considered to be the first major “stable” release of the decentralized network’s core protocol. Included in the Homestead release were
significant improvements to Ethereum’s transaction processing algorithm, Gas pricing mechanism, and the platform’s overall security. After being approved by the cryptocurrency’s community members, the Homestead soft fork was initiated on July 31st, 2015.
On October 16th, 2017, the “Metropolis Part 1: Byzantium” soft fork was activated and it contained important updates such as reducing the technical complexity of the EVM, in addition to providing greater flexibility and more options for writing smart contract code. When Byzantium was activated, support for privacy-enhancing zk-SNARKs technology was also integrated onto the Ethereum blockchain.
On September 19th, 2017, the first zk-SNARKs-based transaction (TX) was logged on an Ethereum testnet (test network). More recently, the “Metropolis Part 2: Constantinople” hard fork was activated (in late February 2019), a major Ethereum upgrade consisting of five EIPs – which also included a simultaneous “St. Petersburg” network update.
The DAO Attack
In 2016, a record (at that time) $150 million were raised via an ICO, in order to fund the development of the world’s first decentralized autonomous organization (DAO), which was implemented through a set of smart contracts created and issued on the Ethereum network.
After the DAO was deployed, hackers were able to exploit a vulnerability in its smart contracts which led to the theft of $50 million worth of cryptocurrency. Following the damaging security breach, there was a controversial debate among members of the Ethereum community regarding whether the blockchain network should undergo a hard fork, so that the lost funds could be reappropriated.
As explained, the dispute among the cryptocurrency’s supporters led to a split in the platform’s blockchain – resulting in two separate networks, Ethereum (ETH) and Ethereum Classic (ETC). During 2016, the ETH chain was targeted with several other attacks and the platform also went through two different forks that same year.
Becoming Increasingly Resistant To DDoS Attacks
By late November 2016, the Ethereum blockchain had become more resistant to DDoS attacks, due to important codebase updates installed by the cryptocurrency’s developers. Efforts had also been made to reduce the size of the Ethereum blockchain and other measures were taken
to mitigate the effects of different types of potential spam attacks
Inherent Characteristics Of Ethereum Blockchain
One of the main characteristics of the Ethereum blockchain, which is not a core feature of the Bitcoin (BTC) network, is that it manages user accounts and balances by using state transitions. This type of implementation does not depend on unspent transaction outputs (UTXOs) and each state represents the current balances of all accounts opened on Ethereum, as well as all data associated with them.
State information does not reside on the Ethereum blockchain, as it is kept in a separate Merkle Patricia tree (another type of data structure). Meanwhile, a cryptocurrency wallet holds users’ public and private keys and addresses which are required for conducting transactions in Ether or any other token supported by the Ethereum platform.
A cryptocurrency’s key or address is usually generated through “BIP 39 style mnemonics for a BIP 32 ‘HD Wallet’.” On the Ethereum network, this is not required as it does not use a UTXO scheme. Moreover, possession of a private key allows users to perform write operations on a blockchain, which is necessary when conducting an ETH transaction.
Using A Keccak-256 Hash Of Public Key
To complete outgoing transfers on Ethereum, a “Keccak-256” hash of the public key associated with the particular account is required – before ETH can be sent to the intended recipient. Ethereum addresses, like BItcoin addresses, are pseudonymous as the identity of the individuals or organizations transacting through them are not disclosed.
However, an ETH address and the amount of funds associated with it can be tracked on block explorers, as Ethereum is a public blockchain network – meaning all TXs processed on its platform can be viewed by anyone.
Ether (ETH) Use Cases
As the fundamental or base currency of the Ethereum blockchain, ETH tokens are used to transact on the platform’s public distributed ledger. ETH may be used to pay for “Gas” which is a unit of computation that’s included in Ethereum-based TXs, as well as other network state transitions. The ETH token is also used to pay network usage, or TX fees, and for various computational services on Ethereum.
Ethereum Address Format
All Ethereum addresses begin with the prefix “0x,” which serves as a common identifier for the hexadecimal numbering system. The 0x prefix of ETH addresses is then concatenated (or joined) with the rightmost 20 bytes of the corresponding Keccak-256 hash (big endian) of the ECDSA public key.
Two digits, in the hexadecimal numbering system, represent one byte of information, which means that each ETH address is made up of 40 hexadecimal digits. For example, a valid Ethereum address is as follows: 0x77CABD62e0055c4c4A49E7591A1EA0B03498466d. Contract addresses issued on Ethereum follow the same format, however they are generated by using the sender and creation transaction nonce
User accounts and contract accounts on Ethereum look similar and it is difficult to distinguish between the two, assuming no further information is given – except for an address. However, if blockchain data associated with the accounts is provided, then it may be possible to determine whether a particular Ethereum account is a contract or a regular user account.
Any valid Keccak-256 hash which uses the address format specified above is considered valid, regardless of whether it corresponds to an ETH account with a private key or an Ethereum-based contract.
Key Differences Between Ethereum And Bitcoin
One of the main differences between Bitcoin (BTC), the world’s largest cryptocurrency network, and Ethereum (ETH) is that block times on the latter are around 14 to 15 seconds, while BTC block times are approximately 10 minutes.
Moreover, mining Ether produces new coins (or ETH) at a constant rate, although this rate may change when a hard fork is activated. Meanwhile, the Bitcoin protocol has been implemented in a manner which algorithmically halves mining rewards after every 4 years.
While both Bitcoin and Ethereum use PoW-based consensus mechanisms, the former uses the SHA-256 mining algorithm and Ethereum uses the Ethash consensus algorithm which is ASIC-resistant. This means miners with expensive and powerful hardware should have no significant advantage when validating blocks compared to miners with cheaper and less powerful hardware.
Other key differences between Bitcoin and Ethereum include how transaction fees are processed on their respective networks. TX fees on Ethereum are determined based on computational complexity, as well as the amount of bandwidth used and storage requirements.
Meanwhile, BTC transactions compete with each other (for processing) based on the relative sizes of the TXs (in bytes).
Gas Units On Ethereum, Satoshis On Bitcoin Network
Gas units on Ethereum have a set price which is included as part of a network transaction. This is normally measured in Gwei, which is a denomination of Ether. Meanwhile, the value of Bitcoin transactions is denominated in satoshis per byte. In general, Ethereum TX fees are lower than TX fees on the Bitcoin blockchain.
In December 2017, the median TX fee on the Bitcoin network surged to an all-time high of $23 while median TX fees on Ethereum were of around $0.33 during that same time period.
Notably, Ethereum’s accounting system is set up in a manner whereby values in Wei, the smallest denomination of Ether, are debited from user accounts while being credited to other network accounts. This process is fundamentally different from Bitcoin’s UTXO system, which more closely resembles cash transactions where money is paid and then change is returned (if necessary).
In June 2018, the total circulating supply of ETH was set at 100 million. During 2017, Ether mining produced an additional 9.2 million ETH, which represents roughly a 10% increase in the total supply of the cryptocurrency. The Casper Correct by Construction (CBC) and Casper the Friendly Finality Gadget (FFG) – once integrated on the Ethereum blockchain – are expected to reduce Ether’s inflation rate to somewhere around 0.5% to 2%. At present, there’s no limit set on the number of ETH tokens that can be issued.
What Is The Ethereum Virtual Machine (EVM)?
There were around 27,500 full-nodes, or transaction validators, on the Ethereum network as of February 1st, 2018.
Writing Smart Contracts On Ethereum
Ethereum-based smart contracts can be written using various different programming languages. These contracts are created by using high-level programming abstractions which are converted – using a compiler – to EVM bytecode. The bytecode is similar to executable (.exe) files or programs that can be deployed and run on the Ethereum mainnet.
To write smart contracts on Ethereum, developers also have the option of using LLL, a low-level programming language that’s similar to LISP. It was also possible to write smart contracts on Ethereum using Mutan, however it has been deprecated as well.
Public Smart Contracts
Smart contracts that have been issued on public networks such as Ethereum allow users to prove that they have a certain type of functionality. For instance, smart contracts can be used to implement “self-contained” and “provably fair” casinos, or gambling platforms.
Although public smart contracts can be audited more easily than those created and limited to private networks, it is also more likely that these contracts get exploited. In general, it’s relatively easier to locate software bugs in publicly accessible smart contracts, as they’re open to everyone.
It may also take more time to fix software glitches found in public smart contracts, which may give attackers an opportunity to take advantage of the situation. For instance, the DAO attack, which took place on June 17th, 2016, could not be prevented or stopped in a timely manner, nor could the $50 million (in Ether) theft be easily reversed as it required a contentious hard fork.
Formal Verification Methods
Currently, research is being conducted on how to employ formal verification methods to express and verify non-trivial properties of smart contracts. According to a research study commissioned by Microsoft, writing secure smart contracts may not be a straightforward process, as The DAO hack showed that the system can be exploited.
Microsoft’s analysis report noted that certain tools may be used to check smart contract code, and it also mentioned that a comprehensive examination of contracts may potentially reveal additional vulnerabilities. The report concluded that smart contracts programmed in Solidity and code written for the EVM may also may be verifiable.
Application Development On Ethereum
Ethereum’s source code was written in a Turing Complete language and it presently supports seven types of programming languages. Although it’s relatively more challenging to develop dApps on Ethereum, when compared to some other decentralized smart contract platforms, it’s the most widely-accepted and established blockchain development ecosystem.