Abstract
Blockchain technology is considered the most relevant technology after the internet that revolutionizes many application domains. The first generation of BC technology, BC 1.0, is used for cryptocurrency purposes; the second generation, BC 2.0, as represented by Ethereum, is an open and decentralized platform empowering the running of decentralized applications (DApps) on top of BC as a new computing paradigm. Ethereum as a BC 2.0 leader has a large development community. Its open-source feature leads to the development of several emulation tools, simulators, TestNets, and security verification tools dedicated to Ethereum-based system performance analysis. Making an adequate decision regarding the choice of the most appropriate Ethereum tool responding to the requirement of a specific system or application still requires more investigation from researchers. In this regard, this chapter presents the characteristics of the most-used Ethereum simulators, emulators, and TestNets and provides comparative studies between Ethereum simulators, TestNets, and security verification tools.
TopIntroduction
Before Ethereum (Wood, G., 2014), BC applications designed to do limited things. The crypto-currencies were designed to operate as peer-to-peer digital currencies, nothing more, which caused a problem for developers. To fill this gap, the developer of Ethereum, Vitalik Buterin, came up with an Ethereum Virtual Machine (EVM) as an inventive approach. EVM is a Turing-complete software executed on the Ethereum network. EVM allows anybody to execute whatever program he or she wants independent from the programming language. The EVM simplifies the creation of BC-based applications and enables the build of thousands of different apps on one single platform. Furthermore, Ethereum has its crypto-currency named Ether and a currency to pay for computations and transactions fees called Gas. Ethereum is principally for developers to build and deploy their decentralized applications, taking into consideration all the different industries. Besides, Ethereum can be used to build DAOs (Decentralized Autonomous Organizations) that are fully autonomous without any leader. DAOs run purely by Ethereum programming code and smart contracts.
Since all these decentralized applications will run on the Ethereum platform, they will all benefit from the BC properties. These proprieties are:
- •
Immutability: changes cannot be made to any data by a third party.
- •
Tamper-proof and corruption-free: the apps built are based on the principle of consensus and this makes censorship virtually impossible
- •
Secure: all applications and transactions secured with cryptography, giving them strong protection against fraud and hacking.
- •
Anonymity: based on the asymmetric cryptography and hashing of BC data (digital cryptographic keys, transactions...).
Although, the advantages of using Ethereum platform to run Dapp, the performance analysis of Ethereum- based solution require the use of simulators, emulators and Testnets. In this context, several tools are developed and this chapter presents these tools. Indeed, the manifolds of this chapter could be summarized into three points:
- •
Providing a comprehensive comparative study of current and various Ethereum emulation tools dedicated to analyzing the performance of Ethereum-based systems, which is useful for the
- •
researchers to better comprehend Ethereum aspects and to select the s
- •
uitable tools that fit their needs and their applications.
- •
Discussing Ethereum Testnets tools and their usage.
- •
Analyzing the potentialities of Ethereum security verification tools.
The rest of this chapter organized as follows: The second section pinpoints the Ethereum architecture. The third section discusses intensively BC evaluation strategies and metrics. The fourth section highlights the popular simulators and emulators tools developed for Ethereum-based BC. This book chapter provides a particular focus on Ethereum security verification tools. The fifth section describes and compares the most known Ethereum Testnets. The sixth section assesses open issues and future research direction regarding the possible enhancement of BC platforms. The last section concludes this chapter and pinpoints the lesson learned through this chapter.
TopEthereum Architecture
The Ethereum BC main architecture is 4-layer including network layer, consensus layer, data layer and application layer.
Key Terms in this Chapter
Cryptocurrency: A kind of digital currency using encryption techniques.
Blockchain: Is a data structure used to create a distributed and an open ledger that can record transactions between two entities. A BC is composed of blocks in a serialized manner.
Web3.js: A collection of libraries to interact with remote or local Ethereum node.
Block: A block contains a set of transactions, timestamp, a hash of the previous block, and a block number.
GAS: Is a unit of measurement for computational steps. Every transaction is required to include a gas limit and a fee that it is willing to pay per gas.
Smart Contracts: Self-executing contractual states stored on the BC.
Consensus: A set of algorithms ensure the consistency of BC.
Merkle Tree: A data structure in hash-based cryptography, deployed in Bitcoin and Ethereum.
Ledger: Is a list of transactions. A database is different from a ledger. In a ledger, we can only add new transactions; however, in a database, we can add, modify, and delete transactions.
Quantum Resistant Ledger (QRL): A technique to tackle the threats to cryptocurrency.