Cryptocurrency mining: new activity, new terms.
Cryptocurrency mining requires an understanding of many technical terms related to hardware, software, networks and programming, which is beyond the reach of many people interested in the activity and represents a major problem for the scalability of some blockchain. Those who venture into the activity of cryptocurrency mining, mostly ‘geeks’, implement the usage of new terminology not known or understood by the general public.
In this article, you will find a simple explanation of the DAG epoch for Ethereum mining.
Types of mining
There are two types of mining:
- ASIC mining: the abbreviation of Application-Specific Integrated Circuit and is a hardware customized for a particular use, for example to mine on the Algorithm SHA-256 of Bitcoin.
- RIG mining: a computer system used for cryptocurrency mining. The RIG might be a dedicated miner where it was procured or used to mine only on a part-time basis. The main difference between an ASIC and a RIG is that the last one can mine any algorithm.
In Ethereum mining there are several terms such as CUDA and AMD GPU, dual mining, hashrate, network difficulty, share, under-volt, overclock and DAG epoch, among others.
Mining cryptocurrency has a network difficulty which usually grows over time. The Ethereum network works with a proof of work (PoW) algorithm called Ethash and the difficulty is called DAG epoch. With time, the difficulty grows, meaning that you receive fewer rewards in Ether (ETH) for the work done and the mining hardware hashrate decreases. This is due to the increase of miners working within the blockchain.
Getting more technical
DAG stands for Directed Acyclic Graph. In Ethereum, a DAG is created every epoch using a version of the Dagger-Hashimoto Algorithm combining Vitalik Buterin’s Dagger algorithm and Thaddeus Dryja’s Hashimoto algorithm. Ethash DAG is generated for each epoch, i.e every 30000 blocks (100 hours). The DAG takes a long time to be generated and, if clients only generate it on demand, then you may experience a long delay for each epoch transition before the first block of the new epoch is found. However, the DAG only depends on block numbers, so it can and should be calculated in advance to avoid a long wait at each epoch transition.
How this affects Ethereum miners
As we said, DAG epoch is associated with the difficulty of mining, which in turn increases memory requirements and reduces hashrate. So the higher the epoch, the lower the miner hashrate will be. This is why hashrate decreases.
DAG epoch objectives
Dag epoch aims to simultaneously satisfy two goals:
- ASIC-resistance: the benefit from creating specialized hardware for the algorithm should be as small as possible, ideally to the point where it is still marginally profitable for users on ordinary computers to mine with spare CPU power.
- Light client verifiability: a block should be relatively efficiently verifiable by a light client.
Ethereum uses Ethash PoW that is memory hard, making it basically ASIC resistant. This means that calculating the PoW requires choosing subsets of a fixed resource depending on the nonce and block header. This resource (a few gigabyte size data) is called a DAG that determines the difficulty of the network.